wangkun 2 jaren geleden
bovenliggende
commit
4eede34542
4 gewijzigde bestanden met toevoegingen van 84 en 266 verwijderingen
  1. 4 0
      README.md
  2. 23 140
      main/xiaoniangao_hour_list.py
  3. 28 67
      main/xiaoniangao_person_list.py
  4. 29 59
      main/xiaoniangao_play_list.py

+ 4 - 0
README.md

@@ -27,6 +27,10 @@
 
 
 #### 需求 
+2022/10/19
+1. 已下载视频分表: 小时级_已下载表、用户主页_已下载表、播放量_已下载表
+2. 三种规则分别增加报警监控
+
 2022/9/9
 1. 增加已下载去重表:sheet=2zD8cv
 

+ 23 - 140
main/xiaoniangao_hour_list.py

@@ -27,9 +27,6 @@ class HourList:
     hour_uid = wechat_sheet[5][1]
     hour_token = wechat_sheet[6][1]
 
-    # # 小时级数据表
-    # hour_sheet = Feishu.get_values_batch("hour", "xiaoniangao", "ba0da4")
-
     # 生成 uid、token
     @classmethod
     def get_uid_token(cls):
@@ -238,29 +235,18 @@ class HourList:
                         expression = cls.get_expression()
                         expression_list = expression[0]
                         char_list = expression[1]
-                        # print(f"expression_list:{expression_list}")
-                        # print(f"char_list:{char_list}")
                         # 随机取一个表情
                         expression = random.choice(expression_list)
-                        # print(f"expression:{expression}")
                         # 生成标题list[表情+title, title+表情]
                         expression_title_list = [expression + befor_video_title, befor_video_title + expression]
-                        # print(f"expression_title_list:{expression_title_list}")
                         # 从标题list中随机取一个标题
                         title_list1 = random.choice(expression_title_list)
-                        # print(f"title_list1:{title_list1}")
                         # 生成标题:原标题+符号
                         title_list2 = befor_video_title + random.choice(char_list)
-                        # print(f"befor_video_title:{befor_video_title}")
-
-                        # title_list3 = befor_video_title.replace(
-                        #     ",", random.choice(expression_list)).replace(",", random.choice(expression_list))
                         # 表情和标题组合,与标题和符号组合,汇总成待使用的标题列表
                         title_list4 = [title_list2, title_list1]
-                        # print(f"title_list4:{title_list4}")
                         # 最终标题
                         video_title = random.choice(title_list4)
-                        # print(f"video_title:{video_title}\n")
                     else:
                         video_title = 0
 
@@ -288,12 +274,6 @@ class HourList:
                     else:
                         video_share_cnt = 0
 
-                    # # 评论量
-                    # if "comment_count" in feeds[i]:
-                    #     video_comment_cnt = feeds[i]["comment_count"]
-                    # else:
-                    #     video_comment_cnt = 0
-
                     # 时长
                     if "du" in feeds[i]:
                         video_duration = int(feeds[i]["du"] / 1000)
@@ -345,17 +325,11 @@ class HourList:
                     Common.logger(log_type).info("标题:{}", video_title)
                     Common.logger(log_type).info("视频ID:{}", video_id)
                     Common.logger(log_type).info("播放量:{}", video_play_cnt)
-                    # Common.logger(log_type).info("点赞量:{}", video_like_cnt)
-                    # Common.logger(log_type).info("分享量:{}", video_share_cnt)
-                    # Common.logger(log_type).info("评论数:{}", video_comment_cnt)
                     Common.logger(log_type).info("时长:{}秒", video_duration)
-                    # Common.logger(log_type).info("宽高:{}*{}", video_width, video_height)
                     Common.logger(log_type).info(
                         "视频发布时间:{}", time.strftime(
                             "%Y/%m/%d %H:%M:%S", time.localtime(int(video_send_time) / 1000)))
                     Common.logger(log_type).info("用户名:{}", user_name)
-                    # Common.logger(log_type).info("用户头像:{}", head_url)
-                    # Common.logger(log_type).info("封面:{}", cover_url)
                     Common.logger(log_type).info("播放地址:{}", video_url)
 
                     # 过滤无效视频
@@ -364,6 +338,7 @@ class HourList:
                             or cover_url == 0 or video_url == 0:
                         Common.logger(log_type).warning("无效视频")
 
+                    # 抓取基础规则过滤
                     elif cls.download_rule(video_duration, video_width, video_height, video_play_cnt,
                                            video_like_cnt, video_share_cnt, video_send_time) is False:
                         Common.logger(log_type).info("不满足基础门槛规则")
@@ -373,22 +348,27 @@ class HourList:
                         Common.logger(log_type).info("视频已中敏感词:{}".format(video_title))
                         time.sleep(1)
 
