Browse Source

解决删除数据后报错的问题

wangkun 3 years ago
parent
commit
d403f54ba8
5 changed files with 473 additions and 466 deletions
  1. 114 110
      main/download_play.py
  2. 167 162
      main/download_sendtime.py
  3. 189 191
      main/download_up.py
  4. 1 1
      main/get_feeds.py
  5. 2 2
      main/run.py

+ 114 - 110
main/download_play.py

@@ -44,125 +44,129 @@ class DownloadPlay:
         正式环境:env == prod
         """
         try:
-            if len(Feishu.get_values_batch("SdCHOM")) == 1:
-                pass
-            else:
-                for i in range(1, len(Feishu.get_values_batch("SdCHOM"))+1):
-                    time.sleep(1)
-                    try:
-                        # download_push_time = Feishu.get_values_batch("SdCHOM")[i][0]
-                        download_video_id = Feishu.get_values_batch("SdCHOM")[i][2]
-                        download_video_title = Feishu.get_values_batch("SdCHOM")[i][3]
-                        download_video_play_cnt = Feishu.get_values_batch("SdCHOM")[i][4]
-                        download_video_comment_cnt = Feishu.get_values_batch("SdCHOM")[i][5]
-                        download_video_like_cnt = Feishu.get_values_batch("SdCHOM")[i][6]
-                        download_video_share_cnt = Feishu.get_values_batch("SdCHOM")[i][7]
-                        download_video_duration = Feishu.get_values_batch("SdCHOM")[i][8]
-                        download_video_resolution = Feishu.get_values_batch("SdCHOM")[i][9]
-                        download_video_width = download_video_resolution.split("*")[0]
-                        download_video_height = download_video_resolution.split("*")[-1]
-                        download_video_send_time = Feishu.get_values_batch("SdCHOM")[i][10]
-                        download_user_name = Feishu.get_values_batch("SdCHOM")[i][11]
-                        download_user_id = Feishu.get_values_batch("SdCHOM")[i][12]
-                        download_head_url = Feishu.get_values_batch("SdCHOM")[i][13][0]["link"]
-                        download_cover_url = Feishu.get_values_batch("SdCHOM")[i][14][0]["link"]
-                        download_video_url = Feishu.get_values_batch("SdCHOM")[i][15][0]["link"]
+            for i in range(1, len(Feishu.get_values_batch("SdCHOM"))+1):
+                time.sleep(1)
+                # download_push_time = Feishu.get_values_batch("SdCHOM")[i][0]
+                download_video_id = Feishu.get_values_batch("SdCHOM")[i][2]
+                download_video_title = Feishu.get_values_batch("SdCHOM")[i][3]
+                download_video_play_cnt = Feishu.get_values_batch("SdCHOM")[i][4]
+                download_video_comment_cnt = Feishu.get_values_batch("SdCHOM")[i][5]
+                download_video_like_cnt = Feishu.get_values_batch("SdCHOM")[i][6]
+                download_video_share_cnt = Feishu.get_values_batch("SdCHOM")[i][7]
+                download_video_duration = Feishu.get_values_batch("SdCHOM")[i][8]
+                download_video_resolution = Feishu.get_values_batch("SdCHOM")[i][9]
+                download_video_width = download_video_resolution.split("*")[0]
+                download_video_height = download_video_resolution.split("*")[-1]
+                download_video_send_time = Feishu.get_values_batch("SdCHOM")[i][10]
+                download_user_name = Feishu.get_values_batch("SdCHOM")[i][11]
+                download_user_id = Feishu.get_values_batch("SdCHOM")[i][12]
+                download_head_url = Feishu.get_values_batch("SdCHOM")[i][13][0]["link"]
+                download_cover_url = Feishu.get_values_batch("SdCHOM")[i][14][0]["link"]
+                download_video_url = Feishu.get_values_batch("SdCHOM")[i][15][0]["link"]
 
-                        # Common.logger().info("download_video_id:{}", download_video_id)
-                        # Common.logger().info("download_video_title:{}", download_video_title)
-                        # Common.logger().info("download_video_play_cnt:{}", download_video_play_cnt)
-                        # Common.logger().info("download_video_comment_cnt:{}", download_video_comment_cnt)
-                        # Common.logger().info("download_video_like_cnt:{}", download_video_like_cnt)
-                        # Common.logger().info("download_video_share_cnt:{}", download_video_share_cnt)
-                        # Common.logger().info("download_video_duration:{}", download_video_duration)
-                        # Common.logger().info("download_video_resolution:{}", download_video_resolution)
-                        # Common.logger().info("download_video_send_time:{}", download_video_send_time)
-                        # Common.logger().info("download_user_name:{}", download_user_name)
-                        # Common.logger().info("download_user_id:{}", download_user_id)
-                        # Common.logger().info("download_head_url:{}", download_head_url)
-                        # Common.logger().info("download_cover_url:{}", download_cover_url)
-                        # Common.logger().info("download_video_url:{}", download_video_url)
+                # Common.logger().info("download_video_id:{}", download_video_id)
+                # Common.logger().info("download_video_title:{}", download_video_title)
+                # Common.logger().info("download_video_play_cnt:{}", download_video_play_cnt)
+                # Common.logger().info("download_video_comment_cnt:{}", download_video_comment_cnt)
+                # Common.logger().info("download_video_like_cnt:{}", download_video_like_cnt)
+                # Common.logger().info("download_video_share_cnt:{}", download_video_share_cnt)
+                # Common.logger().info("download_video_duration:{}", download_video_duration)
+                # Common.logger().info("download_video_resolution:{}", download_video_resolution)
+                # Common.logger().info("download_video_send_time:{}", download_video_send_time)
+                # Common.logger().info("download_user_name:{}", download_user_name)
+                # Common.logger().info("download_user_id:{}", download_user_id)
+                # Common.logger().info("download_head_url:{}", download_head_url)
+                # Common.logger().info("download_cover_url:{}", download_cover_url)
+                # Common.logger().info("download_video_url:{}", download_video_url)
 
-                        Common.logger().info("正在判断第{}行,视频:{}", i, download_video_title)
+                Common.logger().info("正在判断第{}行,视频:{}", i, download_video_title)
 
-                        if cls.play_rule(
-                                play_width=download_video_width, play_height=download_video_height,
-                                play_duration=download_video_duration, play_play_cnt=download_video_play_cnt) is False:
-                            Common.logger().info("不满足播放量下载规则,删除该视频信息:{}", download_video_title)
-                            # 从云文档删除该视频信息:https://w42nne6hzg.feishu.cn/sheets/shtcngRPoDYAi24x52j2nDuHMih?sheet=SdCHOM
-                            Feishu.dimension_range("SdCHOM", "ROWS", i + 1, i + 1)
-                        elif download_video_id in [j for m in Feishu.get_values_batch("20ce0c") for j in m]:
-                            Common.logger().info("视频已下载,删除该视频信息:{}", download_video_title)
-                            # 从云文档删除该视频信息:https://w42nne6hzg.feishu.cn/sheets/shtcngRPoDYAi24x52j2nDuHMih?sheet=SdCHOM
-                            Feishu.dimension_range("SdCHOM", "ROWS", i + 1, i + 1)
-                        else:
-                            Common.logger().info("开始下载视频:{}", download_video_title)
-                            # 下载封面
-                            Common.download_method(text="cover", d_name=download_video_title, d_url=download_cover_url)
-                            # 下载视频
-                            Common.download_method(text="video", d_name=download_video_title, d_url=download_video_url)
-                            # 保存视频信息至 "./videos/{download_video_title}/info.txt"
-                            with open(r"./videos/" + download_video_title
-                                      + "/" + "info.txt", "a", encoding="utf8") as f_a:
-                                f_a.write(str(download_video_id) + "\n" +
-                                          str(download_video_title) + "\n" +
-                                          str(download_video_duration) + "\n" +
-                                          str(download_video_play_cnt) + "\n" +
-                                          str(download_video_comment_cnt) + "\n" +
-                                          str(download_video_like_cnt) + "\n" +
-                                          str(download_video_share_cnt) + "\n" +
-                                          str(download_video_resolution) + "\n" +
-                                          str(int(time.mktime(
-                                              time.strptime(download_video_send_time, "%Y/%m/%d %H:%M:%S")))) + "\n" +
-                                          str(download_user_name) + "\n" +
-                                          str(download_head_url) + "\n" +
-                                          str(download_video_url) + "\n" +
-                                          str(download_cover_url) + "\n" +
-                                          str(Common.get_session()))
-                            Common.logger().info("==========视频信息已保存至info.txt==========")
-
-                            # 上传视频
-                            Common.logger().info("开始上传视频:{}", download_video_title)
-                            Publish.upload_and_publish(env, "play")
+                if cls.play_rule(
+                        play_width=download_video_width, play_height=download_video_height,
+                        play_duration=download_video_duration, play_play_cnt=download_video_play_cnt) is False:
+                    Common.logger().info("不满足播放量下载规则,删除该视频信息:{}", download_video_title)
+                    # 从云文档删除该视频信息:https://w42nne6hzg.feishu.cn/sheets/shtcngRPoDYAi24x52j2nDuHMih?sheet=SdCHOM
+                    Feishu.dimension_range("SdCHOM", "ROWS", i + 1, i + 1)
+                    return
+                elif download_video_id in [j for m in Feishu.get_values_batch("20ce0c") for j in m]:
+                    Common.logger().info("视频已下载,删除该视频信息:{}", download_video_title)
+                    # 从云文档删除该视频信息:https://w42nne6hzg.feishu.cn/sheets/shtcngRPoDYAi24x52j2nDuHMih?sheet=SdCHOM
+                    Feishu.dimension_range("SdCHOM", "ROWS", i + 1, i + 1)
+                    return
+                else:
+                    Common.logger().info("开始下载视频:{}", download_video_title)
+                    # 下载封面
+                    Common.download_method(text="cover", d_name=download_video_title, d_url=download_cover_url)
+                    # 下载视频
+                    Common.download_method(text="video", d_name=download_video_title, d_url=download_video_url)
+                    # 保存视频信息至 "./videos/{download_video_title}/info.txt"
+                    with open(r"./videos/" + download_video_title
+                              + "/" + "info.txt", "a", encoding="utf8") as f_a:
+                        f_a.write(str(download_video_id) + "\n" +
+                                  str(download_video_title) + "\n" +
+                                  str(download_video_duration) + "\n" +
+                                  str(download_video_play_cnt) + "\n" +
+                                  str(download_video_comment_cnt) + "\n" +
+                                  str(download_video_like_cnt) + "\n" +
+                                  str(download_video_share_cnt) + "\n" +
+                                  str(download_video_resolution) + "\n" +
+                                  str(int(time.mktime(
+                                      time.strptime(download_video_send_time, "%Y/%m/%d %H:%M:%S")))) + "\n" +
+                                  str(download_user_name) + "\n" +
+                                  str(download_head_url) + "\n" +
+                                  str(download_video_url) + "\n" +
+                                  str(download_cover_url) + "\n" +
+                                  str(Common.get_session()))
+                    Common.logger().info("==========视频信息已保存至info.txt==========")
 
-                            # 保存视频 ID 到云文档:https://w42nne6hzg.feishu.cn/sheets/shtcngRPoDYAi24x52j2nDuHMih?sheet=20ce0c
-                            Common.logger().info("保存视频ID至云文档:{}", download_video_title)
-                            # 看一看+ ,视频ID工作表,插入首行
-                            Feishu.insert_columns("20ce0c", "ROWS", 1, 2)
-                            # 看一看+ ,视频ID工作表,首行写入数据
-                            upload_time = int(time.time())
-                            values = [[time.strftime("%Y/%m/%d %H:%M:%S", time.localtime(upload_time)),
-                                       "播放量榜",
-                                       str(download_video_id),
-                                       str(download_video_title),
-                                       download_video_play_cnt,
-                                       download_video_comment_cnt,
-                                       download_video_like_cnt,
-                                       download_video_share_cnt,
-                                       download_video_duration,
-                                       str(download_video_resolution),
-                                       str(download_video_send_time),
-                                       str(download_user_name),
-                                       str(download_user_id),
-                                       str(download_head_url),
-                                       str(download_cover_url),
-                                       str(download_video_url)]]
-                            time.sleep(1)
-                            Feishu.update_values("20ce0c", "A2:Q2", values)
+                    # 上传视频
+                    Common.logger().info("开始上传视频:{}", download_video_title)
+                    Publish.upload_and_publish(env, "play")
 
-                            # 从云文档删除该视频信息:https://w42nne6hzg.feishu.cn/sheets/shtcngRPoDYAi24x52j2nDuHMih?sheet=SdCHOM
-                            Common.logger().info("从云文档删除该视频信息:{}", download_video_title)
-                            # 删除行或列,可选 ROWS、COLUMNS
-                            Feishu.dimension_range("SdCHOM", "ROWS", i + 1, i + 1)
+                    # 保存视频 ID 到云文档:https://w42nne6hzg.feishu.cn/sheets/shtcngRPoDYAi24x52j2nDuHMih?sheet=20ce0c
+                    Common.logger().info("保存视频ID至云文档:{}", download_video_title)
+                    # 看一看+ ,视频ID工作表,插入首行
+                    Feishu.insert_columns("20ce0c", "ROWS", 1, 2)
+                    # 看一看+ ,视频ID工作表,首行写入数据
+                    upload_time = int(time.time())
+                    values = [[time.strftime("%Y/%m/%d %H:%M:%S", time.localtime(upload_time)),
+                               "播放量榜",
+                               str(download_video_id),
+                               str(download_video_title),
+                               download_video_play_cnt,
+                               download_video_comment_cnt,
+                               download_video_like_cnt,
+                               download_video_share_cnt,
+                               download_video_duration,
+                               str(download_video_resolution),
+                               str(download_video_send_time),
+                               str(download_user_name),
+                               str(download_user_id),
+                               str(download_head_url),
+                               str(download_cover_url),
+                               str(download_video_url)]]
+                    time.sleep(1)
+                    Feishu.update_values("20ce0c", "A2:Q2", values)
 
-                    except Exception as e:
-                        Common.logger().error("视频 info 异常,删除该视频信息", e)
-                        # 删除行或列,可选 ROWS、COLUMNS
-                        Feishu.dimension_range("SdCHOM", "ROWS", i + 1, i + 1)
+                    # 从云文档删除该视频信息:https://w42nne6hzg.feishu.cn/sheets/shtcngRPoDYAi24x52j2nDuHMih?sheet=SdCHOM
+                    Common.logger().info("从云文档删除该视频信息:{}", download_video_title)
+                    # 删除行或列,可选 ROWS、COLUMNS
+                    Feishu.dimension_range("SdCHOM", "ROWS", i + 1, i + 1)
+                    return
+        except Exception as e:
+            Common.logger().error("视频info异常:{}", e)
+            return
 
+    # 执行播放量下载及上传
+    @classmethod
+    def run_download_play_video(cls):
+        try:
+            if len(Feishu.get_values_batch("SdCHOM")) == 1:
+                pass
+            else:
                 cls.download_play_video("prod")
         except Exception as e:
-            Common.logger().error(e)
+            Common.logger().error("执行上传及下载异常:{}", e)
 
 
 if __name__ == "__main__":

+ 167 - 162
main/download_sendtime.py

@@ -52,173 +52,178 @@ class DownloadSendtime:
         :return: 下载并上传视频
         """
         try:
