|
|
from flask import Flask, request, jsonify |
|
|
from browser_controller import BrowserController |
|
|
|
|
|
app = Flask(__name__) |
|
|
browser = BrowserController() |
|
|
|
|
|
@app.route("/command", methods=["POST"]) |
|
|
def command(): |
|
|
data = request.json |
|
|
action = data.get("action") |
|
|
selector = data.get("selector") |
|
|
value = data.get("value") |
|
|
pixels = data.get("pixels", 0) |
|
|
url = data.get("url") |
|
|
|
|
|
try: |
|
|
if action == "navigate" and url: |
|
|
result = browser.navigate(url) |
|
|
elif action == "click" and selector: |
|
|
result = browser.click(selector) |
|
|
elif action == "type" and selector and value: |
|
|
result = browser.type_text(selector, value) |
|
|
elif action == "scroll": |
|
|
result = browser.scroll(pixels) |
|
|
else: |
|
|
return jsonify({"error": "Invalid command"}), 400 |
|
|
|
|
|
return jsonify(result) |
|
|
|
|
|
except Exception as e: |
|
|
return jsonify({"error": str(e)}), 500 |
|
|
|
|
|
@app.route("/close", methods=["POST"]) |
|
|
def close_browser(): |
|
|
browser.close() |
|
|
return jsonify({"status": "browser closed"}) |
|
|
|
|
|
if __name__ == "__main__": |
|
|
app.run(host="0.0.0.0", port=5000) |