-                    # 从云文档中去重:https://w42nne6hzg.feishu.cn/sheets/shtcnYxiyQ1wLklo1W5Kdqc9cGh?sheet=yatRv2
+                    # 从云文档中去重: 小时级_已下载表
                     elif video_id in [j for i in Feishu.get_values_batch(log_type, "xiaoniangao", "yatRv2") for j in i]:
                         Common.logger(log_type).info("该视频已下载:{}", video_title)
                         time.sleep(1)
 
-                    # 从云文档中去重:https://w42nne6hzg.feishu.cn/sheets/shtcnYxiyQ1wLklo1W5Kdqc9cGh?sheet=2zD8cv
-                    elif video_id in [j for i in Feishu.get_values_batch(log_type, "xiaoniangao", "2zD8cv") for j in i]:
+                    # 从云文档中去重: 用户主页_已下载表
+                    elif video_id in [j for i in Feishu.get_values_batch(log_type, "xiaoniangao", "Wu0CeL") for j in i]:
+                        Common.logger(log_type).info("该视频已下载:{}", video_title)
+                        time.sleep(1)
+
+                    # 从云文档去重: 播放量_已下载表
+                    elif video_id in [j for i in Feishu.get_values_batch(log_type, "xiaoniangao", "c85k1C") for j in i]:
                         Common.logger(log_type).info("该视频已下载:{}", video_title)
                         time.sleep(1)
 
-                    # 从云文档去重:https://w42nne6hzg.feishu.cn/sheets/shtcnYxiyQ1wLklo1W5Kdqc9cGh?sheet=ba0da4
+                    # 从云文档去重: 小年糕小时级数据_feeds
                     elif video_id in [j for i in Feishu.get_values_batch("hour", "xiaoniangao", "ba0da4") for j in i]:
                         Common.logger(log_type).info("该视频已保存过:{}", video_title)
                         time.sleep(1)
+
                     else:
-                        Common.logger(log_type).info("该视频未下载,添加至feeds中:{}".format(video_title))
                         # feeds工作表,插入空行
                         time.sleep(1)
                         Feishu.insert_columns(log_type, "xiaoniangao", "ba0da4", "ROWS", 2, 3)
@@ -410,9 +390,10 @@ class HourList:
                         # 等待 1s,防止操作云文档太频繁,导致报错
                         time.sleep(1)
                         Feishu.update_values(log_type, "xiaoniangao", "ba0da4", "A3:K3", values)
+                        Common.logger(log_type).info("视频添加至小时级数据_feeds成功:{}\n".format(video_title))
 
         except Exception as e:
-            Common.logger(log_type).error("获取小时榜视频列表异常:{}", e)
+            Common.logger(log_type).error("获取小时榜视频列表异常:{}\n", e)
 
     # 更新小时榜数据
     @classmethod
@@ -710,7 +691,7 @@ class HourList:
                         except Exception as e:
                             Common.logger(log_type).error("视频详情:{},异常:{}", v_title, e)
         except Exception as e:
-            Common.logger(log_type).error("获取小时榜数据异常:{}", e)
+            Common.logger(log_type).error("获取小时榜数据异常:{}\n", e)
 
     # 下载/上传
     @classmethod
@@ -803,11 +784,14 @@ class HourList:
                         # elif any(word if word in v_id else False for word in cls.sensitive_videoid_words()) is True:
                         #     Common.logger(log_type).info("视频ID带字母:{}".format(v_id))
 
-                        # 从云文档中去重:https://w42nne6hzg.feishu.cn/sheets/shtcnYxiyQ1wLklo1W5Kdqc9cGh?sheet=yatRv2
+                        # 从云文档中去重: 小时级_已下载表
                         elif v_id in [j for i in Feishu.get_values_batch(log_type, "xiaoniangao", "yatRv2") for j in i]:
                             Common.logger(log_type).info("该视频已下载:{}", v_title)
-                        # 从云文档中去重:https://w42nne6hzg.feishu.cn/sheets/shtcnYxiyQ1wLklo1W5Kdqc9cGh?sheet=yatRv2
-                        elif v_id in [j for i in Feishu.get_values_batch(log_type, "xiaoniangao", "2zD8cv") for j in i]:
+                        # 从云文档中去重: 用户主页_已下载表
+                        elif v_id in [j for i in Feishu.get_values_batch(log_type, "xiaoniangao", "Wu0CeL") for j in i]:
+                            Common.logger(log_type).info("该视频已下载:{}", v_title)
+                        # 从云文档中去重: 播放量_已下载表
+                        elif v_id in [j for i in Feishu.get_values_batch(log_type, "xiaoniangao", "c85k1C") for j in i]:
                             Common.logger(log_type).info("该视频已下载:{}", v_title)
 
                         # 播放量大于 50000,直接下载
