liqian 2 роки тому
батько
коміт
49e8bdb56c
2 змінених файлів з 34 додано та 3 видалено
  1. 7 2
      config.py
  2. 27 1
      shield_videos.py

+ 7 - 2
config.py

@@ -439,11 +439,16 @@ class BaseConfig(object):
     TABLE_BENSHAN_ZHUFU = 'benshanzhufu_videolist'
     # 本山祝福视频redis存储key
     BENSHAN_ZHUFU_KEY_NAME = 'benshanzf:videos'
+    # 小年糕视频列表,在北京+无地域划分表中屏蔽
+    PROJECT_XNG = 'loghubods'
+    TABLE_XNG = 'xng_videos'
+    # 小年糕视频redis存储key
+    XNG_KEY_NAME = 'xng:videos'
     # 屏蔽视频配置 key:region_code, value:videos key list
     SHIELD_CONFIG = {
-        '110000': [BENSHAN_ZHUFU_KEY_NAME, ],
+        '110000': [BENSHAN_ZHUFU_KEY_NAME, XNG_KEY_NAME, ],
         '500000': [BENSHAN_ZHUFU_KEY_NAME, ],
-        '-1': [BENSHAN_ZHUFU_KEY_NAME, ],
+        '-1': [BENSHAN_ZHUFU_KEY_NAME, XNG_KEY_NAME, ],
     }
 
 

+ 27 - 1
shield_videos.py

@@ -1,3 +1,4 @@
+import datetime
 import traceback
 from config import set_config
 from log import Log
@@ -31,8 +32,33 @@ def get_benshanzhufu_videos():
         log_.error(traceback.format_exc())
 
 
+def get_xng_videos():
+    """获取小年糕视频并存入redis"""
+    try:
+        # 获取本山祝福视频
+        sql = f"SELECT videoid FROM {config_.PROJECT_XNG}.{config_.TABLE_XNG};"
+        records = execute_sql_from_odps(project=config_.PROJECT_XNG, sql=sql)
+        video_id_list = []
+        with records.open_reader() as reader:
+            for record in reader:
+                video_id = int(record['videoid'])
+                video_id_list.append(video_id)
+        log_.info(f"xng videos count = {len(video_id_list)}")
+        # 存入redis
+        if len(video_id_list) > 0:
+            redis_helper.del_keys(key_name=config_.XNG_KEY_NAME)
+            redis_helper.add_data_with_set(key_name=config_.XNG_KEY_NAME, values=video_id_list,
+                                           expire_time=25 * 3600)
+
+    except Exception as e:
+        log_.error(traceback.format_exc())
+
+
 def main():
-    get_benshanzhufu_videos()
+    now_h = datetime.datetime.now().hour
+    if now_h == 4:
+        get_benshanzhufu_videos()
+    get_xng_videos()
 
 
 if __name__ == '__main__':