top_video_list.py 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. import traceback
  2. from my_utils import request_post, filter_video_status, filter_video_status_app
  3. from db_helper import RedisHelper
  4. from my_config import set_config
  5. from log import Log
  6. config_, _ = set_config()
  7. log_ = Log()
  8. def get_top_video_list():
  9. """接口获取生效中的置顶视频列表,并存入redis"""
  10. try:
  11. result = request_post(request_url=config_.TOP_VIDEO_LIST_URL, request_data={})
  12. if result is None:
  13. return
  14. if result['code'] != 0:
  15. log_.info('获取置顶视频失败!')
  16. return
  17. data = result['data']
  18. if len(data) == 0:
  19. log_.info('无置顶视频!')
  20. return
  21. # 视频状态过滤
  22. video_ids = [item['videoId'] for item in data]
  23. log_.info('video_ids = {}'.format(video_ids))
  24. filter_videos = filter_video_status(video_ids=video_ids)
  25. log_.info('filter_videos = {}'.format(filter_videos))
  26. value = [item for item in data if item['videoId'] in filter_videos]
  27. log_.info('value = {}'.format(value))
  28. # 写入redis
  29. redis_helper = RedisHelper()
  30. redis_helper.set_data_to_redis(key_name=config_.TOP_VIDEO_LIST_KEY_NAME, value=str(value), expire_time=5 * 60)
  31. log_.info('置顶视频更新成功!')
  32. # app推荐状态过滤
  33. app_filter_videos = filter_video_status_app(video_ids=video_ids)
  34. log_.info('app_filter_videos = {}'.format(app_filter_videos))
  35. app_value = [item for item in data if item['videoId'] in app_filter_videos]
  36. log_.info('app_value = {}'.format(app_value))
  37. # 写入redis
  38. redis_helper = RedisHelper()
  39. redis_helper.set_data_to_redis(key_name=config_.TOP_VIDEO_LIST_KEY_NAME_APP, value=str(app_value),
  40. expire_time=5 * 60)
  41. log_.info('置顶视频app更新成功!')
  42. except Exception as e:
  43. log_.error('置顶视频更新失败!')
  44. log_.error(traceback.format_exc())
  45. if __name__ == '__main__':
  46. get_top_video_list()