@@ -942,25 +926,6 @@ class HourList:
                                 time.sleep(1)
                                 Feishu.update_values(log_type, "xiaoniangao", "yatRv2", "F2:W2", values)
 
-                                # 保存视频信息到监控表
-                                Common.logger(log_type).info("添加视频到监控表:{}", v_title)
-                                # 插入空行
-                                time.sleep(1)
-                                Feishu.insert_columns(log_type, "monitor", "N7e2yI", "ROWS", 1, 2)
-                                # 视频信息写入监控表
-                                values = [[time.strftime("%Y/%m/%d %H:%M:%S", time.localtime(int(upload_time))),
-                                           v_id,
-                                           v_title,
-                                           our_video_link,
-                                           p_id,
-                                           p_mid,
-                                           hour_user_name,
-                                           int(hour_video_duration) / 1000,
-                                           time.strftime("%Y/%m/%d %H:%M:%S",
-                                                         time.localtime(int(hour_video_send_time) / 1000)),
-                                           hour_play_cnt]]
-                                time.sleep(1)
-                                Feishu.update_values(log_type, "monitor", "N7e2yI", "F2:O2", values)
                             except Exception as e:
                                 Common.logger(log_type).error("下载视频异常:{}", e)
 
@@ -1097,33 +1062,12 @@ class HourList:
                                            hour_video_url]]
                                 time.sleep(1)
                                 Feishu.update_values(log_type, "xiaoniangao", "yatRv2", "F2:W2", values)
-
-                                # 保存视频信息到监控表
-                                Common.logger(log_type).info("添加视频到监控表:{}", v_title)
-                                # 插入空行
-                                time.sleep(1)
-                                Feishu.insert_columns(log_type, "monitor", "N7e2yI", "ROWS", 1, 2)
-                                # 视频信息写入监控表
-                                values = [[time.strftime("%Y/%m/%d %H:%M:%S", time.localtime(int(upload_time))),
-                                           v_id,
-                                           v_title,
-                                           our_video_link,
-                                           p_id,
-                                           p_mid,
-                                           hour_user_name,
-                                           int(hour_video_duration) / 1000,
-                                           time.strftime("%Y/%m/%d %H:%M:%S",
-                                                         time.localtime(int(hour_video_send_time) / 1000)),
-                                           hour_play_cnt]]
-                                time.sleep(1)
-                                Feishu.update_values(log_type, "monitor", "N7e2yI", "F2:O2", values)
                             except Exception as e:
                                 Common.logger(log_type).error("下载视频异常:{}", e)
                         elif int(ten_cnt) >= 2000 and int(fifteen_cnt) >= 2000:
                             Common.logger(log_type).info(
                                 "10:00 and 15:00 数据上升量:{} and {} >= 2000", ten_cnt, fifteen_cnt)
                             Common.logger(log_type).info("满足下载规则,开始下载视频")
-
                             try:
                                 url = "https://kapi.xiaoniangao.cn/profile/get_profile_by_id"
                                 headers = {
@@ -1251,33 +1195,12 @@ class HourList:
                                            hour_video_url]]
                                 time.sleep(1)
                                 Feishu.update_values(log_type, "xiaoniangao", "yatRv2", "F2:W2", values)
-
-                                # 保存视频信息到监控表
-                                Common.logger(log_type).info("添加视频到监控表:{}", v_title)
-                                # 插入空行
-                                time.sleep(1)
-                                Feishu.insert_columns(log_type, "monitor", "N7e2yI", "ROWS", 1, 2)
-                                # 视频信息写入监控表
-                                values = [[time.strftime("%Y/%m/%d %H:%M:%S", time.localtime(int(upload_time))),
-                                           v_id,
-                                           v_title,
-                                           our_video_link,
-                                           p_id,
-                                           p_mid,
-                                           hour_user_name,
-                                           int(hour_video_duration) / 1000,
-                                           time.strftime("%Y/%m/%d %H:%M:%S",
-                                                         time.localtime(int(hour_video_send_time) / 1000)),
-                                           hour_play_cnt]]
-                                time.sleep(1)
-                                Feishu.update_values(log_type, "monitor", "N7e2yI", "F2:O2", values)
                             except Exception as e:
                                 Common.logger(log_type).error("下载视频异常:{}", e)
                         elif int(fifteen_cnt) >= 2000 and int(twenty_cnt) >= 2000:
                             Common.logger(log_type).info(
                                 "15:00 and 20:00 数据上升量:{} and {} >= 2000", fifteen_cnt, twenty_cnt)
                             Common.logger(log_type).info("满足下载规则,开始下载视频")
