Spaces:
Running
Running
File size: 2,107 Bytes
bc4ef74 b82bad9 bc4ef74 b82bad9 bc4ef74 b82bad9 b71f48b b82bad9 bc4ef74 b82bad9 bc4ef74 b82bad9 b71f48b b82bad9 b71f48b b82bad9 b71f48b b82bad9 82afa70 b82bad9 82afa70 b82bad9 b71f48b b82bad9 82afa70 b71f48b b82bad9 b71f48b b82bad9 82afa70 b71f48b b82bad9 bc4ef74 b82bad9 bc4ef74 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 | from flask import Flask, request, jsonify
from duckduckgo_search import DDGS
app = Flask(__name__)
@app.route("/")
def home():
return "✦ 𝐅𝐅𝐗 ✦ Universal Search API is Live!"
@app.route("/search")
def search_all():
query = request.args.get('query')
if not query:
return jsonify({"error": "Query is required"}), 400
results = {"query": query, "videos": [], "images": [], "files": [], "web": []}
try:
with DDGS() as ddgs:
# 🎬 ভিডিও (১০টি লিংক)
try:
for r in ddgs.videos(query, safesearch="off", max_results=10):
results["videos"].append({"title": r.get("title", ""), "link": r.get("content", "") or r.get("url", "")})
except: pass
# 🖼️ ছবি (৫টি লিংক)
try:
for r in ddgs.images(query, safesearch="off", max_results=5):
results["images"].append({"title": r.get("title", ""), "link": r.get("image", "") or r.get("url", "")})
except: pass
# 📂 ফাইল (১০টি লিংক)
try:
file_query = f"{query} ext:pdf OR ext:apk OR ext:zip OR torrent OR download"
for r in ddgs.text(file_query, safesearch="off", max_results=10):
results["files"].append({"title": r.get("title", ""), "link": r.get("href", "")})
except: pass
# 🌐 ওয়েবসাইট (১৫টি লিংক)
try:
web_query = f"{query} watch online OR official site OR wiki"
for r in ddgs.text(web_query, safesearch="off", max_results=15):
results["web"].append({"title": r.get("title", ""), "link": r.get("href", "")})
except: pass
except Exception as e:
return jsonify({"error": str(e)}), 500
return jsonify(results)
if __name__ == "__main__":
app.run(host="0.0.0.0", port=7860) |