import json from flask import Flask, request from log import Log from config import set_config from recommend import video_recommend from category import get_category_videos from video_recall import PoolRecall from db_helper import RedisHelper app = Flask(__name__) log_ = Log() config_ = set_config() @app.route('/healthcheck') def health_check(): return 'ok!' # 首页推荐及tab分类 @app.route('/applet/video/homepage/recommend', methods=['GET', 'POST']) def homepage_recommend(): try: request_data = json.loads(request.get_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 = 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('result: {}'.format(result)) return json.dumps(result) elif category_id in config_.CATEGORY['other']: # 其他类别 videos = get_category_videos() result = {'code': 200, 'message': 'success', 'data': {'videos': videos}} log_.info('result: {}'.format(result)) return json.dumps(result) else: log_.error('categoryId error, categoryId = {}'.format(category_id)) result = {'code': -1, 'message': 'fail'} return json.dumps(result) except Exception as e: log_.error(e) result = {'code': -1, 'message': 'fail'} return json.dumps(result) # 管理后台实时修改rov @app.route('/applet/video/update/rov', methods=['GET', 'POST']) def update_rov(): try: request_data = json.loads(request.get_data()) app_type = request_data.get('appType') video_id = request_data.get('videoId') rov_score = request_data.get('rovScore') pool_recall = PoolRecall(app_type=app_type) rov_pool_key, _ = pool_recall.get_pool_redis_key('rov') redis_helper = RedisHelper() redis_helper.update_score_with_value(key_name=rov_pool_key, value=video_id, score=rov_score) result = {'code': 200, 'message': 'success'} log_.info('result: {}'.format(result)) return json.dumps(result) except Exception as e: log_.error(e) result = {'code': -1, 'message': 'fail'} return json.dumps(result) if __name__ == '__main__': app.run()