Browse Source

add get_video_info_json

liqian 3 năm trước cách đây
mục cha
commit
b002813f23
1 tập tin đã thay đổi với 46 bổ sung2 xóa
  1. 46 2
      bottom_videos.py

+ 46 - 2
bottom_videos.py

@@ -1,8 +1,9 @@
 import datetime
 import traceback
 import os
+import json
 
-from utils import execute_sql_from_odps
+from utils import execute_sql_from_odps, request_post
 from db_helper import RedisHelper
 from config import set_config
 from log import Log
@@ -29,10 +30,12 @@ def update_bottom_videos():
         records = execute_sql_from_odps(project='videoods', sql=sql)
 
         # 视频按照总播放量写入redis
+        video_id_list = []
         videos = {}
         with records.open_reader() as reader:
             for record in reader:
-                video_id = record['id']
+                video_id = int(record['id'])
+                video_id_list.append(video_id)
                 videos[video_id] = record['play_count_total']
         # print(videos)
 
@@ -44,10 +47,51 @@ def update_bottom_videos():
         redis_helper.persist_key(key_name=config_.BOTTOM_KEY_NAME)
 
         log_.info('{} update bottom videos success! num = {}'.format(now_date, len(videos)))
+
+        # 获取今日兜底视频的json,并存入redis
+        video_json_list = []
+        for i in range(0, len(video_id_list) // 10):
+            video_json = get_video_info_json(video_ids=video_id_list[i * 10:(i + 1) * 10])
+            if video_json is not None:
+                print(len(video_json))
+                video_json_list.extend(video_json)
+        # 写入redis,先删除key,再重新写入
+        redis_helper.del_keys(config_.BOTTOM_JSON_KEY_NAME)
+        redis_helper.add_data_with_set(key_name=config_.BOTTOM_JSON_KEY_NAME, values=video_json_list)
+        # 移除过期时间,将其转换为永久状态
+        redis_helper.persist_key(key_name=config_.BOTTOM_JSON_KEY_NAME)
+
+        log_.info('{} update bottom videos info json success!, video nums = {}'.format(now_date, len(video_json_list)))
+
     except Exception as e:
         log_.error(traceback.format_exc())
 
 
+def get_video_info_json(video_ids):
+    """
+    获取视频对应json
+    :param video_ids: type-list [int, int, ...]
+    :return: json_data_list
+    """
+    request_data = {
+        "appType": 4,
+        "platform": "android",
+        "versionCode": 295,
+        "pageSize": 10,
+        "machineCode": "weixin_openid_otjoB5WWWmkRjpMzkV5ltZ3osg3A",
+        "uid": 6281917,
+        "videoIds": video_ids
+    }
+    res = request_post(request_url=config_.BOTTOM_JSON_URL, request_data=request_data)
+    if res is None:
+        return None
+    if res['code'] != 0:
+        log_.info('获取视频json失败!')
+        return None
+    json_data_list = [json.dumps(item) for item in res['data']]
+    return json_data_list
+
+
 if __name__ == '__main__':
     update_bottom_videos()
     # 将日志上传到oss