-            if len(Feishu.get_values_batch("SdCHOM")) == 1:
-                pass
-            else:
-                for i in range(1, len(Feishu.get_values_batch("SdCHOM"))+1):
-                    time.sleep(1)
-                    try:
-                        sendtime_session = Common.get_session()
-                        # Common.logger().info("获取视频info时,session:{}", sendtime_session)
-                        download_video_id = Feishu.get_values_batch("SdCHOM")[i][2]
-                        download_video_title = Feishu.get_values_batch("SdCHOM")[i][3]
-                        url = "https://search.weixin.qq.com/cgi-bin/recwxa/recwxagetonevideoinfo?"
-                        param = {
-                            "session": sendtime_session,
-                            "vid": download_video_id,
-                            "wxaVersion": "3.9.2",
-                            "channelid": "208201",
-                            "scene": "32",
-                            "subscene": "1089",
-                            "model": "iPhone 11<iPhone12,1>14.7.1",
-                            "clientVersion": "8.0.18",
-                            "sharesearchid": "447665862521758270",
-                            "sharesource": "-1"
-                        }
-                        urllib3.disable_warnings()
-                        r = requests.get(url=url, params=param, proxies=proxies, verify=False)
-                        response = json.loads(r.content.decode("utf8"))
-                        if "data" not in response:
-                            Common.logger().error("获取视频info时错误,删除该视频:{}", download_video_title)
-                            # 删除行或列,可选 ROWS、COLUMNS
-                            Feishu.dimension_range("SdCHOM", "ROWS", i + 1, i + 1)
+            for i in range(1, len(Feishu.get_values_batch("SdCHOM"))+1):
+                time.sleep(1)
+
+                sendtime_session = Common.get_session()
+                # Common.logger().info("获取视频info时,session:{}", sendtime_session)
+                download_video_id = Feishu.get_values_batch("SdCHOM")[i][2]
+                download_video_title = Feishu.get_values_batch("SdCHOM")[i][3]
+                url = "https://search.weixin.qq.com/cgi-bin/recwxa/recwxagetonevideoinfo?"
+                param = {
+                    "session": sendtime_session,
+                    "vid": download_video_id,
+                    "wxaVersion": "3.9.2",
+                    "channelid": "208201",
+                    "scene": "32",
+                    "subscene": "1089",
+                    "model": "iPhone 11<iPhone12,1>14.7.1",
+                    "clientVersion": "8.0.18",
+                    "sharesearchid": "447665862521758270",
+                    "sharesource": "-1"
+                }
+                urllib3.disable_warnings()
+                r = requests.get(url=url, params=param, proxies=proxies, verify=False)
+                response = json.loads(r.content.decode("utf8"))
+                if "data" not in response:
+                    Common.logger().error("获取视频info时错误,删除该视频:{}", download_video_title)
+                    # 删除行或列,可选 ROWS、COLUMNS
+                    Feishu.dimension_range("SdCHOM", "ROWS", i + 1, i + 1)
+                else:
+                    data = response["data"]
+                    v_duration = data["duration"]
+                    v_play_cnt_sendtime = data["played_cnt"]
+                    v_comment_cnt = data["comment_cnt"]
+                    v_liked_cnt = data["liked_cnt"]
+                    v_shared_cnt = data["shared_cnt"]
+                    v_width = data["width"]
+                    v_height = data["height"]
+                    v_resolution = str(v_width) + "*" + str(v_height)
+                    v_send_date = data["upload_time"]
+                    v_username = data["user_info"]["nickname"].strip().replace("\n", "")
+                    v_user_id = data["openid"]
+                    v_user_cover = data["user_info"]["headimg_url"]
+                    v_video_cover = data["cover_url"]
+                    if "items" not in data["play_info"]:
+                        if len(data["play_info"]) > 2:
+                            download_url_sendtime = data["play_info"][2]["play_url"]
+                        else:
+                            download_url_sendtime = data["play_info"][0]["play_url"]
+                    else:
+                        if len(data["play_info"]["items"]) > 2:
+                            download_url_sendtime = data["play_info"]["items"][2]["play_url"]
                         else:
-                            data = response["data"]
-                            v_duration = data["duration"]
-                            v_play_cnt_sendtime = data["played_cnt"]
-                            v_comment_cnt = data["comment_cnt"]
-                            v_liked_cnt = data["liked_cnt"]
-                            v_shared_cnt = data["shared_cnt"]
-                            v_width = data["width"]
-                            v_height = data["height"]
-                            v_resolution = str(v_width) + "*" + str(v_height)
-                            v_send_date = data["upload_time"]
-                            v_username = data["user_info"]["nickname"].strip().replace("\n", "")
-                            v_user_id = data["openid"]
-                            v_user_cover = data["user_info"]["headimg_url"]
-                            v_video_cover = data["cover_url"]
-                            if "items" not in data["play_info"]:
-                                if len(data["play_info"]) > 2:
-                                    download_url_sendtime = data["play_info"][2]["play_url"]
-                                else:
-                                    download_url_sendtime = data["play_info"][0]["play_url"]
-                            else:
-                                if len(data["play_info"]["items"]) > 2:
-                                    download_url_sendtime = data["play_info"]["items"][2]["play_url"]
-                                else:
-                                    download_url_sendtime = data["play_info"]["items"][0]["play_url"]
-
-                            Common.logger().info("正在判断第{}行,视频:{}", i, download_video_title)
-
-                            # 判断无效视频
-                            if download_video_id == "" \
-                                    or download_video_id is None\
-                                    and download_video_title == ""\
-                                    or download_video_title is None\
-                                    and v_duration == "" \
-                                    and v_play_cnt_sendtime == ""\
-                                    and v_send_date == ""\
-                                    and v_user_cover == "" \
-                                    and v_video_cover == ""\
-                                    and download_url_sendtime == "":
-                                Common.logger().info("无效视频,删除该视频信息:{}", download_video_title)
-                                # 从云文档删除该视频信息:https://w42nne6hzg.feishu.cn/sheets/shtcngRPoDYAi24x52j2nDuHMih?sheet=SdCHOM
-                                Feishu.dimension_range("SdCHOM", "ROWS", i + 1, i + 1)
-
-                            # 发布时间榜下载规则
-                            elif cls.send_time_rule(v_width, v_height, v_duration, v_play_cnt_sendtime) is False:
-                                Common.logger().info("不满足发布时间榜下载规则,删除该视频信息:{}", download_video_title)
-                                # 从云文档删除该视频信息:https://w42nne6hzg.feishu.cn/sheets/shtcngRPoDYAi24x52j2nDuHMih?sheet=SdCHOM
-                                Feishu.dimension_range("SdCHOM", "ROWS", i + 1, i + 1)
-
-                            # 发布时间 <=7 天
-                            elif int(time.time()) - int(v_send_date) > 604800:
-                                # 从云文档删除该视频信息:https://w42nne6hzg.feishu.cn/sheets/shtcngRPoDYAi24x52j2nDuHMih?sheet=SdCHOM
-                                Common.logger().info("视频发布时间大于7天:{}天;标题:{}",
-                                                     int((int(time.time()) - int(v_send_date)) / 86400),
-                                                     download_video_title)
-                                # 删除行或列,可选 ROWS、COLUMNS
-                                Feishu.dimension_range("SdCHOM", "ROWS", i + 1, i + 1)
-
-                            elif int(v_play_cnt_sendtime) < 10000:
-                                # 从云文档删除该视频信息:https://w42nne6hzg.feishu.cn/sheets/shtcngRPoDYAi24x52j2nDuHMih?sheet=SdCHOM
-                                Common.logger().info("该视频7天播放量:{}<10000 ;不满足下载规则:{}",
-                                                     int(v_play_cnt_sendtime), download_video_title)
-                                # 删除行或列,可选 ROWS、COLUMNS
-                                Feishu.dimension_range("SdCHOM", "ROWS", i + 1, i + 1)
-
-                            elif download_video_id in [j for m in Feishu.get_values_batch("20ce0c") for j in m]:
-                                Common.logger().info("视频已下载,删除该视频信息:{}", download_video_title)
-                                # 从云文档删除该视频信息:https://w42nne6hzg.feishu.cn/sheets/shtcngRPoDYAi24x52j2nDuHMih?sheet=SdCHOM
-                                Feishu.dimension_range("SdCHOM", "ROWS", i + 1, i + 1)
-                            else:
-                                Common.logger().info("开始下载视频:{}", download_video_title)
-
-                                # 下载封面
-                                Common.download_method("cover", download_video_title, v_video_cover)
-                                # 下载视频
-                                Common.download_method("video", download_video_title, download_url_sendtime)
-                                # 保存视频信息到 "./files/{视频标题}/videoinfo.txt"
-                                with open(r"./videos/" + download_video_title +
-                                          "/" + "info.txt", "a", encoding="utf8") as f_a2:
-                                    f_a2.write(str(download_video_id) + "\n" +
-                                               str(download_video_title) + "\n" +
-                                               str(v_duration) + "\n" +
-                                               str(v_play_cnt_sendtime) + "\n" +
-                                               str(v_comment_cnt) + "\n" +
-                                               str(v_liked_cnt) + "\n" +
-                                               str(v_shared_cnt) + "\n" +
-                                               str(v_resolution) + "\n" +
-                                               str(v_send_date) + "\n" +
-                                               str(v_username) + "\n" +
-                                               str(v_user_cover) + "\n" +
-                                               str(download_url_sendtime) + "\n" +
-                                               str(v_video_cover) + "\n" +
-                                               str(sendtime_session))
-                                Common.logger().info("==========视频信息已保存至info.txt==========")
-
-                                # 上传该视频
-                                Common.logger().info("开始上传视频:{}", download_video_title)
-                                Publish.upload_and_publish(env, "send_time")
-
-                                # 保存视频 ID 到云文档:
-                                # https://w42nne6hzg.feishu.cn/sheets/shtcngRPoDYAi24x52j2nDuHMih?sheet=20ce0c
-                                Common.logger().info("保存视频ID至云文档:{}", download_video_title)
-                                # 看一看+ ,视频ID工作表,插入首行
-                                Feishu.insert_columns("20ce0c", "rows", 1, 2)
-                                # 看一看+ ,视频ID工作表,首行写入数据
-                                upload_time = int(time.time())
-                                values = [[time.strftime("%Y/%m/%d %H:%M:%S", time.localtime(upload_time)),
-                                           "发布时间榜",
-                                           str(download_video_id),
-                                           str(download_video_title),
-                                           v_play_cnt_sendtime,
-                                           v_comment_cnt,
-                                           v_liked_cnt,
-                                           v_shared_cnt,
-                                           v_duration,
-                                           v_resolution,
-                                           time.strftime("%Y/%m/%d %H:%M:%S", time.localtime(v_send_date)),
-                                           str(v_username),
-                                           str(v_user_id),
-                                           str(v_user_cover),
-                                           str(v_video_cover),
-                                           str(download_url_sendtime)]]
-                                time.sleep(1)
-                                Feishu.update_values("20ce0c", "A2:Q2", values)
-
-                                # 从云文档删除该视频信息:https://w42nne6hzg.feishu.cn/sheets/shtcngRPoDYAi24x52j2nDuHMih?sheet=SdCHOM
-                                Common.logger().info("从云文档删除该视频信息:{}", download_video_title)
-                                # 删除行或列,可选 ROWS、COLUMNS
-                                Feishu.dimension_range("SdCHOM", "ROWS", i + 1, i + 1)
-
-                    except Exception as e:
-                        Common.logger().error("获取视频info异常:{},删除该视频", e)
+                            download_url_sendtime = data["play_info"]["items"][0]["play_url"]
+
+                    Common.logger().info("正在判断第{}行,视频:{}", i, download_video_title)
+
+                    # 判断无效视频
+                    if download_video_id == "" \
+                            or download_video_id is None\
+                            and download_video_title == ""\
+                            or download_video_title is None\
+                            and v_duration == "" \
+                            and v_play_cnt_sendtime == ""\
+                            and v_send_date == ""\
+                            and v_user_cover == "" \
+                            and v_video_cover == ""\
+                            and download_url_sendtime == "":
+                        Common.logger().info("无效视频,删除该视频信息:{}", download_video_title)
+                        # 从云文档删除该视频信息:https://w42nne6hzg.feishu.cn/sheets/shtcngRPoDYAi24x52j2nDuHMih?sheet=SdCHOM
+                        Feishu.dimension_range("SdCHOM", "ROWS", i + 1, i + 1)
+                        return
+                    # 发布时间榜下载规则
+                    elif cls.send_time_rule(v_width, v_height, v_duration, v_play_cnt_sendtime) is False:
+                        Common.logger().info("不满足发布时间榜下载规则,删除该视频信息:{}", download_video_title)
+                        # 从云文档删除该视频信息:https://w42nne6hzg.feishu.cn/sheets/shtcngRPoDYAi24x52j2nDuHMih?sheet=SdCHOM
+                        Feishu.dimension_range("SdCHOM", "ROWS", i + 1, i + 1)
+                        return
+                    # 发布时间 <=7 天
+                    elif int(time.time()) - int(v_send_date) > 604800:
+                        # 从云文档删除该视频信息:https://w42nne6hzg.feishu.cn/sheets/shtcngRPoDYAi24x52j2nDuHMih?sheet=SdCHOM
+                        Common.logger().info("视频发布时间大于7天:{}天;标题:{}",
+                                             int((int(time.time()) - int(v_send_date)) / 86400),
+                                             download_video_title)
+                        # 删除行或列,可选 ROWS、COLUMNS
+                        Feishu.dimension_range("SdCHOM", "ROWS", i + 1, i + 1)
+                        return
+                    elif int(v_play_cnt_sendtime) < 10000:
+                        # 从云文档删除该视频信息:https://w42nne6hzg.feishu.cn/sheets/shtcngRPoDYAi24x52j2nDuHMih?sheet=SdCHOM
+                        Common.logger().info("该视频7天播放量:{}<10000 ;不满足下载规则:{}",
+                                             int(v_play_cnt_sendtime), download_video_title)
+                        # 删除行或列,可选 ROWS、COLUMNS
+                        Feishu.dimension_range("SdCHOM", "ROWS", i + 1, i + 1)
+                        return
+                    elif download_video_id in [j for m in Feishu.get_values_batch("20ce0c") for j in m]:
+                        Common.logger().info("视频已下载,删除该视频信息:{}", download_video_title)
+                        # 从云文档删除该视频信息:https://w42nne6hzg.feishu.cn/sheets/shtcngRPoDYAi24x52j2nDuHMih?sheet=SdCHOM
+                        Feishu.dimension_range("SdCHOM", "ROWS", i + 1, i + 1)
+                        return
+                    else:
+                        Common.logger().info("开始下载视频:{}", download_video_title)
+
+                        # 下载封面
+                        Common.download_method("cover", download_video_title, v_video_cover)
+                        # 下载视频
+                        Common.download_method("video", download_video_title, download_url_sendtime)
+                        # 保存视频信息到 "./files/{视频标题}/videoinfo.txt"
+                        with open(r"./videos/" + download_video_title +
+                                  "/" + "info.txt", "a", encoding="utf8") as f_a2:
+                            f_a2.write(str(download_video_id) + "\n" +
+                                       str(download_video_title) + "\n" +
+                                       str(v_duration) + "\n" +
+                                       str(v_play_cnt_sendtime) + "\n" +
+                                       str(v_comment_cnt) + "\n" +
+                                       str(v_liked_cnt) + "\n" +
+                                       str(v_shared_cnt) + "\n" +
+                                       str(v_resolution) + "\n" +
+                                       str(v_send_date) + "\n" +
+                                       str(v_username) + "\n" +
+                                       str(v_user_cover) + "\n" +
+                                       str(download_url_sendtime) + "\n" +
+                                       str(v_video_cover) + "\n" +
+                                       str(sendtime_session))
+                        Common.logger().info("==========视频信息已保存至info.txt==========")
+
+                        # 上传该视频
+                        Common.logger().info("开始上传视频:{}", download_video_title)
+                        Publish.upload_and_publish(env, "send_time")
+
+                        # 保存视频 ID 到云文档:
+                        # https://w42nne6hzg.feishu.cn/sheets/shtcngRPoDYAi24x52j2nDuHMih?sheet=20ce0c
+                        Common.logger().info("保存视频ID至云文档:{}", download_video_title)
+                        # 看一看+ ,视频ID工作表,插入首行
+                        Feishu.insert_columns("20ce0c", "rows", 1, 2)
+                        # 看一看+ ,视频ID工作表,首行写入数据
+                        upload_time = int(time.time())
+                        values = [[time.strftime("%Y/%m/%d %H:%M:%S", time.localtime(upload_time)),
+                                   "发布时间榜",
+                                   str(download_video_id),
+                                   str(download_video_title),
+                                   v_play_cnt_sendtime,
+                                   v_comment_cnt,
+                                   v_liked_cnt,
+                                   v_shared_cnt,
+                                   v_duration,
+                                   v_resolution,
+                                   time.strftime("%Y/%m/%d %H:%M:%S", time.localtime(v_send_date)),
+                                   str(v_username),
+                                   str(v_user_id),
+                                   str(v_user_cover),
+                                   str(v_video_cover),
+                                   str(download_url_sendtime)]]
+                        time.sleep(1)
+                        Feishu.update_values("20ce0c", "A2:Q2", values)
+
+                        # 从云文档删除该视频信息:https://w42nne6hzg.feishu.cn/sheets/shtcngRPoDYAi24x52j2nDuHMih?sheet=SdCHOM
+                        Common.logger().info("从云文档删除该视频信息:{}", download_video_title)
                         # 删除行或列,可选 ROWS、COLUMNS
                         Feishu.dimension_range("SdCHOM", "ROWS", i + 1, i + 1)
