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)