__init__.py 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  1. """
  2. @author: luojunhui
  3. 投流--路由
  4. """
  5. import time
  6. import uuid
  7. from quart import Blueprint, jsonify, request
  8. from .insertVideoRoute import insert
  9. from .sourceIdRoute import saveSourceToDB
  10. from .recallPQVideos import recallPQVideos
  11. from .process_killer import kill_task_by_name
  12. from deal import tempServer
  13. from deal import generate_response_v2
  14. TL_blueprint = Blueprint("TouLiu", __name__)
  15. def Routes(db_client):
  16. """
  17. 路由代码
  18. :param db_client: 异步db连接池
  19. :return:
  20. """
  21. @TL_blueprint.route("/hello")
  22. def helloWorld():
  23. """
  24. :return: Hello World
  25. """
  26. return jsonify({"message": "Hello World!"})
  27. @TL_blueprint.route("/generateInfo", methods=['POST'])
  28. async def generateInfo():
  29. """
  30. 生成一些需要用到到信息
  31. :return:
  32. """
  33. request_id = "generateInfo_{}_{}".format(uuid.uuid4(), int(time.time()))
  34. data = await request.get_json()
  35. response = await saveSourceToDB(
  36. db_client=db_client,
  37. params=data,
  38. request_id=request_id
  39. )
  40. return jsonify(response)
  41. @TL_blueprint.route("/insertVideo", methods=['POST'])
  42. async def insertVideos():
  43. """
  44. 插入视频信息
  45. :return:
  46. """
  47. request_id = "insertVideos_{}_{}".format(uuid.uuid4(), int(time.time()))
  48. data = await request.get_json()
  49. response = await insert(
  50. db_client=db_client,
  51. params=data,
  52. request_id=request_id
  53. )
  54. return jsonify(response)
  55. @TL_blueprint.route("/recallPQVideos", methods=['POST'])
  56. async def recallVideos():
  57. """
  58. 搜索视频信息
  59. :return:
  60. """
  61. request_id = "recallPQVideos_{}_{}".format(uuid.uuid4(), int(time.time()))
  62. data = await request.get_json()
  63. response = await recallPQVideos(
  64. db_client=db_client,
  65. params=data,
  66. request_id=request_id
  67. )
  68. return jsonify(response)
  69. @TL_blueprint.route("/VideoRank", methods=['POST'])
  70. async def ranks():
  71. """
  72. :return:
  73. """
  74. # request_id = "videoRank_{}_{}".format(uuid.uuid4(), int(time.time()))
  75. data = await request.get_json()
  76. gh_id = data['ghId']
  77. ts = tempServer(gh_id=gh_id)
  78. response = ts.chooseCards()
  79. return jsonify(response)
  80. @TL_blueprint.route("/VideoRank2", methods=['POST'])
  81. async def rank_v2():
  82. """
  83. use db rather than config
  84. """
  85. data = await request.get_json()
  86. gh_id = data['ghId']
  87. response = await generate_response_v2(
  88. gh_id=gh_id,
  89. db_client=db_client
  90. )
  91. return jsonify(response)
  92. @TL_blueprint.route("/KILL", methods=['GET'])
  93. async def kill():
  94. """
  95. 杀掉进程
  96. :return:
  97. """
  98. task_name = request.args.get("taskName")
  99. if task_name:
  100. if task_name in ['historyTask.py', 'newContentIdTask.py']:
  101. status = await kill_task_by_name(task_name)
  102. if status:
  103. return jsonify({"message": "success"})
  104. else:
  105. return jsonify({"message": "failed"})
  106. else:
  107. return jsonify({"message": "task name error"})
  108. else:
  109. return jsonify({"message": "no task name"})
  110. return TL_blueprint