123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- from quart import Blueprint, jsonify, request
- from applications.utils import (
- fetch_aigc_cover,
- fetch_channel_info,
- fetch_long_video_cover,
- )
- server_blueprint = Blueprint("api", __name__, url_prefix="/api")
- def server_routes(pools):
- @server_blueprint.route("/get_cover", methods=["POST"])
- async def get_cover():
- params = await request.get_json()
- content_id = params.get("content_id")
- if not content_id:
- return jsonify({"code": 400, "msg": "content_id is required", "data": None})
- # fetch content channel info
- channel_info = await fetch_channel_info(pools, content_id)
- channel_content_id, channel_type = channel_info[0]['channel_content_id'], channel_info[0]['channel']
- match channel_type:
- case 5:
- # channel is gzh article
- fetch_response = await fetch_aigc_cover(pools, channel_content_id)
- cover_obj = fetch_response[0]
- if cover_obj:
- image_oss = cover_obj['oss_object_key']
- cover = "http://res.cybertogether.net/" + image_oss + "?x-oss-process=image/resize,m_fill,w_450,h_360/format,jpg"
- else:
- return jsonify(
- {"code": 401, "msg": "can't find cover in aigc system", "data": None}
- )
- case 6:
- # channel is toutiao article
- fetch_response = await fetch_aigc_cover(pools, channel_content_id)
- cover_obj = fetch_response[0]
- if cover_obj:
- image_oss = cover_obj['oss_object_key']
- cover = "http://res.cybertogether.net/" + image_oss + "?x-oss-process=image/resize,m_fill,w_450,h_360/format,jpg"
- else:
- return jsonify(
- {"code": 401, "msg": "can't find cover in aigc system", "data": None}
- )
- case 10:
- # channel is long video
- fetch_response = await fetch_long_video_cover(pools, channel_content_id)
- cover_obj = fetch_response[1]
- if cover_obj:
- image_oss = cover_obj['image_path']
- cover = "https://rescdn.yishihui.com/" + image_oss + "?x-oss-process=image/resize,m_fill,w_450,h_360/format,jpg"
- else:
- return jsonify(
- {"code": 401, "msg": "can't find cover in pq", "data": None}
- )
- case _:
- return jsonify(
- {"code": 400, "msg": "channel_type is not supported", "data": None}
- )
- return jsonify({"code": 200, "msg": "success", "data": {"cover": cover}})
- return server_blueprint
|