From 5caca00af6a5ec5646ffbcdc23dbdb0af58b4118 Mon Sep 17 00:00:00 2001 From: xiaofeng wang Date: Wed, 16 Jul 2025 13:41:49 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B5=8B=E8=AF=95=E6=96=B0=E5=A2=9E=E5=8F=82?= =?UTF-8?q?=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- flask_test.py | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/flask_test.py b/flask_test.py index 4d0ee15..39aa522 100644 --- a/flask_test.py +++ b/flask_test.py @@ -6,7 +6,12 @@ app = Flask(__name__) endpoint = "https://api.dailymotion.com/videos" DEFAULT_PAGE = 1 -FIXED_LIMIT = 100 # ← 现在固定 100 +FIXED_LIMIT = 100 +VALID_SORTS = { + 'recent', 'relevance', 'alpha', 'alphaaz', + 'alphaza', 'most', 'least', 'changed' +} + db = DBVidcon() @app.route("/get", methods=["GET"]) @@ -15,9 +20,18 @@ def get_videos(): if not keyword: return jsonify({"status": "error", "msg": "keyword 参数不能为空"}), 400 + # 页码和国家参数 i = request.args.get("page", DEFAULT_PAGE, type=int) - rn = request.args.get("rn", "US") - rn = rn.upper() + rn = request.args.get("rn", "US").upper() + + # 排序参数,必须合法 + sort = request.args.get("sort", "relevance").strip().lower() + if sort not in VALID_SORTS: + return jsonify({ + "status": "error", + "msg": f"sort 参数非法,可选值: {sorted(VALID_SORTS)}" + }), 400 + proxy_string = db.get_proxy(rn) proxies = {"http": proxy_string, "https": proxy_string} if proxy_string else None @@ -25,9 +39,9 @@ def get_videos(): "search": keyword, "fields": "id,title,created_time,thumbnail_240_url,duration," "owner.id,owner.screenname,likes_total,views_total", - "limit": FIXED_LIMIT, # ← 强制 100 + "limit": FIXED_LIMIT, "page": i, - "sort": "relevance" + "sort": sort } try: