|
@@ -4,7 +4,7 @@ import traceback
|
|
|
import ast
|
|
|
from datetime import date, timedelta, datetime
|
|
|
|
|
|
-from utils import filter_video_status, send_msg_to_feishu
|
|
|
+from utils import filter_video_status, send_msg_to_feishu, filter_video_status_app
|
|
|
from db_helper import RedisHelper
|
|
|
from config import set_config
|
|
|
from log import Log
|
|
@@ -126,7 +126,10 @@ def filter_rov_pool(app_type=None):
|
|
|
return
|
|
|
# 过滤
|
|
|
video_ids = [int(video_id) for video_id in data]
|
|
|
- filtered_result = filter_video_status(video_ids=video_ids)
|
|
|
+ if app_type == config_.APP_TYPE['APP']:
|
|
|
+ filtered_result = filter_video_status_app(video_ids=video_ids)
|
|
|
+ else:
|
|
|
+ filtered_result = filter_video_status(video_ids=video_ids)
|
|
|
# 求差集,获取需要过滤掉的视频,并从redis中移除
|
|
|
filter_videos = set(video_ids) - set(filtered_result)
|
|
|
log_.info("video_ids size = {}, filtered size = {}, filter sizer = {}".format(len(video_ids),
|
|
@@ -169,7 +172,10 @@ def filter_flow_pool():
|
|
|
log_.info("data size = {}, video_ids size = {}, data = {}".format(len(data), len(video_ids), data))
|
|
|
log_.info("app_type {} videos filter end!".format(app_type))
|
|
|
continue
|
|
|
- filtered_result = filter_video_status(video_ids=video_ids)
|
|
|
+ if app_type == config_.APP_TYPE['APP']:
|
|
|
+ filtered_result = filter_video_status_app(video_ids=video_ids)
|
|
|
+ else:
|
|
|
+ filtered_result = filter_video_status(video_ids=video_ids)
|
|
|
# 求差集,获取需要过滤掉的视频,并从redis中移除
|
|
|
filter_videos = set(video_ids) - set(filtered_result)
|
|
|
log_.info("data size = {}, video_ids size = {}, filtered size = {}, filter sizer = {}".format(
|
|
@@ -236,6 +242,31 @@ def filter_rov_updated():
|
|
|
log_.info("update rov videos filter end!")
|
|
|
|
|
|
|
|
|
+def filter_rov_updated_app():
|
|
|
+ """修改过ROV的视频过滤-app推荐状态过滤"""
|
|
|
+ log_.info("update rov videos app filter start ...")
|
|
|
+ # 获取视频
|
|
|
+ redis_helper = RedisHelper()
|
|
|
+ data = redis_helper.get_data_zset_with_index(key_name=config_.UPDATE_ROV_KEY_NAME_APP, start=0, end=-1)
|
|
|
+ if data is None:
|
|
|
+ log_.info("data is None")
|
|
|
+ log_.info("update rov videos app filter end!")
|
|
|
+ return
|
|
|
+ # 过滤
|
|
|
+ video_ids = [int(video_id) for video_id in data]
|
|
|
+ filtered_result = filter_video_status_app(video_ids=video_ids)
|
|
|
+ # 求差集,获取需要过滤掉的视频,并从redis中移除
|
|
|
+ filter_videos = set(video_ids) - set(filtered_result)
|
|
|
+ log_.info("video_ids size = {}, filtered size = {}, filter sizer = {}".format(len(video_ids),
|
|
|
+ len(filtered_result),
|
|
|
+ len(filter_videos)))
|
|
|
+ if len(filter_videos) == 0:
|
|
|
+ log_.info("update rov videos app filter end!")
|
|
|
+ return
|
|
|
+ redis_helper.remove_value_from_zset(key_name=config_.UPDATE_ROV_KEY_NAME_APP, value=list(filter_videos))
|
|
|
+ log_.info("update rov videos app filter end!")
|
|
|
+
|
|
|
+
|
|
|
def get_pool_redis_key(pool_type, app_type=None):
|
|
|
"""
|
|
|
拼接key
|
|
@@ -261,15 +292,21 @@ def get_pool_redis_key(pool_type, app_type=None):
|
|
|
key_name = '{}{}.{}'.format(config_.RECALL_KEY_NAME_PREFIX_APP_TYPE, app_type, redis_date)
|
|
|
|
|
|
return key_name, redis_date
|
|
|
- # 其他
|
|
|
else:
|
|
|
+ # appType = 13 票圈视频app
|
|
|
+ if app_type == config_.APP_TYPE['APP']:
|
|
|
+ key_name_prefix = config_.RECALL_KEY_NAME_PREFIX_APP
|
|
|
+ # 其他
|
|
|
+ else:
|
|
|
+ key_name_prefix = config_.RECALL_KEY_NAME_PREFIX
|
|
|
+
|
|
|
# 判断热度列表是否更新,未更新则使用前一天的热度列表
|
|
|
- key_name = config_.RECALL_KEY_NAME_PREFIX + time.strftime('%Y%m%d')
|
|
|
+ key_name = key_name_prefix + time.strftime('%Y%m%d')
|
|
|
if redis_helper.key_exists(key_name):
|
|
|
redis_date = date.today().strftime('%Y%m%d')
|
|
|
else:
|
|
|
redis_date = (date.today() - timedelta(days=1)).strftime('%Y%m%d')
|
|
|
- key_name = config_.RECALL_KEY_NAME_PREFIX + redis_date
|
|
|
+ key_name = key_name_prefix + redis_date
|
|
|
|
|
|
return key_name, redis_date
|
|
|
|
|
@@ -288,12 +325,15 @@ def main():
|
|
|
filter_rov_pool()
|
|
|
# appType = 6,ROV召回池视频过滤
|
|
|
filter_rov_pool(app_type=config_.APP_TYPE['SHORT_VIDEO'])
|
|
|
+ # appType = 6,票圈视频APP视频过滤
|
|
|
+ filter_rov_pool(app_type=config_.APP_TYPE['APP'])
|
|
|
# 流量池视频过滤
|
|
|
filter_flow_pool()
|
|
|
# 兜底视频过滤
|
|
|
filter_bottom()
|
|
|
# 修改过ROV的视频过滤
|
|
|
filter_rov_updated()
|
|
|
+ filter_rov_updated_app()
|
|
|
# 运营强插相关推荐视频过滤
|
|
|
filter_relevant_videos()
|
|
|
# 按位置排序视频过滤
|