from flask import Flask, request, jsonify import requests from bs4 import BeautifulSoup from DuckDuckGo import search_duckduckgo from PdfExtract import process_pdf, process_uploaded_pdf app = Flask(__name__) @app.route("/search") def search(): query = request.args.get("q") if not query: return jsonify({"error": "Missing query parameter"}), 400 results = search_duckduckgo(query) return jsonify(results) # ================= API 1: Extract from URL ================= @app.route("/extract", methods=["POST"]) def extract(): try: data = request.get_json() if not data or "url" not in data: return jsonify({"error": "Missing URL"}), 400 result = process_pdf(data["url"]) return jsonify(result) except Exception as e: return jsonify({"error": str(e)}), 400 # ================= API 2: Upload file ================= @app.route("/upload", methods=["POST"]) def upload(): try: if "file" not in request.files: return jsonify({"error": "No file field"}), 400 file = request.files["file"] if file.filename == "": return jsonify({"error": "No selected file"}), 400 file_bytes = file.read() result = process_uploaded_pdf(file_bytes) return jsonify(result) except Exception as e: return jsonify({"error": str(e)}), 400 if __name__ == "__main__": app.run(host="0.0.0.0", port=8000)