bottom_videos_update.py 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. # -*- coding: utf-8 -*-
  2. # @ModuleName: bottom_videos_update
  3. # @Author: Liqian
  4. # @Time: 2022/8/31 19:46
  5. # @Software: PyCharm
  6. import traceback
  7. import datetime
  8. from pool_predict import get_videos_from_flow_pool
  9. from my_utils import filter_video_status
  10. from db_helper import RedisHelper
  11. from my_config import set_config
  12. from log import Log
  13. config_, _ = set_config()
  14. log_ = Log()
  15. def get_bottom_videos():
  16. """获取流量池视频作为兜底视频"""
  17. now_date = datetime.datetime.today()
  18. log_.info(f"now_date = {now_date}")
  19. app_type_list = [
  20. config_.APP_TYPE['VLOG'],
  21. config_.APP_TYPE['LOVE_LIVE'],
  22. config_.APP_TYPE['LONG_VIDEO'],
  23. config_.APP_TYPE['SHORT_VIDEO']
  24. ]
  25. video_ids = []
  26. for app_type in app_type_list:
  27. # 从流量池获取数据
  28. videos = get_videos_from_flow_pool(app_type=app_type)
  29. if len(videos) <= 0:
  30. continue
  31. for video in videos:
  32. video_id = int(video['videoId'])
  33. if video_id not in video_ids:
  34. video_ids.append(video_id)
  35. log_.info(f"video_ids count = {len(video_ids)}")
  36. filtered_videos = filter_video_status(video_ids)
  37. log_.info(f"filtered_videos count = {len(filtered_videos)}")
  38. if len(filtered_videos) > 0:
  39. # redis数据更新
  40. redis_helper = RedisHelper()
  41. redis_helper.del_keys(key_name=config_.BOTTOM2_KEY_NAME)
  42. redis_helper.add_data_with_set(key_name=config_.BOTTOM2_KEY_NAME, values=tuple(filtered_videos))
  43. # 移除bottom key的过期时间,将其转换为永久状态
  44. redis_helper.persist_key(key_name=config_.BOTTOM_KEY_NAME)
  45. log_.info('{} update bottom videos success!, count = {}'.format(now_date, len(filtered_videos)))
  46. if __name__ == '__main__':
  47. get_bottom_videos()