""" @author: luojunhui 投流--路由 """ import time import uuid from quart import Blueprint, jsonify, request from .insertVideoRoute import insert from .sourceIdRoute import saveSourceToDB from .recallPQVideos import recallPQVideos from .process_killer import kill_task_by_name from deal import tempServer from deal import generate_response_v2 TL_blueprint = Blueprint("TouLiu", __name__) def Routes(db_client): """ 路由代码 :param db_client: 异步db连接池 :return: """ @TL_blueprint.route("/hello") def helloWorld(): """ :return: Hello World """ return jsonify({"message": "Hello World!"}) @TL_blueprint.route("/generateInfo", methods=['POST']) async def generateInfo(): """ 生成一些需要用到到信息 :return: """ request_id = "generateInfo_{}_{}".format(uuid.uuid4(), int(time.time())) data = await request.get_json() response = await saveSourceToDB( db_client=db_client, params=data, request_id=request_id ) return jsonify(response) @TL_blueprint.route("/insertVideo", methods=['POST']) async def insertVideos(): """ 插入视频信息 :return: """ request_id = "insertVideos_{}_{}".format(uuid.uuid4(), int(time.time())) data = await request.get_json() response = await insert( db_client=db_client, params=data, request_id=request_id ) return jsonify(response) @TL_blueprint.route("/recallPQVideos", methods=['POST']) async def recallVideos(): """ 搜索视频信息 :return: """ request_id = "recallPQVideos_{}_{}".format(uuid.uuid4(), int(time.time())) data = await request.get_json() response = await recallPQVideos( db_client=db_client, params=data, request_id=request_id ) return jsonify(response) @TL_blueprint.route("/VideoRank", methods=['POST']) async def ranks(): """ :return: """ # request_id = "videoRank_{}_{}".format(uuid.uuid4(), int(time.time())) data = await request.get_json() gh_id = data['ghId'] ts = tempServer(gh_id=gh_id) response = ts.chooseCards() return jsonify(response) @TL_blueprint.route("/VideoRank2", methods=['POST']) async def rank_v2(): """ use db rather than config """ data = await request.get_json() gh_id = data['ghId'] response = await generate_response_v2( gh_id=gh_id, db_client=db_client ) return jsonify(response) @TL_blueprint.route("/KILL", methods=['GET']) async def kill(): """ 杀掉进程 :return: """ task_name = request.args.get("taskName") if task_name: if task_name in ['historyTask.py', 'newContentIdTask.py']: status = await kill_task_by_name(task_name) if status: return jsonify({"message": "success"}) else: return jsonify({"message": "failed"}) else: return jsonify({"message": "task name error"}) else: return jsonify({"message": "no task name"}) return TL_blueprint