import sys sys.path.append("..") import recommend import category import json import ast import aiocache import traceback from log import Log from config import set_config import time log_ = Log() config_ = set_config() class HomepageRecommend: async def on_post(self, req, resp): try: start_time = time.time() request_data = await req.stream.read() request_data = json.loads(request_data) mid = request_data.get('mid') uid = request_data.get('uid') category_id = request_data.get('categoryId') size = request_data.get('size') app_type = request_data.get('appType') algo_type = request_data.get('algoType') log_.info('request data: {}'.format(request_data)) # size默认为10 if not size: size = 10 if category_id in config_.CATEGORY['recommend']: # 推荐 videos = await recommend.video_recommend(mid=mid, uid=uid, size=size, app_type=app_type, algo_type=algo_type) result = {'code': 200, 'message': 'success', 'data': {'videos': videos}} log_.info('category_id: {}, mid: {}, uid: {}, result: {}, execute time = {}ms'.format( category_id, mid, uid, result, (time.time() - start_time)*1000)) resp.text = json.dumps(result) return elif category_id in config_.CATEGORY['other']: # 其他类别 videos = category.get_category_videos() result = {'code': 200, 'message': 'success', 'data': {'videos': videos}} log_.info('category_id: {}, mid: {}, uid: {}, result: {}, execute time = {}ms'.format( category_id, mid, uid, result, (time.time() - start_time) * 1000)) resp.text = json.dumps(result) return else: log_.error('categoryId error, categoryId = {}'.format(category_id)) result = {'code': -1, 'message': 'fail'} resp.text = json.dumps(result) return except: traceback.print_exc() log_.error(e) result = {'code': -1, 'message': traceback.format_exc()} resp.text = json.dumps(result) return