-
                             try:
                                 url = "https://kapi.xiaoniangao.cn/profile/get_profile_by_id"
                                 headers = {
@@ -1405,33 +1328,12 @@ class HourList:
                                            hour_video_url]]
                                 time.sleep(1)
                                 Feishu.update_values(log_type, "xiaoniangao", "yatRv2", "F2:W2", values)
-
-                                # 保存视频信息到监控表
-                                Common.logger(log_type).info("添加视频到监控表:{}", v_title)
-                                # 插入空行
-                                time.sleep(1)
-                                Feishu.insert_columns(log_type, "monitor", "N7e2yI", "ROWS", 1, 2)
-                                # 视频信息写入监控表
-                                values = [[time.strftime("%Y/%m/%d %H:%M:%S", time.localtime(int(upload_time))),
-                                           v_id,
-                                           v_title,
-                                           our_video_link,
-                                           p_id,
-                                           p_mid,
-                                           hour_user_name,
-                                           int(hour_video_duration) / 1000,
-                                           time.strftime("%Y/%m/%d %H:%M:%S",
-                                                         time.localtime(int(hour_video_send_time) / 1000)),
-                                           hour_play_cnt]]
-                                time.sleep(1)
-                                Feishu.update_values(log_type, "monitor", "N7e2yI", "F2:O2", values)
                             except Exception as e:
                                 Common.logger(log_type).error("下载视频异常:{}", e)
                         elif int(yesterday_twenty_cnt) >= 2000 and int(ten_cnt) >= 2000:
                             Common.logger(log_type).info("昨日20:00 and 今日10:00 数据上升量:{} and {} >= 2000",
                                                          yesterday_twenty_cnt, ten_cnt)
                             Common.logger(log_type).info("满足下载规则,开始下载视频")
-
                             try:
                                 url = "https://kapi.xiaoniangao.cn/profile/get_profile_by_id"
                                 headers = {
@@ -1559,34 +1461,15 @@ class HourList:
                                            hour_video_url]]
                                 time.sleep(1)
                                 Feishu.update_values(log_type, "xiaoniangao", "yatRv2", "F2:W2", values)
-
-                                # 保存视频信息到监控表
-                                Common.logger(log_type).info("添加视频到监控表:{}", v_title)
-                                # 插入空行
-                                time.sleep(1)
-                                Feishu.insert_columns(log_type, "monitor", "N7e2yI", "ROWS", 1, 2)
-                                # 视频信息写入监控表
-                                values = [[time.strftime("%Y/%m/%d %H:%M:%S", time.localtime(int(upload_time))),
-                                           v_id,
-                                           v_title,
-                                           our_video_link,
-                                           p_id,
-                                           p_mid,
-                                           hour_user_name,
-                                           int(hour_video_duration) / 1000,
-                                           time.strftime("%Y/%m/%d %H:%M:%S",
-                                                         time.localtime(int(hour_video_send_time) / 1000)),
-                                           hour_play_cnt]]
-                                time.sleep(1)
-                                Feishu.update_values(log_type, "monitor", "N7e2yI", "F2:O2", values)
                             except Exception as e:
                                 Common.logger(log_type).error("下载视频异常:{}", e)
                         else:
                             Common.logger(log_type).info("上升量不满足下载规则")
         except Exception as e:
-            Common.logger(log_type).error("下载视频时,获取飞书信息异常:{}", e)
+            Common.logger(log_type).error("下载视频时,获取飞书信息异常:{}\n", e)
 
 
 if __name__ == "__main__":
     HourList.get_hour_list_feeds("hour")
-    # HourList.get_expression("hour")
+
+    pass

+ 28 - 67
main/xiaoniangao_person_list.py

@@ -365,8 +365,6 @@ class Person:
                         expression_list.append(char_sheet[q][0])
                     if char_sheet[q][1] is not None:
                         char_list.append(char_sheet[q][1])
-                # print(expression_list)
-                # print(char_list)
                 befor_video_title = feeds[i]["title"].strip().replace("\n", "") \
                     .replace("/", "").replace("\r", "").replace("#", "") \
                     .replace(".", "。").replace("\\", "").replace("&NBSP", "") \
@@ -498,17 +496,22 @@ class Person:
                          cls.sensitive_words(log_type)) is True:
                     Common.logger(log_type).info("视频已中敏感词:{}\n".format(video_title))
 
-                # 从 云文档 去重:https://w42nne6hzg.feishu.cn/sheets/shtcnYxiyQ1wLklo1W5Kdqc9cGh?sheet=yatRv2
+                # 从云文档去重: 小时级_已下载表
                 elif video_id in [m for n in Feishu.get_values_batch(log_type, "xiaoniangao", "yatRv2") for m in
                                   n]:
                     Common.logger(log_type).info("该视频已下载:{}\n", video_title)
 
