|
@@ -527,7 +527,53 @@ class FilterVideos(object):
|
|
|
else:
|
|
|
return normal_video_list, flow_video_list
|
|
|
|
|
|
+ def filter_videos_new(self, pool_type='rov', region_code=None, shield_config=None):
|
|
|
+ """视频过滤"""
|
|
|
+ # 预曝光过滤
|
|
|
+ st_pre = time.time()
|
|
|
+ filtered_pre_result = self.filter_video_previewed(self.video_ids)
|
|
|
+ if not filtered_pre_result:
|
|
|
+ return None
|
|
|
|
|
|
+ # 视频已曝光过滤/白名单过滤
|
|
|
+ st_viewed = time.time()
|
|
|
+ t = [
|
|
|
+ gevent.spawn(self.filter_video_viewed_new, filtered_pre_result),
|
|
|
+ gevent.spawn(self.filter_movie_religion_video, filtered_pre_result)]
|
|
|
+ gevent.joinall(t)
|
|
|
+ filtered_result_list = [i.get() for i in t]
|
|
|
+ filtered_viewed_result = list(set(filtered_result_list[0]) & set(filtered_result_list[1]))
|
|
|
+ print(f"view&m_r res: {filtered_viewed_result}\nexecute_time: {(time.time() - st_viewed) * 1000}")
|
|
|
+ if not filtered_viewed_result:
|
|
|
+ return None
|
|
|
+ filtered_viewed_videos = [int(video_id) for video_id in filtered_viewed_result]
|
|
|
+ if pool_type == 'flow':
|
|
|
+ # 流量池视频需过滤屏蔽视频
|
|
|
+ if region_code is None or shield_config is None:
|
|
|
+ return filtered_viewed_videos
|
|
|
+ else:
|
|
|
+ shield_key_name_list = shield_config.get(region_code, None)
|
|
|
+ if shield_key_name_list is not None:
|
|
|
+ filtered_shield_video_ids = self.filter_shield_video(
|
|
|
+ video_ids=filtered_viewed_videos, shield_key_name_list=shield_key_name_list
|
|
|
+ )
|
|
|
+ log_.info({
|
|
|
+ 'logTimestamp': int(time.time() * 1000),
|
|
|
+ 'pool_type': pool_type,
|
|
|
+ 'request_id': self.request_id,
|
|
|
+ 'app_type': self.app_type,
|
|
|
+ 'mid': self.mid,
|
|
|
+ 'uid': self.uid,
|
|
|
+ 'operation': 'shield_filter',
|
|
|
+ 'request_videos': filtered_viewed_videos,
|
|
|
+ 'shield_filter_result': filtered_shield_video_ids,
|
|
|
+ 'executeTime': (time.time() - st_viewed) * 1000
|
|
|
+ })
|
|
|
+ return filtered_shield_video_ids
|
|
|
+ else:
|
|
|
+ return filtered_viewed_videos
|
|
|
+ else:
|
|
|
+ return filtered_viewed_videos
|
|
|
|
|
|
if __name__ == '__main__':
|
|
|
# filter_ = FilterVideos(app_type=1, mid='22', uid='www', video_ids=[1, 2, 3, 55])
|