|
@@ -0,0 +1,55 @@
|
|
|
+# -*- coding: utf-8 -*-
|
|
|
+# @ModuleName: bottom_videos_update
|
|
|
+# @Author: Liqian
|
|
|
+# @Time: 2022/8/31 19:46
|
|
|
+# @Software: PyCharm
|
|
|
+
|
|
|
+import traceback
|
|
|
+import datetime
|
|
|
+
|
|
|
+from pool_predict import get_videos_from_flow_pool
|
|
|
+from utils import filter_video_status
|
|
|
+from db_helper import RedisHelper
|
|
|
+from config import set_config
|
|
|
+from log import Log
|
|
|
+
|
|
|
+config_, _ = set_config()
|
|
|
+log_ = Log()
|
|
|
+
|
|
|
+
|
|
|
+def get_bottom_videos():
|
|
|
+ """获取流量池视频作为兜底视频"""
|
|
|
+ now_date = datetime.datetime.today()
|
|
|
+ log_.info(f"now_date = {now_date}")
|
|
|
+ app_type_list = [
|
|
|
+ config_.APP_TYPE['VLOG'],
|
|
|
+ config_.APP_TYPE['LOVE_LIVE'],
|
|
|
+ config_.APP_TYPE['LONG_VIDEO'],
|
|
|
+ config_.APP_TYPE['SHORT_VIDEO']
|
|
|
+ ]
|
|
|
+
|
|
|
+ video_ids = []
|
|
|
+ for app_type in app_type_list:
|
|
|
+ # 从流量池获取数据
|
|
|
+ videos = get_videos_from_flow_pool(app_type=app_type)
|
|
|
+ if len(videos) <= 0:
|
|
|
+ continue
|
|
|
+ for video in videos:
|
|
|
+ video_id = int(video['videoId'])
|
|
|
+ if video_id not in video_ids:
|
|
|
+ video_ids.append(video_id)
|
|
|
+ log_.info(f"video_ids count = {len(video_ids)}")
|
|
|
+ filtered_videos = filter_video_status(video_ids)
|
|
|
+ log_.info(f"filtered_videos count = {len(filtered_videos)}")
|
|
|
+ if len(filtered_videos) > 0:
|
|
|
+ # redis数据更新
|
|
|
+ redis_helper = RedisHelper()
|
|
|
+ redis_helper.del_keys(key_name=config_.BOTTOM2_KEY_NAME)
|
|
|
+ redis_helper.add_data_with_set(key_name=config_.BOTTOM2_KEY_NAME, values=tuple(filtered_videos))
|
|
|
+ # 移除bottom key的过期时间,将其转换为永久状态
|
|
|
+ redis_helper.persist_key(key_name=config_.BOTTOM_KEY_NAME)
|
|
|
+ log_.info('{} update bottom videos success!, count = {}'.format(now_date, len(filtered_videos)))
|
|
|
+
|
|
|
+
|
|
|
+if __name__ == '__main__':
|
|
|
+ get_bottom_videos()
|