-                # 从 云文档 去重:https://w42nne6hzg.feishu.cn/sheets/shtcnYxiyQ1wLklo1W5Kdqc9cGh?sheet=yatRv2
-                elif video_id in [m for n in Feishu.get_values_batch(log_type, "xiaoniangao", "2zD8cv") for m in
+                # 从云文档去重: 用户主页_已下载表
+                elif video_id in [m for n in Feishu.get_values_batch(log_type, "xiaoniangao", "Wu0CeL") for m in
                                   n]:
                     Common.logger(log_type).info("该视频已下载:{}\n", video_title)
 
-                # 从 云文档 去重:https://w42nne6hzg.feishu.cn/sheets/shtcnYxiyQ1wLklo1W5Kdqc9cGh?sheet=k6ldje
+                # 从云文档去重: 播放量_已下载表
+                elif video_id in [m for n in Feishu.get_values_batch(log_type, "xiaoniangao", "c85k1C") for m in
+                                  n]:
+                    Common.logger(log_type).info("该视频已下载:{}\n", video_title)
+
+                # 从云文档去重: 用户主页_feeds
                 elif video_id in [m for n in Feishu.get_values_batch(log_type, "xiaoniangao", "k6ldje") for m in
                                   n]:
                     Common.logger(log_type).info("该视频已在个人主页feeds:{}\n", video_title)
@@ -539,9 +542,8 @@ class Person:
                     # 等待 1s,防止操作云文档太频繁,导致报错
                     time.sleep(1)
                     Feishu.update_values(log_type, "xiaoniangao", "k6ldje", "F2:V2", values)
-                    Common.logger(log_type).info("添加视频至个人主页feeds成功:{}\n", video_title)
+                    Common.logger(log_type).info("添加视频至个人主页_feeds成功:{}\n", video_title)
 
-            # Common.logger(log_type).info("cls.send_time:{}", cls.send_time)
             if int(time.time()) - int(cls.send_time) <= 259200:
                 cls.get_videos_from_person(log_type, p_mid)
             else:
@@ -585,22 +587,6 @@ class Person:
                 download_cover_url = person_sheet[i][20]
                 download_video_url = person_sheet[i][21]
 
-                # Common.logger("person").info("download_video_id:{}", download_video_id)
-                # Common.logger("person").info("download_video_title:{}", download_video_title)
-                # Common.logger("person").info("download_video_play_cnt:{}", download_video_play_cnt)
-                # Common.logger("person").info("download_video_comment_cnt:{}", download_video_comment_cnt)
-                # Common.logger("person").info("download_video_like_cnt:{}", download_video_like_cnt)
-                # Common.logger("person").info("download_video_share_cnt:{}", download_video_share_cnt)
-                # Common.logger("person").info("download_video_duration:{}", download_video_duration)
-                # Common.logger("person").info("download_video_resolution:{}", download_video_resolution)
-                # Common.logger("person").info("download_video_send_time:{}", download_video_send_time)
-                # Common.logger("person").info("download_user_name:{}", download_user_name)
-                # Common.logger("person").info("download_user_id:{}", download_user_id)
-                # Common.logger("person").info("download_user_mid:{}", download_user_mid)
-                # Common.logger("person").info("download_head_url:{}", download_head_url)
-                # Common.logger("person").info("download_cover_url:{}", download_cover_url)
-                # Common.logger("person").info("download_video_url:{}", download_video_url)
-                
                 Common.logger("person").info("正在判断第{}行,视频:{}", i+1, download_video_title)
 
                 # 过滤空行及空标题视频
@@ -619,7 +605,7 @@ class Person:
                     Common.logger("person").info("播放量:{}<2000,删除成功\n", download_video_play_cnt)
                     return
 
-                # 从已下载视频中去重
+                # 从云文档去重: 小时级_已下载表
                 elif download_video_id in [j for m in Feishu.get_values_batch(
                         "person", "xiaoniangao", "yatRv2") for j in m]:
                     # 删除行或列,可选 ROWS、COLUMNS
@@ -627,13 +613,22 @@ class Person:
                     Common.logger("person").info("视频已下载:{},删除成功\n", download_video_title)
                     return
 
-                # 从已下载视频表中去重
+                # 从云文档去重: 用户主页_已下载表
+                elif download_video_id in [j for m in Feishu.get_values_batch(
+                        "person", "xiaoniangao", "Wu0CeL") for j in m]:
+                    # 删除行或列,可选 ROWS、COLUMNS
+                    Feishu.dimension_range("person", "xiaoniangao", "k6ldje", "ROWS", i + 1, i + 1)
+                    Common.logger("person").info("视频已下载:{},删除成功\n", download_video_title)
+                    return
+
+                # 从云文档去重: 播放量_已下载表
                 elif download_video_id in [j for m in Feishu.get_values_batch(
-                        "person", "xiaoniangao", "2zD8cv") for j in m]:
+                        "person", "xiaoniangao", "c85k1C") for j in m]:
                     # 删除行或列,可选 ROWS、COLUMNS
                     Feishu.dimension_range("person", "xiaoniangao", "k6ldje", "ROWS", i + 1, i + 1)
                     Common.logger("person").info("视频已下载:{},删除成功\n", download_video_title)
                     return
