app.py 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137
  1. from flask import Flask, request, jsonify
  2. from api import mj_api
  3. from api.error import unauthorized_error
  4. from api.error import system_error
  5. app = Flask(__name__)
  6. @app.route('/')
  7. def hello():
  8. return "Hello World"
  9. # 查询历史所有任务列表
  10. @app.route('/thomas_jobs', methods=['POST'])
  11. def thomas_jobs():
  12. request_data = request.get_json()
  13. if request_data.get('cookie') is None:
  14. return jsonify({"error": "Cookie is missing!"}), 400
  15. if request_data.get('user_id') is None:
  16. return jsonify({"error": "page_size is required!"}), 400
  17. response_json_str = mj_api.thomas_jobs(cookie=request_data.get('cookie'), user_id=request_data.get('user_id'),
  18. page_size=request_data.get('page_size'))
  19. return response_json_str
  20. # 查询指定任务状态
  21. @app.route('/query_job_status', methods=['POST'])
  22. def query_job_status():
  23. request_data = request.get_json()
  24. if request_data.get('cookie') is None:
  25. return jsonify({"error": "Cookie is missing!"}), 400
  26. if request_data.get('job_id') is None:
  27. return jsonify({"error": "job_id is required!"}), 400
  28. response_json_str = mj_api.query_job_status(cookie=request_data.get('cookie'), job_id=request_data.get('job_id'))
  29. return response_json_str
  30. # 查询任务队列
  31. @app.route('/query_job_queue', methods=['POST'])
  32. def query_job_queue():
  33. request_data = request.get_json()
  34. if request_data.get('cookie') is None:
  35. return jsonify({"error": "Cookie is missing!"}), 400
  36. if request_data.get('user_id') is None:
  37. return jsonify({"error": "user_id is required!"}), 400
  38. response_json_str = mj_api.query_job_queue(cookie=request_data.get('cookie'), user_id=request_data.get('user_id'))
  39. return response_json_str
  40. # 提交图片任务
  41. @app.route('/submit_job', methods=['POST'])
  42. def submit_job():
  43. request_data = request.get_json()
  44. if request_data.get('cookie') is None:
  45. return jsonify({"error": "Cookie is missing!"}), 400
  46. if request_data.get('prompt') is None:
  47. return jsonify({"error": "prompt is required!"}), 400
  48. if request_data.get('user_id') is None:
  49. return jsonify({"error": "user_id is required!"}), 400
  50. response_json_str = mj_api.submit_job(cookie=request_data.get('cookie'), prompt=request_data.get('prompt'),
  51. user_id=request_data.get('user_id'), mode=request_data.get('mode'))
  52. return response_json_str
  53. # 提交视频任务
  54. @app.route('/submit_video_job', methods=['POST'])
  55. def submit_video_job():
  56. request_data = request.get_json()
  57. if request_data.get('cookie') is None:
  58. return jsonify({"error": "Cookie is missing!"}), 400
  59. if request_data.get('prompt') is None:
  60. return jsonify({"error": "prompt is required!"}), 400
  61. if request_data.get('user_id') is None:
  62. return jsonify({"error": "user_id is required!"}), 400
  63. response_json_str = mj_api.submit_video_job(cookie=request_data.get('cookie'), prompt=request_data.get('prompt'),
  64. user_id=request_data.get('user_id'), mode=request_data.get('mode'))
  65. return response_json_str
  66. @app.route('/get_image_urls', methods=['POST'])
  67. def get_image_urls():
  68. request_data = request.get_json()
  69. if request_data.get('job_id') is None:
  70. return jsonify({"error": "job_id is required!"}), 400
  71. urls = mj_api.upload_image_to_oss(job_id=request_data.get('job_id'), image_num=request_data.get('image_num'))
  72. return urls
  73. @app.route('/get_video_urls', methods=['POST'])
  74. def get_video_urls():
  75. request_data = request.get_json()
  76. if request_data.get('job_id') is None:
  77. return jsonify({"error": "job_id is required!"}), 400
  78. urls = mj_api.upload_video_to_oss(job_id=request_data.get('job_id'), image_num=request_data.get('video_num'))
  79. return urls
  80. @app.errorhandler(unauthorized_error)
  81. def handle_unauthorized_error(error):
  82. response = jsonify({"error": str(error)})
  83. response.status_code = 401
  84. return response
  85. @app.errorhandler(system_error)
  86. def handle_system_error(error):
  87. response = jsonify({"error": str(error)})
  88. response.status_code = 500
  89. return response
  90. if __name__ == '__main__':
  91. app.run()