Browse Source

add filter_position_videos

liqian 3 years ago
parent
commit
d5b8d32b32
2 changed files with 32 additions and 1 deletions
  1. 4 0
      config.py
  2. 28 1
      videos_filter.py

+ 4 - 0
config.py

@@ -80,6 +80,10 @@ class BaseConfig(object):
     # 有设置运营强插相关视频的头部视频id redis存储key
     RELEVANT_TOP_VIDEOS_KEY_NAME = 'com.weiqu.video.relevant.top.video_ids'
 
+    # 按位置排序redis存储key
+    RECALL_POSITION1_KEY_NAME = 'com.weiqu.video.recall.hot.apptype.h.item.score.position.1'
+    RECALL_POSITION2_KEY_NAME = 'com.weiqu.video.recall.hot.apptype.h.item.score.position.2'
+
 
 class DevelopmentConfig(BaseConfig):
     """开发环境配置"""

+ 28 - 1
videos_filter.py

@@ -12,9 +12,34 @@ config_, env = set_config()
 log_ = Log()
 
 
+def filter_position_videos():
+    """按位置排序视频过滤"""
+    log_.info("position videos filter start...")
+    position_key_list = [config_.RECALL_POSITION1_KEY_NAME, config_.RECALL_POSITION2_KEY_NAME]
+    redis_helper = RedisHelper()
+    for key_name in position_key_list:
+        position = key_name.split('.')[-1]
+        log_.info("position = {}".format(position))
+        # 获取数据
+        position_videos = redis_helper.get_data_from_redis(key_name=key_name)
+        if position_videos is None:
+            log_.info('position {} videos is None!'.format(position))
+            continue
+        else:
+            # 过滤
+            position_video_ids = [int(video_id) for video_id in json.loads(position_videos)]
+            filter_video_ids = filter_video_status(video_ids=position_video_ids)
+            # 重新写入redis
+            redis_helper.set_data_to_redis(key_name=key_name,
+                                           value=json.dumps(filter_video_ids),
+                                           expire_time=30 * 3600)
+            log_.info('position {} videos filter end!'.format(position))
+    log_.info("position videos filter end!")
+
+
 def filter_relevant_videos():
     """运营强插相关推荐视频过滤"""
-    log_.info("relevant videos with op filter start...")
+    log_.info("relevant videos with op filter filter start...")
     # 读取需要过滤的头部视频id
     redis_helper = RedisHelper()
     head_videos = redis_helper.get_data_from_set(key_name=config_.RELEVANT_TOP_VIDEOS_KEY_NAME)
@@ -270,6 +295,8 @@ def main():
         filter_rov_updated()
         # 运营强插相关推荐视频过滤
         filter_relevant_videos()
+        # 按位置排序视频过滤
+        filter_position_videos()
     except Exception as e:
         log_.error(traceback.format_exc())
         send_msg_to_feishu('{} - 过滤失败 \n {}'.format(config_.ENV_TEXT, traceback.format_exc()))