+
                 else:
                     # 下载封面
                     Common.download_method(log_type="person", text="cover",
@@ -667,10 +662,10 @@ class Person:
                     our_video_link = "https://admin.piaoquantv.com/cms/post-detail/" + str(our_video_id) + "/info"
                     Common.logger("person").info("视频上传完成:{}", download_video_title)
 
-                    # 保存视频 ID 到云文档:https://w42nne6hzg.feishu.cn/sheets/shtcnYxiyQ1wLklo1W5Kdqc9cGh?sheet=yatRv2
-                    Common.logger("person").info("保存视频ID至云文档:{}", download_video_title)
+                    # 保存视频: 用户主页_已下载表
+                    Common.logger("person").info("保存视频至用户主页_已下载表:{}", download_video_title)
                     # 视频ID工作表,插入首行
-                    Feishu.insert_columns("person", "xiaoniangao", "yatRv2", "ROWS", 1, 2)
+                    Feishu.insert_columns("person", "xiaoniangao", "Wu0CeL", "ROWS", 1, 2)
                     # 视频ID工作表,首行写入数据
                     upload_time = int(time.time())
                     values = [[time.strftime("%Y/%m/%d %H:%M:%S", time.localtime(upload_time)),
@@ -692,26 +687,7 @@ class Person:
                                str(download_cover_url),
                                str(download_video_url)]]
                     time.sleep(1)
-                    Feishu.update_values("person", "xiaoniangao", "yatRv2", "F2:W2", values)
-
-                    # 保存视频信息到监控表
-                    Common.logger("person").info("添加视频到监控表:{}", download_video_title)
-                    # 插入空行
-                    time.sleep(1)
-                    Feishu.insert_columns("person", "monitor", "N7e2yI", "ROWS", 1, 2)
-                    # 视频信息写入监控表
-                    values = [[time.strftime("%Y/%m/%d %H:%M:%S", time.localtime(int(upload_time))),
-                               str(download_video_id),
-                               download_video_title,
-                               our_video_link,
-                               download_user_id,
-                               download_user_mid,
-                               download_user_name,
-                               download_video_duration,
-                               str(download_video_send_time),
-                               download_video_play_cnt]]
-                    time.sleep(1)
-                    Feishu.update_values("person", "monitor", "N7e2yI", "F2:O2", values)
+                    Feishu.update_values("person", "xiaoniangao", "Wu0CeL", "F2:W2", values)
 
                     # 删除行或列,可选 ROWS、COLUMNS
                     Feishu.dimension_range("person", "xiaoniangao", "k6ldje", "ROWS", i + 1, i + 1)
@@ -737,21 +713,6 @@ class Person:
 
 if __name__ == "__main__":
     person = Person()
-    # print(person.follow_x_mid)
-    # print(person.follow_x_token_id)
-    # print(person.follow_referer)
-    # print(person.follow_uid)
-    # print(person.follow_token)
-    # print(person.get_follow_users("person"))
-    # print(person.get_unfollow_users("person"))
-    # 关注用户
-    # person.sub_users("person")
-    # # 取消关注用户
-    # person.unsub_users("person")
-    # # 获取所有关注列表的用户视频
-    # person.get_videos_from_follow("person")
-    # # 同步关注用户至云文档
-    # person.get_sub_or_fans_list("person")
-    # 抓取用户主页视频至云文档
-    # person.get_videos_from_person("person", "90261331")
     person.download_publish("person", "prod")
+
+    pass

+ 29 - 59
main/xiaoniangao_play_list.py

@@ -7,12 +7,10 @@ import sys
 import time
 import requests
 import urllib3
-
 sys.path.append(os.getcwd())
 from main.common import Common
 from main.feishu_lib import Feishu
 from main.publish import Publish
-
 proxies = {"http": None, "https": None}
 
 
@@ -107,9 +105,6 @@ class PlayList:
             if char_sheet[i][1] is not None:
                 char_list.append(char_sheet[i][1])
 
-        # print(f"expression_list:{expression_list}")
-        # print(f"char_list:{char_list}")
-
         return expression_list, char_list
 
     # 获取列表
@@ -200,35 +195,23 @@ class PlayList:
                             .replace(".", "。").replace("\\", "").replace("&NBSP", "") \
                             .replace(":", "").replace("*", "").replace("?", "") \
                             .replace("?", "").replace('"', "").replace("<", "") \
-                            .replace(">", "").replace("|", "").replace(" ", "").replace("#表情", "").replace("#符号",
-                                                                                                             "")
+                            .replace(">", "").replace("|", "").replace(" ", "").replace("#表情", "").replace("#符号", "")
 
                         expression = cls.get_expression(log_type)
                         expression_list = expression[0]
                         char_list = expression[1]
-                        # print(f"expression_list:{expression_list}")
-                        # print(f"char_list:{char_list}")
                         # 随机取一个表情
                         expression = random.choice(expression_list)
-                        # print(f"expression:{expression}")
                         # 生成标题list[表情+title, title+表情]
                         expression_title_list = [expression + befor_video_title, befor_video_title + expression]
-                        # print(f"expression_title_list:{expression_title_list}")
                         # 从标题list中随机取一个标题
                         title_list1 = random.choice(expression_title_list)
-                        # print(f"title_list1:{title_list1}")
                         # 生成标题:原标题+符号
                         title_list2 = befor_video_title + random.choice(char_list)
-                        # print(f"befor_video_title:{befor_video_title}")
-
-                        # title_list3 = befor_video_title.replace(
-                        #     ",", random.choice(expression_list)).replace(",", random.choice(expression_list))
                         # 表情和标题组合,与标题和符号组合,汇总成待使用的标题列表
                         title_list4 = [title_list2, title_list1]
-                        # print(f"title_list4:{title_list4}")
                         # 最终标题
                         video_title = random.choice(title_list4)
-                        # print(f"video_title:{video_title}\n")
                     else:
                         video_title = 0
 
@@ -318,13 +301,6 @@ class PlayList:
                         "视频发布时间:{}", time.strftime(
                             "%Y/%m/%d %H:%M:%S", time.localtime(int(video_send_time) / 1000)))
                     Common.logger(log_type).info("播放地址:{}", video_url)
