diff --git a/flask_test.py b/flask_test.py new file mode 100644 index 0000000..bd9d907 --- /dev/null +++ b/flask_test.py @@ -0,0 +1,47 @@ +import requests +from flask import Flask, request, jsonify +from DB import DBVidcon + +app = Flask(__name__) +logging.basicConfig(level=logging.INFO) +logger = logging.getLogger(__name__) + +endpoint = "https://api.dailymotion.com/videos" +DEFAULT_PAGE = 1 +FIXED_LIMIT = 100 # ← 现在固定 100 +db = DBVidcon() + +@app.route("/get", methods=["GET"]) +def get_videos(): + keyword = request.args.get("keyword", "").strip() + 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() + proxy_string = db.get_proxy(rn) + proxies = {"http": proxy_string, "https": proxy_string} if proxy_string else None + + params = { + "search": keyword, + "fields": "id,title,created_time,thumbnail_240_url,duration," + "owner.id,owner.screenname,likes_total,views_total", + "limit": FIXED_LIMIT, # ← 强制 100 + "page": i, + "sort": "relevance" + } + + try: + logger.info("DM 请求 params=%s proxies=%s", params, proxy_string) + resp = requests.get(endpoint, params=params, proxies=proxies, timeout=10) + resp.raise_for_status() + jd = resp.json() + return jsonify(jd), 200 + except requests.exceptions.RequestException as e: + logger.error("DM 请求失败: %s", e) + return jsonify({"status": "error", "msg": str(e)}), 502 + + +if __name__ == "__main__": + app.run(host="0.0.0.0", port=8000, debug=False)