shield_videos.py 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. import datetime
  2. import traceback
  3. import datetime
  4. from my_config import set_config
  5. from log import Log
  6. from my_utils import execute_sql_from_odps
  7. from db_helper import RedisHelper
  8. config_, _ = set_config()
  9. log_ = Log()
  10. redis_helper = RedisHelper()
  11. def get_benshanzhufu_videos():
  12. """获取本山祝福视频并存入redis"""
  13. try:
  14. # 获取本山祝福视频
  15. sql = f"SELECT videoid FROM {config_.PROJECT_BENSHAN_ZHUFU}.{config_.TABLE_BENSHAN_ZHUFU};"
  16. records = execute_sql_from_odps(project=config_.PROJECT_BENSHAN_ZHUFU, sql=sql)
  17. video_id_list = []
  18. with records.open_reader() as reader:
  19. for record in reader:
  20. video_id = int(record['videoid'])
  21. video_id_list.append(video_id)
  22. log_.info(f"benshanzhufu videos count = {len(video_id_list)}")
  23. # 存入redis
  24. if len(video_id_list) > 0:
  25. redis_helper.del_keys(key_name=config_.BENSHAN_ZHUFU_KEY_NAME)
  26. redis_helper.add_data_with_set(key_name=config_.BENSHAN_ZHUFU_KEY_NAME, values=video_id_list,
  27. expire_time=25 * 3600)
  28. except Exception as e:
  29. log_.error(traceback.format_exc())
  30. def get_xng_videos():
  31. """获取小年糕视频并存入redis"""
  32. try:
  33. # 获取小年糕视频
  34. sql = f"SELECT videoid FROM {config_.PROJECT_XNG}.{config_.TABLE_XNG};"
  35. records = execute_sql_from_odps(project=config_.PROJECT_XNG, sql=sql)
  36. video_id_list = []
  37. with records.open_reader() as reader:
  38. for record in reader:
  39. video_id = int(record['videoid'])
  40. video_id_list.append(video_id)
  41. log_.info(f"xng videos count = {len(video_id_list)}")
  42. # 存入redis
  43. if len(video_id_list) > 0:
  44. redis_helper.del_keys(key_name=config_.XNG_KEY_NAME)
  45. redis_helper.add_data_with_set(key_name=config_.XNG_KEY_NAME, values=video_id_list,
  46. expire_time=25 * 3600)
  47. except Exception as e:
  48. log_.error(traceback.format_exc())
  49. def get_special_area_limit_videos():
  50. """获取特殊地域屏蔽视频并存入redis"""
  51. try:
  52. # 获取特殊地域屏蔽视频
  53. sql = f"SELECT videoid FROM {config_.PROJECT_SPECIAL_AREA_LIMIT}.{config_.TABLE_SPECIAL_AREA_LIMIT};"
  54. records = execute_sql_from_odps(project=config_.PROJECT_SPECIAL_AREA_LIMIT, sql=sql)
  55. video_id_list = []
  56. with records.open_reader() as reader:
  57. for record in reader:
  58. video_id = int(record['videoid'])
  59. video_id_list.append(video_id)
  60. log_.info(f"special area limit videos count = {len(video_id_list)}")
  61. # 存入redis
  62. if len(video_id_list) > 0:
  63. redis_helper.del_keys(key_name=config_.SPECIAL_AREA_LIMIT_KEY_NAME)
  64. redis_helper.add_data_with_set(key_name=config_.SPECIAL_AREA_LIMIT_KEY_NAME, values=video_id_list,
  65. expire_time=25 * 3600)
  66. except Exception as e:
  67. log_.error(traceback.format_exc())
  68. def get_political_videos():
  69. """获取涉政视频并存入redis"""
  70. try:
  71. # 获取涉政视频
  72. sql = f"SELECT videoid FROM {config_.PROJECT_POLITICAL_VIDEOS}.{config_.TABLE_POLITICAL_VIDEOS};"
  73. records = execute_sql_from_odps(project=config_.PROJECT_POLITICAL_VIDEOS, sql=sql)
  74. video_id_list = []
  75. with records.open_reader() as reader:
  76. for record in reader:
  77. video_id = int(record['videoid'])
  78. video_id_list.append(video_id)
  79. log_.info(f"political videos count = {len(video_id_list)}")
  80. # 存入redis
  81. if len(video_id_list) > 0:
  82. redis_helper.del_keys(key_name=config_.POLITICAL_VIDEOS_KEY_NAME)
  83. redis_helper.add_data_with_set(key_name=config_.POLITICAL_VIDEOS_KEY_NAME, values=video_id_list,
  84. expire_time=25 * 3600)
  85. except Exception as e:
  86. log_.error(traceback.format_exc())
  87. def main():
  88. now_h = datetime.datetime.now().hour
  89. if now_h == 4:
  90. get_benshanzhufu_videos()
  91. get_xng_videos()
  92. get_special_area_limit_videos()
  93. get_political_videos()
  94. if __name__ == '__main__':
  95. main()