-                    # Common.logger(log_type).info("点赞量:{}", video_like_cnt)
-                    # Common.logger(log_type).info("分享量:{}", video_share_cnt)
-                    # Common.logger(log_type).info("评论数:{}", video_comment_cnt)
-                    # Common.logger(log_type).info("宽高:{}*{}", video_width, video_height)
-                    # Common.logger(log_type).info("用户名:{}", user_name)
-                    # Common.logger(log_type).info("用户头像:{}", head_url)
-                    # Common.logger(log_type).info("封面:{}", cover_url)
 
                     # 过滤无效视频
                     if video_title == 0 or video_id == 0 or video_duration == 0 \
@@ -341,14 +317,20 @@ class PlayList:
                         Common.logger(log_type).info("视频已中敏感词:{}\n".format(video_title))
                         time.sleep(1)
 
-                    # 从已下载云文档中去重
+                    # 从云文档中去重: 小时级_已下载表
                     elif str(video_id) in [j for i in Feishu.get_values_batch(log_type, "xiaoniangao", "yatRv2") for j
                                            in i]:
                         Common.logger(log_type).info("该视频已下载:{}\n", video_title)
                         time.sleep(1)
 
-                    # 从已下载云文档中去重
-                    elif str(video_id) in [j for i in Feishu.get_values_batch(log_type, "xiaoniangao", "2zD8cv") for j
+                    # 从云文档中去重: 用户主页_已下载表
+                    elif str(video_id) in [j for i in Feishu.get_values_batch(log_type, "xiaoniangao", "Wu0CeL") for j
+                                           in i]:
+                        Common.logger(log_type).info("该视频已下载:{}\n", video_title)
+                        time.sleep(1)
+
+                    # 从云文档中去重: 播放量_已下载表
+                    elif str(video_id) in [j for i in Feishu.get_values_batch(log_type, "xiaoniangao", "c85k1C") for j
                                            in i]:
                         Common.logger(log_type).info("该视频已下载:{}\n", video_title)
                         time.sleep(1)
@@ -356,8 +338,9 @@ class PlayList:
                     # 从feeds云文档去重
                     elif str(video_id) in [j for i in Feishu.get_values_batch(log_type, "xiaoniangao", "me9Qs4") for j
                                            in i]:
-                        Common.logger(log_type).info("该视频已保存:{}\n", video_title)
+                        Common.logger(log_type).info("该视频已保存:{}\n", video_title)
                         time.sleep(1)
+
                     else:
                         Feishu.insert_columns(log_type, "xiaoniangao", "me9Qs4", "ROWS", 1, 2)
 
@@ -426,7 +409,7 @@ class PlayList:
                     Feishu.dimension_range(log_type, "xiaoniangao", "me9Qs4", "ROWS", i + 1, i + 1)
                     Common.logger(log_type).info("播放量:{}<100000,删除成功\n", download_video_play_cnt)
                     return
-                # 从已下载视频中去重
+                # 从云文档去重: 小时级_已下载表
                 elif str(download_video_id) in [j for m in Feishu.get_values_batch(
                         log_type, "xiaoniangao", "yatRv2") for j in m]:
                     # 删除行或列,可选 ROWS、COLUMNS
@@ -434,13 +417,22 @@ class PlayList:
                     Common.logger(log_type).info("视频已下载:{},删除成功\n", download_video_title)
                     return
 
-                # 从已下载视频表中去重
+                # 从云文档去重: 用户主页_已下载表
+                elif str(download_video_id) in [j for m in Feishu.get_values_batch(
+                        log_type, "xiaoniangao", "Wu0CeL") for j in m]:
+                    # 删除行或列,可选 ROWS、COLUMNS
+                    Feishu.dimension_range(log_type, "xiaoniangao", "me9Qs4", "ROWS", i + 1, i + 1)
+                    Common.logger(log_type).info("视频已下载:{},删除成功\n", download_video_title)
+                    return
+
+                # 从云文档去重: 播放量_已下载表
                 elif str(download_video_id) in [j for m in Feishu.get_values_batch(
-                        log_type, "xiaoniangao", "2zD8cv") for j in m]:
+                        log_type, "xiaoniangao", "c85k1C") for j in m]:
                     # 删除行或列,可选 ROWS、COLUMNS
                     Feishu.dimension_range(log_type, "xiaoniangao", "me9Qs4", "ROWS", i + 1, i + 1)
                     Common.logger(log_type).info("视频已下载:{},删除成功\n", download_video_title)
                     return
