|
@@ -227,16 +227,32 @@ def bottom_strategy_last(size, app_type, ab_code, params):
|
|
return bottom_data
|
|
return bottom_data
|
|
|
|
|
|
|
|
|
|
-def bottom_strategy2(size, app_type, mid, ab_code, params):
|
|
|
|
|
|
+def bottom_strategy2(size, app_type, mid, uid, ab_code, client_info, params):
|
|
"""
|
|
"""
|
|
兜底策略: 从兜底视频中随机获取视频,进行过滤后的视频
|
|
兜底策略: 从兜底视频中随机获取视频,进行过滤后的视频
|
|
:param size: 需要获取的视频数
|
|
:param size: 需要获取的视频数
|
|
:param app_type: 产品标识 type-int
|
|
:param app_type: 产品标识 type-int
|
|
:param mid: mid
|
|
:param mid: mid
|
|
|
|
+ :param uid: uid
|
|
:param ab_code: abCode
|
|
:param ab_code: abCode
|
|
|
|
+ :param client_info: 地域信息
|
|
:param params:
|
|
:param params:
|
|
:return:
|
|
:return:
|
|
"""
|
|
"""
|
|
|
|
+ # 获取存在城市分组数据的城市编码列表
|
|
|
|
+ city_code_list = [code for _, code in config_.CITY_CODE.items()]
|
|
|
|
+ # 获取provinceCode
|
|
|
|
+ province_code = client_info.get('provinceCode', '-1')
|
|
|
|
+ # 获取cityCode
|
|
|
|
+ city_code = client_info.get('cityCode', '-1')
|
|
|
|
+ if city_code in city_code_list:
|
|
|
|
+ # 分城市数据存在时,获取城市分组数据
|
|
|
|
+ region_code = city_code
|
|
|
|
+ else:
|
|
|
|
+ region_code = province_code
|
|
|
|
+ if region_code == '':
|
|
|
|
+ region_code = '-1'
|
|
|
|
+
|
|
redis_helper = RedisHelper(params=params)
|
|
redis_helper = RedisHelper(params=params)
|
|
bottom_data = redis_helper.get_data_from_set(key_name=config_.BOTTOM2_KEY_NAME)
|
|
bottom_data = redis_helper.get_data_from_set(key_name=config_.BOTTOM2_KEY_NAME)
|
|
bottom_result = []
|
|
bottom_result = []
|
|
@@ -245,9 +261,10 @@ def bottom_strategy2(size, app_type, mid, ab_code, params):
|
|
random_data = numpy.random.choice(bottom_data, size * 5, False)
|
|
random_data = numpy.random.choice(bottom_data, size * 5, False)
|
|
except Exception as e:
|
|
except Exception as e:
|
|
random_data = bottom_data
|
|
random_data = bottom_data
|
|
- # 视频过滤
|
|
|
|
- filter_videos = FilterVideos(request_id=params.request_id, app_type=app_type, video_ids=random_data, mid=mid)
|
|
|
|
- filtered_data = filter_videos.filter_videos()
|
|
|
|
|
|
+ video_ids = [int(item) for item in random_data]
|
|
|
|
+ # 过滤
|
|
|
|
+ filter_ = FilterVideos(request_id=params.request_id, app_type=app_type, mid=mid, uid=uid, video_ids=video_ids)
|
|
|
|
+ filtered_data = filter_.filter_videos(pool_type='flow', region_code=region_code)
|
|
bottom_result = [{'videoId': int(video_id), 'pushFrom': config_.PUSH_FROM['bottom2'], 'abCode': ab_code}
|
|
bottom_result = [{'videoId': int(video_id), 'pushFrom': config_.PUSH_FROM['bottom2'], 'abCode': ab_code}
|
|
for video_id in filtered_data[:size]]
|
|
for video_id in filtered_data[:size]]
|
|
return bottom_result
|
|
return bottom_result
|