12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- import time
- from config import set_config
- from utils import request_post
- from log import Log
- config_ = set_config()
- log_ = Log()
- def get_videos_from_pool(app_type, size=1000):
- """
- 从流量池获取视频,循环获取,直到返回数据为None结束
- :param app_type: 产品标识 type-int
- :param size: 每次获取视频数量,type-int,默认1000
- :return: videos
- """
- # 获取批次标识,利用首次获取数据时间戳为标记
- batch_flag = time.time()
- request_data = {'appType': app_type, 'batchFlag': batch_flag, 'size': size}
- videos = []
- while True:
- result = request_post(request_url=config_.GET_VIDEOS_FROM_POOL_URL, request_data=request_data)
- if result is None:
- break
- if result['code'] != 0:
- log_.info('batch_flag: {}, 获取流量池视频失败'.format(batch_flag))
- break
- videos.append(result['data'])
- return videos
- def get_videos_remain_view_count(app_type, videos_info):
- """
- 获取视频在流量池中的剩余可分发数
- :param app_type: 产品标识 type-int
- :param videos_info: 视频信息 (视频id, 流量池标记) type-list,[(video_id, flow_pool), ...]
- :return: data type-list,[(video_id, flow_pool, view_count), ...]
- """
- if not videos_info:
- return []
- videos = [{'videoId': info[0], 'flowPool': info[1]} for info in videos_info]
- request_data = {'appType': app_type, 'videos': videos}
- result = request_post(request_url=config_.GET_REMAIN_VIEW_COUNT_URL, request_data=request_data)
- if result is None:
- return []
- if result['code'] != 0:
- log_.info('获取视频在流量池中的剩余可分发数失败')
- return []
- data = [(item['videoId'], item['flowPool'], item['viewCount']) for item in result['data']]
- return data
- if __name__ == '__main__':
- # res = get_videos_from_pool(app_type=0)
- res = get_videos_remain_view_count(app_type=0, videos_info=[('12345', '#2#1#111')])
- print(res)
|