|
@@ -13,8 +13,21 @@ proxies = {"http": None, "https": None}
|
|
|
|
|
|
|
|
|
class HourList:
|
|
|
- # # 今天的日期:年-月-日
|
|
|
- # today = datetime.datetime.now().strftime("%Y-%m-%d")
|
|
|
+ # 过滤敏感词
|
|
|
+ @classmethod
|
|
|
+ def sensitive_words(cls):
|
|
|
+ # 敏感词库列表
|
|
|
+ word_list = []
|
|
|
+ # 从云文档读取所有敏感词,添加到词库列表
|
|
|
+ lists = Feishu.get_values_batch("person-logs", "xiaoniangao", "DRAnZh")
|
|
|
+ for i in lists:
|
|
|
+ for j in i:
|
|
|
+ # 过滤空的单元格内容
|
|
|
+ if j is None:
|
|
|
+ pass
|
|
|
+ else:
|
|
|
+ word_list.append(j)
|
|
|
+ return word_list
|
|
|
|
|
|
# 下载规则
|
|
|
@staticmethod
|
|
@@ -258,6 +271,10 @@ class HourList:
|
|
|
elif int(video_play_cnt) < 5000:
|
|
|
Common.logger().info("该视频7天内播放量<5000:{}", video_title)
|
|
|
|
|
|
+ # 过滤敏感词
|
|
|
+ elif any(word if word in video_title else False for word in cls.sensitive_words()) is True:
|
|
|
+ Common.logger().info("视频已中敏感词:{}".format(video_title))
|
|
|
+
|
|
|
# 从云文档去重:https://w42nne6hzg.feishu.cn/sheets/shtcngRPoDYAi24x52j2nDuHMih?sheet=onyBDH
|
|
|
elif video_id in [j for i in Feishu.get_values_batch("logs", "xiaoniangao", "ba0da4") for j in i]:
|
|
|
Common.logger().info("该视频已保存过:{}", video_title)
|
|
@@ -270,13 +287,20 @@ class HourList:
|
|
|
# 获取当前时间
|
|
|
get_feeds_time = int(time.time())
|
|
|
# 看一看云文档,工作表中写入数据
|
|
|
- values = [[profile_id, profile_mid, video_id, video_title, user_name, video_url, time.strftime(
|
|
|
- "%Y-%m-%d %H:%M:%S", time.localtime(int(video_send_time) / 1000)),
|
|
|
+ values = [[profile_id,
|
|
|
+ profile_mid,
|
|
|
+ video_id,
|
|
|
+ video_title,
|
|
|
+ user_name,
|
|
|
+ video_duration,
|
|
|
+ cover_url,
|
|
|
+ video_url,
|
|
|
+ time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(int(video_send_time) / 1000)),
|
|
|
str(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(get_feeds_time))),
|
|
|
video_play_cnt]]
|
|
|
# 等待 1s,防止操作云文档太频繁,导致报错
|
|
|
time.sleep(1)
|
|
|
- Feishu.update_values("logs", "xiaoniangao", "ba0da4", "A3:I3", values)
|
|
|
+ Feishu.update_values("logs", "xiaoniangao", "ba0da4", "A3:K3", values)
|
|
|
|
|
|
except Exception as e:
|
|
|
Common.logger().error("获取小时榜视频列表异常:{}", e)
|
|
@@ -285,12 +309,15 @@ class HourList:
|
|
|
@classmethod
|
|
|
def check_hour_list_data(cls, date):
|
|
|
# 判断J1单元格的日期是否为今天
|
|
|
- if Feishu.get_range_value("logs", "xiaoniangao", "ba0da4", "J1:J1")[0] != date:
|
|
|
- # 插入3列 J1:L1,并写入日期和时间数据
|
|
|
+ if Feishu.get_range_value("logs", "xiaoniangao", "ba0da4", "L1:N1")[0] != date:
|
|
|
+ # 插入3列 L1:N1,并写入日期和时间数据
|
|
|
values = [[date], ["10:00", "15:00", "20:00"]]
|
|
|
- Feishu.insert_columns("logs", "xiaoniangao", "ba0da4", "COLUMNS", 9, 12)
|
|
|
- Feishu.update_values("logs", "xiaoniangao", "ba0da4", "J1:L2", values)
|
|
|
- Feishu.merge_cells("logs", "xiaoniangao", "ba0da4", "J1:L1")
|
|
|
+ time.sleep(1)
|
|
|
+ Feishu.insert_columns("logs", "xiaoniangao", "ba0da4", "COLUMNS", 11, 14)
|
|
|
+ time.sleep(1)
|
|
|
+ Feishu.update_values("logs", "xiaoniangao", "ba0da4", "L1:N2", values)
|
|
|
+ time.sleep(1)
|
|
|
+ Feishu.merge_cells("logs", "xiaoniangao", "ba0da4", "L1:N1")
|
|
|
Common.logger().info("插入今天日期成功")
|
|
|
else:
|
|
|
Common.logger().info("今日上升榜日期已存在")
|
|
@@ -359,12 +386,12 @@ class HourList:
|
|
|
|
|
|
# 抓取时的播放量
|
|
|
v_play_cnt = Feishu.get_range_value(
|
|
|
- "logs", "xiaoniangao", "ba0da4", "I" + str(i) + ":" + "I" + str(i))[0]
|
|
|
+ "logs", "xiaoniangao", "ba0da4", "K" + str(i) + ":" + "K" + str(i))[0]
|
|
|
Common.logger().info("视频详情,video_play_cnt:{},{}", v_play_cnt, type(v_play_cnt))
|
|
|
|
|
|
# 抓取时间
|
|
|
v_upload_time = Feishu.get_range_value(
|
|
|
- "logs", "xiaoniangao", "ba0da4", "H" + str(i) + ":" + "H" + str(i))[0]
|
|
|
+ "logs", "xiaoniangao", "ba0da4", "J" + str(i) + ":" + "J" + str(i))[0]
|
|
|
Common.logger().info("视频详情,video_send_time:{},{}", v_upload_time, type(v_upload_time))
|
|
|
|
|
|
# 抓取时间:日期
|
|
@@ -441,7 +468,7 @@ class HourList:
|
|
|
values = int(ten_hour_play_cnt) - int(v_play_cnt)
|
|
|
time.sleep(1)
|
|
|
Feishu.update_values(
|
|
|
- "logs", "xiaoniangao", "ba0da4", "J" + str(i) + ":" + "J" + str(i), [[values]])
|
|
|
+ "logs", "xiaoniangao", "ba0da4", "L" + str(i) + ":" + "L" + str(i), [[values]])
|
|
|
Common.logger().info("10:00数据更新成功:{}", values)
|
|
|
|
|
|
elif upload_data == today and update_hour.hour == 15 and int(upload_hour) <= 10:
|
|
@@ -453,17 +480,17 @@ class HourList:
|
|
|
|
|
|
# 当天 10:00 上升的数据
|
|
|
if Feishu.get_range_value(
|
|
|
- "logs", "xiaoniangao", "ba0da4", "J"+str(i) + ":" + "J"+str(i))[0] is None:
|
|
|
+ "logs", "xiaoniangao", "ba0da4", "L"+str(i) + ":" + "L"+str(i))[0] is None:
|
|
|
ten_up_cnt = 0
|
|
|
else:
|
|
|
ten_up_cnt = Feishu.get_range_value(
|
|
|
- "logs", "xiaoniangao", "ba0da4", "J"+str(i) + ":" + "J"+str(i))[0]
|
|
|
+ "logs", "xiaoniangao", "ba0da4", "L"+str(i) + ":" + "L"+str(i))[0]
|
|
|
|
|
|
# 15:00 的上升榜写入数据
|
|
|
values = int(fifteen_hour_play_cnt) - (int(v_play_cnt) + int(ten_up_cnt))
|
|
|
time.sleep(1)
|
|
|
Feishu.update_values(
|
|
|
- "logs", "xiaoniangao", "ba0da4", "K" + str(i) + ":" + "K" + str(i), [[values]])
|
|
|
+ "logs", "xiaoniangao", "ba0da4", "M" + str(i) + ":" + "M" + str(i), [[values]])
|
|
|
Common.logger().info("15:00数据更新成功:{}", values)
|
|
|
|
|
|
elif upload_data == today and update_hour.hour == 15 and 10 < int(upload_hour) <= 15:
|
|
@@ -477,7 +504,7 @@ class HourList:
|
|
|
values = int(fifteen_hour_play_cnt) - int(v_play_cnt)
|
|
|
time.sleep(1)
|
|
|
Feishu.update_values(
|
|
|
- "logs", "xiaoniangao", "ba0da4", "K" + str(i) + ":" + "K" + str(i), [[values]])
|
|
|
+ "logs", "xiaoniangao", "ba0da4", "M" + str(i) + ":" + "M" + str(i), [[values]])
|
|
|
Common.logger().info("15:00数据更新成功:{}", values)
|
|
|
|
|
|
elif upload_data == today and update_hour.hour == 20 and int(upload_hour) <= 10:
|
|
@@ -489,26 +516,26 @@ class HourList:
|
|
|
|
|
|
# 当天 10:00 上升的数据
|
|
|
if Feishu.get_range_value(
|
|
|
- "logs", "xiaoniangao", "ba0da4", "J" + str(i) + ":" + "J" + str(i))[0] is None:
|
|
|
+ "logs", "xiaoniangao", "ba0da4", "L" + str(i) + ":" + "L" + str(i))[0] is None:
|
|
|
ten_up_cnt = 0
|
|
|
else:
|
|
|
ten_up_cnt = Feishu.get_range_value(
|
|
|
- "logs", "xiaoniangao", "ba0da4", "J" + str(i) + ":" + "J" + str(i))[0]
|
|
|
+ "logs", "xiaoniangao", "ba0da4", "L" + str(i) + ":" + "L" + str(i))[0]
|
|
|
|
|
|
# 当天 15:00 上升的数据
|
|
|
if Feishu.get_range_value(
|
|
|
- "logs", "xiaoniangao", "ba0da4", "K" + str(i) + ":" + "K" + str(i))[0] is None:
|
|
|
+ "logs", "xiaoniangao", "ba0da4", "M" + str(i) + ":" + "M" + str(i))[0] is None:
|
|
|
fifteen_up_cnt = 0
|
|
|
else:
|
|
|
fifteen_up_cnt = Feishu.get_range_value(
|
|
|
- "logs", "xiaoniangao", "ba0da4", "K" + str(i) + ":" + "K" + str(i))[0]
|
|
|
+ "logs", "xiaoniangao", "ba0da4", "M" + str(i) + ":" + "M" + str(i))[0]
|
|
|
|
|
|
# 20:00 的上升榜写入数据
|
|
|
values = int(twenty_hour_play_cnt) - (
|
|
|
int(v_play_cnt) + int(ten_up_cnt) + int(fifteen_up_cnt))
|
|
|
time.sleep(1)
|
|
|
Feishu.update_values(
|
|
|
- "logs", "xiaoniangao", "ba0da4", "L" + str(i) + ":" + "L" + str(i), [[values]])
|
|
|
+ "logs", "xiaoniangao", "ba0da4", "N" + str(i) + ":" + "N" + str(i), [[values]])
|
|
|
Common.logger().info("20:00数据更新成功:{}", values)
|
|
|
|
|
|
elif upload_data == today and update_hour.hour == 20 and 10 < int(upload_hour) <= 15:
|
|
@@ -520,17 +547,17 @@ class HourList:
|
|
|
|
|
|
# 当天 15:00 上升的数据
|
|
|
if Feishu.get_range_value(
|
|
|
- "logs", "xiaoniangao", "ba0da4", "K" + str(i) + ":" + "K" + str(i))[0] is None:
|
|
|
+ "logs", "xiaoniangao", "ba0da4", "M" + str(i) + ":" + "M" + str(i))[0] is None:
|
|
|
fifteen_up_cnt = 0
|
|
|
else:
|
|
|
fifteen_up_cnt = Feishu.get_range_value(
|
|
|
- "logs", "xiaoniangao", "ba0da4", "K" + str(i) + ":" + "K" + str(i))[0]
|
|
|
+ "logs", "xiaoniangao", "ba0da4", "M" + str(i) + ":" + "M" + str(i))[0]
|
|
|
|
|
|
# 20:00 的上升榜写入数据
|
|
|
values = int(twenty_hour_play_cnt) - (int(v_play_cnt) + int(fifteen_up_cnt))
|
|
|
time.sleep(1)
|
|
|
Feishu.update_values(
|
|
|
- "logs", "xiaoniangao", "ba0da4", "L" + str(i) + ":" + "L" + str(i), [[values]])
|
|
|
+ "logs", "xiaoniangao", "ba0da4", "N" + str(i) + ":" + "N" + str(i), [[values]])
|
|
|
Common.logger().info("20:00数据更新成功:{}", values)
|
|
|
|
|
|
elif upload_data == today and update_hour.hour == 20 and 15 < int(upload_hour) <= 20:
|
|
@@ -544,7 +571,7 @@ class HourList:
|
|
|
values = int(twenty_hour_play_cnt) - int(v_play_cnt)
|
|
|
time.sleep(1)
|
|
|
Feishu.update_values(
|
|
|
- "logs", "xiaoniangao", "ba0da4", "L" + str(i) + ":" + "L" + str(i), [[values]])
|
|
|
+ "logs", "xiaoniangao", "ba0da4", "N" + str(i) + ":" + "N" + str(i), [[values]])
|
|
|
Common.logger().info("20:00数据更新成功:{}", values)
|
|
|
|
|
|
elif (upload_data == yesterday or upload_data == before_yesterday)\
|
|
@@ -559,7 +586,7 @@ class HourList:
|
|
|
values = int(ten_hour_play_cnt) - int(v_play_cnt)
|
|
|
time.sleep(1)
|
|
|
Feishu.update_values(
|
|
|
- "logs", "xiaoniangao", "ba0da4", "J" + str(i) + ":" + "J" + str(i), [[values]])
|
|
|
+ "logs", "xiaoniangao", "ba0da4", "L" + str(i) + ":" + "L" + str(i), [[values]])
|
|
|
Common.logger().info("10:00数据更新成功:{}", values)
|
|
|
|
|
|
elif (upload_data == yesterday or upload_data == before_yesterday)\
|
|
@@ -572,17 +599,17 @@ class HourList:
|
|
|
|
|
|
# 当天 10:00 上升的数据
|
|
|
if Feishu.get_range_value(
|
|
|
- "logs", "xiaoniangao", "ba0da4", "J" + str(i) + ":" + "J" + str(i))[0] is None:
|
|
|
+ "logs", "xiaoniangao", "ba0da4", "L" + str(i) + ":" + "L" + str(i))[0] is None:
|
|
|
ten_up_cnt = 0
|
|
|
else:
|
|
|
ten_up_cnt = Feishu.get_range_value(
|
|
|
- "logs", "xiaoniangao", "ba0da4", "J" + str(i) + ":" + "J" + str(i))[0]
|
|
|
+ "logs", "xiaoniangao", "ba0da4", "L" + str(i) + ":" + "L" + str(i))[0]
|
|
|
|
|
|
# 15:00 的上升榜写入数据
|
|
|
values = int(fifteen_hour_play_cnt) - (int(v_play_cnt) + int(ten_up_cnt))
|
|
|
time.sleep(1)
|
|
|
Feishu.update_values(
|
|
|
- "logs", "xiaoniangao", "ba0da4", "K" + str(i) + ":" + "K" + str(i), [[values]])
|
|
|
+ "logs", "xiaoniangao", "ba0da4", "M" + str(i) + ":" + "M" + str(i), [[values]])
|
|
|
Common.logger().info("15:00数据更新成功:{}", values)
|
|
|
|
|
|
elif (upload_data == yesterday or upload_data == before_yesterday)\
|
|
@@ -595,26 +622,26 @@ class HourList:
|
|
|
|
|
|
# 当天 10:00 上升的数据
|
|
|
if Feishu.get_range_value(
|
|
|
- "logs", "xiaoniangao", "ba0da4", "J" + str(i) + ":" + "J" + str(i))[0] is None:
|
|
|
+ "logs", "xiaoniangao", "ba0da4", "L" + str(i) + ":" + "L" + str(i))[0] is None:
|
|
|
ten_up_cnt = 0
|
|
|
else:
|
|
|
ten_up_cnt = Feishu.get_range_value(
|
|
|
- "logs", "xiaoniangao", "ba0da4", "J" + str(i) + ":" + "J" + str(i))[0]
|
|
|
+ "logs", "xiaoniangao", "ba0da4", "L" + str(i) + ":" + "L" + str(i))[0]
|
|
|
|
|
|
# 当天 15:00 上升的数据
|
|
|
if Feishu.get_range_value(
|
|
|
- "logs", "xiaoniangao", "ba0da4", "K" + str(i) + ":" + "K" + str(i))[0] is None:
|
|
|
+ "logs", "xiaoniangao", "ba0da4", "M" + str(i) + ":" + "M" + str(i))[0] is None:
|
|
|
fifteen_up_cnt = 0
|
|
|
else:
|
|
|
fifteen_up_cnt = Feishu.get_range_value(
|
|
|
- "logs", "xiaoniangao", "ba0da4", "K" + str(i) + ":" + "K" + str(i))[0]
|
|
|
+ "logs", "xiaoniangao", "ba0da4", "M" + str(i) + ":" + "M" + str(i))[0]
|
|
|
|
|
|
# 20:00 的上升榜写入数据
|
|
|
values = int(twenty_hour_play_cnt) - (
|
|
|
int(v_play_cnt) + int(ten_up_cnt) + int(fifteen_up_cnt))
|
|
|
time.sleep(1)
|
|
|
Feishu.update_values(
|
|
|
- "logs", "xiaoniangao", "ba0da4", "L" + str(i) + ":" + "L" + str(i), [[values]])
|
|
|
+ "logs", "xiaoniangao", "ba0da4", "N" + str(i) + ":" + "N" + str(i), [[values]])
|
|
|
Common.logger().info("20:00数据更新成功:{}", values)
|
|
|
|
|
|
except Exception as e:
|