app.py 933 B

123456789101112131415161718192021222324252627282930313233343536
  1. from datetime import datetime
  2. from flask import Flask, request, jsonify
  3. import requests
  4. from urllib.parse import urlencode
  5. app = Flask(__name__)
  6. @app.route("/osmand", methods=["GET"])
  7. def forward_get_as_post():
  8. # Convert GET parameters to JSON
  9. data = dict(request.args)
  10. api_key_q = {}
  11. if "key" in data:
  12. api_key_q = {"token": data["key"]}
  13. del data["key"]
  14. if "tst" in data:
  15. point_dt = datetime.fromtimestamp(float(data["tst"]))
  16. data["tst"] = point_dt.isoformat()
  17. # Forward as POST request with JSON body
  18. target_url = f"http://reitti:8080/api/v1/ingest/owntracks?{urlencode(api_key_q)}"
  19. response = requests.post(target_url, json=data)
  20. return jsonify(
  21. {
  22. "status": "forwarded",
  23. "data_sent": data,
  24. "target_status": response.status_code,
  25. }
  26. )
  27. if __name__ == "__main__":
  28. app.run(host="0.0.0.0", port=9000)