shield_videos.py 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. import traceback
  2. import datetime
  3. from config import set_config
  4. from log import Log
  5. from utils import execute_sql_from_odps
  6. from db_helper import RedisHelper
  7. config_, _ = set_config()
  8. log_ = Log()
  9. redis_helper = RedisHelper()
  10. def get_benshanzhufu_videos():
  11. """获取本山祝福视频并存入redis"""
  12. try:
  13. # 获取本山祝福视频
  14. sql = f"SELECT videoid FROM {config_.PROJECT_BENSHAN_ZHUFU}.{config_.TABLE_BENSHAN_ZHUFU};"
  15. records = execute_sql_from_odps(project=config_.PROJECT_BENSHAN_ZHUFU, sql=sql)
  16. video_id_list = []
  17. with records.open_reader() as reader:
  18. for record in reader:
  19. video_id = int(record['videoid'])
  20. video_id_list.append(video_id)
  21. log_.info(f"count = {len(video_id_list)}")
  22. # 存入redis
  23. if len(video_id_list) > 0:
  24. redis_helper.del_keys(key_name=config_.BENSHAN_ZHUFU_KEY_NAME)
  25. redis_helper.add_data_with_set(key_name=config_.BENSHAN_ZHUFU_KEY_NAME, values=video_id_list,
  26. expire_time=25 * 3600)
  27. except Exception as e:
  28. log_.error(traceback.format_exc())
  29. def get_special_area_limit_videos():
  30. """获取特殊地域屏蔽视频并存入redis"""
  31. try:
  32. # 获取本山祝福视频
  33. sql = f"SELECT videoid FROM {config_.PROJECT_SPECIAL_AREA_LIMIT}.{config_.TABLE_SPECIAL_AREA_LIMIT};"
  34. records = execute_sql_from_odps(project=config_.PROJECT_SPECIAL_AREA_LIMIT, sql=sql)
  35. video_id_list = []
  36. with records.open_reader() as reader:
  37. for record in reader:
  38. video_id = int(record['videoid'])
  39. video_id_list.append(video_id)
  40. log_.info(f"count = {len(video_id_list)}")
  41. # 存入redis
  42. if len(video_id_list) > 0:
  43. redis_helper.del_keys(key_name=config_.SPECIAL_AREA_LIMIT_KEY_NAME)
  44. redis_helper.add_data_with_set(key_name=config_.SPECIAL_AREA_LIMIT_KEY_NAME, values=video_id_list,
  45. expire_time=25 * 3600)
  46. except Exception as e:
  47. log_.error(traceback.format_exc())
  48. def main():
  49. now_h = datetime.datetime.now().hour
  50. if now_h == 4:
  51. get_benshanzhufu_videos()
  52. get_special_area_limit_videos()
  53. if __name__ == '__main__':
  54. main()