+                        return
+
+        except Exception as e:
+            Common.logger().error("获取视频info异常:{}", e)
+
+    # 执行上传及下载
+    @classmethod
+    def run_download_sendtime_video(cls):
+        try:
+            if len(Feishu.get_values_batch("SdCHOM")) == 1:
+                pass
+            else:
                 cls.download_sendtime_video("prod")
         except Exception as e:
-            Common.logger().error(e)
+            Common.logger().error("执行上传及下载异常:{}", e)
 
 
 if __name__ == "__main__":

+ 189 - 191
main/download_up.py

@@ -57,215 +57,213 @@ class DownloadUp:
             1 删除该视频在 https://w42nne6hzg.feishu.cn/sheets/shtcngRPoDYAi24x52j2nDuHMih?sheet=SdCHOM 中的信息
         """
         try:
-            if len(Feishu.get_values_batch("SdCHOM")) == 1:
-                pass
-            else:
-                for i in range(1, len(Feishu.get_values_batch("SdCHOM"))+1):
-                    time.sleep(1)
-                    try:
-                        video_info_session = Common.get_session()
-                        download_time = Feishu.get_values_batch("SdCHOM")[i][0]  # 第一次获取该视频的时间
-                        download_time = int(time.mktime(time.strptime(download_time, "%Y/%m/%d %H:%M:%S")))
-                        download_video_id = Feishu.get_values_batch("SdCHOM")[i][2]  # 外网视频 ID
-                        download_video_title = Feishu.get_values_batch("SdCHOM")[i][3]  # 视频标题
-                        download_video_play_cnt = Feishu.get_values_batch("SdCHOM")[i][4]  # 播放量
+            for i in range(1, len(Feishu.get_values_batch("SdCHOM"))+1):
+                time.sleep(1)
+                video_info_session = Common.get_session()
+                download_time = Feishu.get_values_batch("SdCHOM")[i][0]  # 第一次获取该视频的时间
+                download_time = int(time.mktime(time.strptime(download_time, "%Y/%m/%d %H:%M:%S")))
+                download_video_id = Feishu.get_values_batch("SdCHOM")[i][2]  # 外网视频 ID
+                download_video_title = Feishu.get_values_batch("SdCHOM")[i][3]  # 视频标题
+                download_video_play_cnt = Feishu.get_values_batch("SdCHOM")[i][4]  # 播放量
 
-                        url = "https://search.weixin.qq.com/cgi-bin/recwxa/recwxagetonevideoinfo?"
-                        param = {
-                            "session": video_info_session,
-                            "vid": download_video_id,
-                            "wxaVersion": "3.9.2",
-                            "channelid": "208201",
-                            "scene": "32",
-                            "subscene": "1089",
-                            "model": "iPhone 11<iPhone12,1>14.7.1",
-                            "clientVersion": "8.0.18",
-                            "sharesearchid": "447665862521758270",
-                            "sharesource": "-1"
-                        }
-                        urllib3.disable_warnings()
-                        r = requests.get(url=url, params=param, proxies=proxies, verify=False)
-                        response = json.loads(r.content.decode("utf8"))
-                        if "data" not in response:
-                            Common.logger().error("获取视频info时错误,删除该视频:{}", download_video_title)
-                            # 删除行或列,可选 ROWS、COLUMNS
-                            Feishu.dimension_range("SdCHOM", "ROWS", i + 1, i + 1)
+                url = "https://search.weixin.qq.com/cgi-bin/recwxa/recwxagetonevideoinfo?"
+                param = {
+                    "session": video_info_session,
+                    "vid": download_video_id,
+                    "wxaVersion": "3.9.2",
+                    "channelid": "208201",
+                    "scene": "32",
+                    "subscene": "1089",
+                    "model": "iPhone 11<iPhone12,1>14.7.1",
+                    "clientVersion": "8.0.18",
+                    "sharesearchid": "447665862521758270",
+                    "sharesource": "-1"
+                }
+                urllib3.disable_warnings()
+                r = requests.get(url=url, params=param, proxies=proxies, verify=False)
+                response = json.loads(r.content.decode("utf8"))
+                if "data" not in response:
+                    Common.logger().error("获取视频info时错误,删除该视频:{}", download_video_title)
+                    # 删除行或列,可选 ROWS、COLUMNS
+                    Feishu.dimension_range("SdCHOM", "ROWS", i + 1, i + 1)
+                else:
+                    data = response["data"]
+                    v_duration = data["duration"]
+                    v_play_cnt_up = data["played_cnt"]
+                    v_comment_cnt = data["comment_cnt"]
+                    v_liked_cnt = data["liked_cnt"]
+                    v_shared_cnt = data["shared_cnt"]
+                    v_width = data["width"]
+                    v_height = data["height"]
+                    v_resolution = str(v_width) + "*" + str(v_height)
+                    v_send_date = data["upload_time"]
+                    v_username = data["user_info"]["nickname"].strip().replace("\n", "")
+                    v_user_id = data["openid"]
+                    v_user_cover = data["user_info"]["headimg_url"]
+                    v_video_cover = data["cover_url"]
+                    if "items" not in data["play_info"]:
+                        if len(data["play_info"]) > 2:
+                            download_url_up = data["play_info"][2]["play_url"]
                         else:
-                            data = response["data"]
-                            v_duration = data["duration"]
-                            v_play_cnt_up = data["played_cnt"]
-                            v_comment_cnt = data["comment_cnt"]
-                            v_liked_cnt = data["liked_cnt"]
-                            v_shared_cnt = data["shared_cnt"]
-                            v_width = data["width"]
-                            v_height = data["height"]
-                            v_resolution = str(v_width) + "*" + str(v_height)
-                            v_send_date = data["upload_time"]
-                            v_username = data["user_info"]["nickname"].strip().replace("\n", "")
-                            v_user_id = data["openid"]
-                            v_user_cover = data["user_info"]["headimg_url"]
-                            v_video_cover = data["cover_url"]
-                            if "items" not in data["play_info"]:
-                                if len(data["play_info"]) > 2:
-                                    download_url_up = data["play_info"][2]["play_url"]
-                                else:
-                                    download_url_up = data["play_info"][0]["play_url"]
-                            else:
-                                if len(data["play_info"]["items"]) > 2:
-                                    download_url_up = data["play_info"]["items"][2]["play_url"]
-                                else:
-                                    download_url_up = data["play_info"]["items"][0]["play_url"]
-
-                            Common.logger().info("正在判断第{}行,视频:{}", i, download_video_title)
-
-                            # 判断无效视频
-                            if download_video_id == "" \
-                                    or download_video_id is None\
-                                    and download_video_title == ""\
-                                    or download_video_title is None\
-                                    and v_duration == "" \
-                                    and v_play_cnt_up == ""\
-                                    and v_send_date == ""\
-                                    and v_user_cover == "" \
-                                    and v_video_cover == ""\
-                                    and download_url_up == "":
-                                Common.logger().info("无效视频,删除该视频信息:{}", download_video_title)
-                                # 从云文档删除该视频信息:https://w42nne6hzg.feishu.cn/sheets/shtcngRPoDYAi24x52j2nDuHMih?sheet=SdCHOM
-                                Feishu.dimension_range("SdCHOM", "ROWS", i + 1, i + 1)
+                            download_url_up = data["play_info"][0]["play_url"]
+                    else:
+                        if len(data["play_info"]["items"]) > 2:
+                            download_url_up = data["play_info"]["items"][2]["play_url"]
+                        else:
+                            download_url_up = data["play_info"]["items"][0]["play_url"]
 
-                            # 上升榜时长不足 1 小时
-                            elif int(time.time()) - int(download_time) < 3600:
-                                Common.logger().info("距上次获取该视频时间:{}分钟;{}",
-                                                     int((int(int(time.time()) - int(download_time))) / 60),
-                                                     download_video_title)
+                    Common.logger().info("正在判断第{}行,视频:{}", i, download_video_title)
 
-                            # 上升榜时长超过 2 小时
-                            elif int(time.time()) - int(download_time) > 7200:
-                                Common.logger().info("距上次获取该视频时间:""{}分钟。超过2小时,删除该视频;标题:{}",
-                                                     int((int(time.time()) - int(download_time)) / 60),
-                                                     download_video_title)
-                                # 删除行或列,可选 ROWS、COLUMNS
-                                Feishu.dimension_range("SdCHOM", "ROWS", i + 1, i + 1)
+                    # 判断无效视频
+                    if download_video_id == "" \
+                            or download_video_id is None\
+                            and download_video_title == ""\
+                            or download_video_title is None\
+                            and v_duration == "" \
+                            and v_play_cnt_up == ""\
+                            and v_send_date == ""\
+                            and v_user_cover == "" \
+                            and v_video_cover == ""\
+                            and download_url_up == "":
+                        Common.logger().info("无效视频,删除该视频信息:{}", download_video_title)
+                        # 从云文档删除该视频信息:https://w42nne6hzg.feishu.cn/sheets/shtcngRPoDYAi24x52j2nDuHMih?sheet=SdCHOM
+                        Feishu.dimension_range("SdCHOM", "ROWS", i + 1, i + 1)
+                        cls.download_up_video("prod")
 
-                            # 上升榜下载规则
-                            elif cls.up_rule(v_width, v_height, v_duration, v_play_cnt_up) is False:
-                                Common.logger().info("不满足上升榜下载规则,删除视频:{}", download_video_title)
-                                # 删除行或列,可选 ROWS、COLUMNS
-                                Feishu.dimension_range("SdCHOM", "ROWS", i + 1, i + 1)
+                    # 上升榜时长不足 1 小时
+                    elif int(time.time()) - int(download_time) < 3600:
+                        Common.logger().info("距上次获取该视频时间:{}分钟;{}",
+                                             int((int(int(time.time()) - int(download_time))) / 60),
+                                             download_video_title)
 
-                            # 从已下载视频表中去重:https://w42nne6hzg.feishu.cn/sheets/shtcngRPoDYAi24x52j2nDuHMih?sheet=20ce0c
-                            elif download_video_id in [j for m in Feishu.get_values_batch("20ce0c") for j in m]:
-                                Common.logger().info("视频已下载,删除该视频信息:{}", download_video_title)
-                                # 从云文档删除该视频信息:https://w42nne6hzg.feishu.cn/sheets/shtcngRPoDYAi24x52j2nDuHMih?sheet=SdCHOM
-                                Feishu.dimension_range("SdCHOM", "ROWS", i + 1, i + 1)
+                    # 上升榜时长超过 2 小时
+                    elif int(time.time()) - int(download_time) > 7200:
+                        Common.logger().info("距上次获取该视频时间:""{}分钟。超过2小时,删除该视频;标题:{}",
+                                             int((int(time.time()) - int(download_time)) / 60),
+                                             download_video_title)
+                        # 删除行或列,可选 ROWS、COLUMNS
+                        Feishu.dimension_range("SdCHOM", "ROWS", i + 1, i + 1)
+                        cls.download_up_video("prod")
 
-                            # 上升榜时长在 1-2 小时内,播放量增长>=1000
-                            elif (7200 >= int(time.time()) - int(download_time) >= 3600)\
-                                    and (int(v_play_cnt_up) - int(download_video_play_cnt) >= 1000):
-                                Common.logger().info(
-                                    "视频:{},在上升榜时间内的播放量{}>=1000,开始下载视频",
-                                    download_video_title, int(v_play_cnt_up) - int(download_video_play_cnt))
+                    # 上升榜下载规则
+                    elif cls.up_rule(v_width, v_height, v_duration, v_play_cnt_up) is False:
+                        Common.logger().info("不满足上升榜下载规则,删除视频:{}", download_video_title)
+                        # 删除行或列,可选 ROWS、COLUMNS
+                        Feishu.dimension_range("SdCHOM", "ROWS", i + 1, i + 1)
+                        cls.download_up_video("prod")
 
-                                # 下载封面
-                                Common.download_method("cover", download_video_title, v_video_cover)
-                                # 下载视频
-                                Common.download_method("video", download_video_title, download_url_up)
-                                # 保存视频信息到 "./files/{视频标题}/videoinfo.txt"
-                                with open(r"./videos/" + download_video_title
-                                          + "/" + "info.txt", "a", encoding="utf8") as f_a2:
-                                    f_a2.write(str(download_video_id) + "\n" +
-                                               str(download_video_title) + "\n" +
-                                               str(v_duration) + "\n" +
-                                               str(v_play_cnt_up) + "\n" +
-                                               str(v_comment_cnt) + "\n" +
-                                               str(v_liked_cnt) + "\n" +
-                                               str(v_shared_cnt) + "\n" +
-                                               str(v_resolution) + "\n" +
-                                               str(v_send_date) + "\n" +
-                                               str(v_username) + "\n" +
-                                               str(v_user_cover) + "\n" +
-                                               str(download_url_up) + "\n" +
-                                               str(v_video_cover) + "\n" +
-                                               str(video_info_session))
-                                Common.logger().info("==========视频信息已保存至info.txt==========")
+                    # 从已下载视频表中去重:https://w42nne6hzg.feishu.cn/sheets/shtcngRPoDYAi24x52j2nDuHMih?sheet=20ce0c
+                    elif download_video_id in [j for m in Feishu.get_values_batch("20ce0c") for j in m]:
+                        Common.logger().info("视频已下载,删除该视频信息:{}", download_video_title)
+                        # 从云文档删除该视频信息:https://w42nne6hzg.feishu.cn/sheets/shtcngRPoDYAi24x52j2nDuHMih?sheet=SdCHOM
+                        Feishu.dimension_range("SdCHOM", "ROWS", i + 1, i + 1)
+                        cls.download_up_video("prod")
 
-                                # 上传该视频
-                                Common.logger().info("开始上传视频:{}", download_video_title)
-                                Publish.upload_and_publish(env, "up")
+                    # 上升榜时长在 1-2 小时内,播放量增长>=1000
+                    elif (7200 >= int(time.time()) - int(download_time) >= 3600)\
+                            and (int(v_play_cnt_up) - int(download_video_play_cnt) >= 1000):
+                        Common.logger().info(
+                            "视频:{},在上升榜时间内的播放量{}>=1000,开始下载视频",
+                            download_video_title, int(v_play_cnt_up) - int(download_video_play_cnt))
 
-                                # 保存视频 ID 到云文档:
-                                # https://w42nne6hzg.feishu.cn/sheets/shtcngRPoDYAi24x52j2nDuHMih?sheet=20ce0c
-                                Common.logger().info("保存视频ID至云文档:{}", download_video_title)
-                                # 看一看+ ,视频ID工作表,插入首行
-                                Feishu.insert_columns("20ce0c", "ROWS", 1, 2)
-                                # 看一看+ ,视频ID工作表,首行写入数据
-                                upload_time = int(time.time())
-                                values = [[time.strftime("%Y/%m/%d %H:%M:%S", time.localtime(upload_time)),
-                                           "上升榜",
-                                           str(download_video_id),
-                                           str(download_video_title),
-                                           v_play_cnt_up,
-                                           v_comment_cnt,
-                                           v_liked_cnt,
-                                           v_shared_cnt,
-                                           v_duration,
-                                           v_resolution,
-                                           time.strftime("%Y/%m/%d %H:%M:%S", time.localtime(v_send_date)),
-                                           str(v_username),
-                                           str(v_user_id),
-                                           str(v_user_cover),
-                                           str(v_video_cover),
-                                           str(download_url_up)]]
-                                time.sleep(1)
-                                Feishu.update_values("20ce0c", "A2:Q2", values)
+                        # 下载封面
+                        Common.download_method("cover", download_video_title, v_video_cover)
+                        # 下载视频
+                        Common.download_method("video", download_video_title, download_url_up)
+                        # 保存视频信息到 "./files/{视频标题}/videoinfo.txt"
+                        with open(r"./videos/" + download_video_title
+                                  + "/" + "info.txt", "a", encoding="utf8") as f_a2:
+                            f_a2.write(str(download_video_id) + "\n" +
+                                       str(download_video_title) + "\n" +
+                                       str(v_duration) + "\n" +
+                                       str(v_play_cnt_up) + "\n" +
+                                       str(v_comment_cnt) + "\n" +
+                                       str(v_liked_cnt) + "\n" +
+                                       str(v_shared_cnt) + "\n" +
+                                       str(v_resolution) + "\n" +
+                                       str(v_send_date) + "\n" +
+                                       str(v_username) + "\n" +
+                                       str(v_user_cover) + "\n" +
+                                       str(download_url_up) + "\n" +
+                                       str(v_video_cover) + "\n" +
+                                       str(video_info_session))
+                        Common.logger().info("==========视频信息已保存至info.txt==========")
 
-                                # 从云文档删除该视频信息:https://w42nne6hzg.feishu.cn/sheets/shtcngRPoDYAi24x52j2nDuHMih?sheet=SdCHOM
-                                Common.logger().info("从云文档删除该视频信息:{}", download_video_title)
-                                # 删除行或列,可选 ROWS、COLUMNS
-                                Feishu.dimension_range("SdCHOM", "ROWS", i + 1, i + 1)
-                            # 上升榜时长在 1-2 小时内,播放量增长<1000
-                            elif (7200 >= int(time.time()) - int(download_time) >= 3600)\
-                                    and (int(v_play_cnt_up) - int(download_video_play_cnt) < 1000):
-                                # 删除之前保存的该视频信息,并把现在的信息保存进去
-                                Common.logger().info("该视频1小时内的播放量:{}<1000;更新该视频信息:{}",
-                                                     int(v_play_cnt_up) - int(download_video_play_cnt),
-                                                     download_video_title)
-                                # 从云文档删除该视频信息:https://w42nne6hzg.feishu.cn/sheets/shtcngRPoDYAi24x52j2nDuHMih?sheet=SdCHOM
-                                Common.logger().info("从云文档删除该视频信息:{}", download_video_title)
-                                # 删除行或列,可选 ROWS、COLUMNS
-                                Feishu.dimension_range("SdCHOM", "ROWS", i + 1, i + 1)
+                        # 上传该视频
+                        Common.logger().info("开始上传视频:{}", download_video_title)
+                        Publish.upload_and_publish(env, "up")
 
-                                # 看一看+工作表,插入首行
-                                Feishu.insert_columns("SdCHOM", "ROWS", 1, 2)
+                        # 保存视频 ID 到云文档:
+                        # https://w42nne6hzg.feishu.cn/sheets/shtcngRPoDYAi24x52j2nDuHMih?sheet=20ce0c
+                        Common.logger().info("保存视频ID至云文档:{}", download_video_title)
+                        # 看一看+ ,视频ID工作表,插入首行
+                        Feishu.insert_columns("20ce0c", "ROWS", 1, 2)
+                        # 看一看+ ,视频ID工作表,首行写入数据
+                        upload_time = int(time.time())
+                        values = [[time.strftime("%Y/%m/%d %H:%M:%S", time.localtime(upload_time)),
+                                   "上升榜",
+                                   str(download_video_id),
+                                   str(download_video_title),
+                                   v_play_cnt_up,
+                                   v_comment_cnt,
+                                   v_liked_cnt,
+                                   v_shared_cnt,
+                                   v_duration,
+                                   v_resolution,
+                                   time.strftime("%Y/%m/%d %H:%M:%S", time.localtime(v_send_date)),
+                                   str(v_username),
+                                   str(v_user_id),
+                                   str(v_user_cover),
+                                   str(v_video_cover),
+                                   str(download_url_up)]]
+                        time.sleep(1)
+                        Feishu.update_values("20ce0c", "A2:Q2", values)
 
-                                # 获取当前时间
-                                download_up_time = int(time.time())
-                                values = [[time.strftime("%Y/%m/%d %H:%M:%S", time.localtime(download_up_time)),
-                                           "上升榜",
-                                           str(download_video_id),
-                                           str(download_video_title),
-                                           v_play_cnt_up,
-                                           v_comment_cnt,
-                                           v_liked_cnt,
-                                           v_shared_cnt,
-                                           v_duration,
-                                           v_resolution,
-                                           time.strftime("%Y/%m/%d %H:%M:%S", time.localtime(v_send_date)),
-                                           str(v_username),
-                                           str(v_user_id),
-                                           str(v_user_cover),
-                                           str(v_video_cover),
-                                           str(download_url_up)]]
-                                time.sleep(1)
-                                Feishu.update_values("SdCHOM", "A2:Q2", values)
+                        # 从云文档删除该视频信息:https://w42nne6hzg.feishu.cn/sheets/shtcngRPoDYAi24x52j2nDuHMih?sheet=SdCHOM
+                        Common.logger().info("从云文档删除该视频信息:{}", download_video_title)
+                        # 删除行或列,可选 ROWS、COLUMNS
+                        Feishu.dimension_range("SdCHOM", "ROWS", i + 1, i + 1)
+                        cls.download_up_video("prod")
 
-                    except Exception as e:
+                    # 上升榜时长在 1-2 小时内,播放量增长<1000
+                    elif (7200 >= int(time.time()) - int(download_time) >= 3600)\
+                            and (int(v_play_cnt_up) - int(download_video_play_cnt) < 1000):
+                        # 删除之前保存的该视频信息,并把现在的信息保存进去
+                        Common.logger().info("该视频1小时内的播放量:{}<1000;更新该视频信息:{}",
+                                             int(v_play_cnt_up) - int(download_video_play_cnt),
+                                             download_video_title)
                         # 从云文档删除该视频信息:https://w42nne6hzg.feishu.cn/sheets/shtcngRPoDYAi24x52j2nDuHMih?sheet=SdCHOM
-                        Common.logger().error("获取视频info异常:{},删除该视频", e)
+                        Common.logger().info("从云文档删除该视频信息:{}", download_video_title)
                         # 删除行或列,可选 ROWS、COLUMNS
                         Feishu.dimension_range("SdCHOM", "ROWS", i + 1, i + 1)
+
+                        # 看一看+工作表,插入首行
+                        Feishu.insert_columns("SdCHOM", "ROWS", 1, 2)
+
+                        # 获取当前时间
+                        download_up_time = int(time.time())
+                        values = [[time.strftime("%Y/%m/%d %H:%M:%S", time.localtime(download_up_time)),
+                                   "上升榜",
+                                   str(download_video_id),
+                                   str(download_video_title),
+                                   v_play_cnt_up,
+                                   v_comment_cnt,
+                                   v_liked_cnt,
+                                   v_shared_cnt,
+                                   v_duration,
+                                   v_resolution,
+                                   time.strftime("%Y/%m/%d %H:%M:%S", time.localtime(v_send_date)),
+                                   str(v_username),
+                                   str(v_user_id),
+                                   str(v_user_cover),
+                                   str(v_video_cover),
+                                   str(download_url_up)]]
+                        time.sleep(1)
+                        Feishu.update_values("SdCHOM", "A2:Q2", values)
+
         except Exception as e:
-            Common.logger().error(e)
+            # 从云文档删除该视频信息:https://w42nne6hzg.feishu.cn/sheets/shtcngRPoDYAi24x52j2nDuHMih?sheet=SdCHOM
+            Common.logger().error("获取视频info异常:{}", e)
 
 
 if __name__ == "__main__":

+ 1 - 1
main/get_feeds.py

@@ -100,7 +100,7 @@ def get_feeds():
                         .replace("?", "").replace('"', "").replace("<", "")\
                         .replace(">", "").replace("|", "").replace(" ", "")\
                         .replace("&NBSP", "").replace(".", "。").replace(" ", "")\
-                        .replace("小年糕", "")
+                        .replace("小年糕", "").replace("#", "").replace("Merge", "")
                     Common.logger().info('视频标题:{}', video_title)
 
                     # 获取视频ID

+ 2 - 2
main/run.py

@@ -31,7 +31,7 @@ class Main:
             else:
                 # 获取视频信息,并下载
                 get_feeds()
-                DownloadPlay.download_play_video("prod")
+                DownloadPlay.run_download_play_video()
                 # 请求随机间隔时间
                 time.sleep(random.randint(31, 40))
 
@@ -79,7 +79,7 @@ class Main:
             else:
                 # 获取视频信息,并下载
                 get_feeds()
-                DownloadSendtime.download_sendtime_video("prod")
+                DownloadSendtime.run_download_sendtime_video()
                 # 请求随机间隔时间
                 time.sleep(random.randint(31, 40))