Kaynağa Gözat

udapte utils

linfan 1 yıl önce
ebeveyn
işleme
ec3ff30d54
1 değiştirilmiş dosya ile 46 ekleme ve 0 silme
  1. 46 0
      utils.py

+ 46 - 0
utils.py

@@ -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])