+
                 else:
                     # 下载封面
                     Common.download_method(log_type=log_type, text="cover",
@@ -474,10 +466,10 @@ class PlayList:
                     our_video_link = "https://admin.piaoquantv.com/cms/post-detail/" + str(our_video_id) + "/info"
                     Common.logger(log_type).info("视频上传完成:{}", download_video_title)
 
-                    # 保存视频 ID 到云文档:https://w42nne6hzg.feishu.cn/sheets/shtcnYxiyQ1wLklo1W5Kdqc9cGh?sheet=yatRv2
+                    # 保存视频: 播放量_已下载表
                     Common.logger(log_type).info("保存视频ID至云文档:{}", download_video_title)
                     # 视频ID工作表,插入首行
-                    Feishu.insert_columns(log_type, "xiaoniangao", "yatRv2", "ROWS", 1, 2)
+                    Feishu.insert_columns(log_type, "xiaoniangao", "c85k1C", "ROWS", 1, 2)
                     # 视频ID工作表,首行写入数据
                     upload_time = int(time.time())
                     values = [[time.strftime("%Y/%m/%d %H:%M:%S", time.localtime(upload_time)),
@@ -499,26 +491,7 @@ class PlayList:
                                str(download_cover_url),
                                str(download_video_url)]]
                     time.sleep(1)
-                    Feishu.update_values(log_type, "xiaoniangao", "yatRv2", "F2:Z2", values)
-
-                    # 保存视频信息到监控表
-                    Common.logger(log_type).info("添加视频到监控表:{}", download_video_title)
-                    # 插入空行
-                    time.sleep(1)
-                    Feishu.insert_columns(log_type, "monitor", "N7e2yI", "ROWS", 1, 2)
-                    # 视频信息写入监控表
-                    values = [[time.strftime("%Y/%m/%d %H:%M:%S", time.localtime(int(upload_time))),
-                               str(download_video_id),
-                               download_video_title,
-                               our_video_link,
-                               download_user_id,
-                               download_user_mid,
-                               download_user_name,
-                               download_video_duration,
-                               str(download_video_send_time),
-                               download_video_play_cnt]]
-                    time.sleep(1)
-                    Feishu.update_values(log_type, "monitor", "N7e2yI", "F2:O2", values)
+                    Feishu.update_values(log_type, "xiaoniangao", "c85k1C", "F2:Z2", values)
 
                     # 删除行或列,可选 ROWS、COLUMNS
                     Feishu.dimension_range(log_type, "xiaoniangao", "me9Qs4", "ROWS", i + 1, i + 1)
@@ -544,9 +517,6 @@ class PlayList:
 
 
 if __name__ == '__main__':
-    # PlayList.get_uid_token('play')
-    # print(PlayList.sensitive_words('play'))
-    # PlayList.get_expression('play')
     PlayList.get_play_feeds('play')
-    #
-    # print((int(time.time())-1661854250) / (3600*24))
+
+    pass