sts-api/main.py

77 lines
2 KiB
Python
Raw Normal View History

2023-02-02 02:47:12 +00:00
exit()
2023-02-09 22:04:22 +00:00
__version__ = "0.0"
2023-02-02 02:47:12 +00:00
from flask import Flask as wserv
app = wserv('superTinySearch API Runtime')
from flask import render_template
import sys
2023-02-09 22:04:22 +00:00
debugmode = False
2023-02-02 02:47:12 +00:00
if "debug" in sys.argv:
2023-02-09 22:04:22 +00:00
debugmode = True
2023-02-02 02:47:12 +00:00
del sys
2023-02-09 22:04:22 +00:00
2023-02-02 02:47:12 +00:00
def makeServerHeader():
2023-02-09 22:04:22 +00:00
import sys
return f"superTinySearch API/{__version__} (Unix) (Python v{sys.version})"
2023-02-02 02:47:12 +00:00
# @app.errorhandler(404)
# def not_found(error):
# from flask import request as rq
# if rq.args.get('returnFormat','') == "xml"
2023-02-09 22:04:22 +00:00
2023-02-02 02:47:12 +00:00
@app.route("/")
def noHumans():
2023-02-09 22:04:22 +00:00
from flask import Response
resp = Response(response="running", status=200, mimetype="text/plain")
resp.headers["Server"] = makeServerHeader
resp.headers["Accept"] = "text/plain"
return resp
2023-02-02 02:47:12 +00:00
@app.route("/about")
def aboutThis():
from flask import Response
2023-02-09 22:04:22 +00:00
resp = Response(response=f"superTinySearch API v{__version__}",
status=200,
mimetype="text/plain")
resp.headers["Server"] = makeServerHeader
resp.headers["Accept"] = "text/plain"
2023-02-02 02:47:12 +00:00
return resp
2023-02-09 22:04:22 +00:00
@app.route("/apifront?returnFormat=<rf>&srcHostname=<src>",
methods=['GET', 'POST'])
def apiRun(rf='xml', src=None):
from flask import request as rq
if rq.method == 'GET':
return 'GET REQUESTS NOT ALLOWED'
else:
from src import frontend
out = frontend.parsePOST(rq.form.to_dict(flat=False), rf, src)
del frontend
from flask import Response
resp = Response(response=out.content, status=500, mime="text/plain")
if rf == "xml":
resp.headers["Content-Type"] = "text/xml; charset=utf-8"
elif rf == "json":
resp.headers["Content-Type"] = "application/json; charset=utf-8"
else:
resp.headers["Content-Type"] = "text/plain; charset=utf-8"
resp.headers["Server"] = makeServerHeader()
resp.status = 200
return resp
2023-02-02 02:47:12 +00:00
if __name__ == '__main__':
2023-02-09 22:04:22 +00:00
app.run(host="0.0.0.0", port=443)
2023-02-02 02:47:12 +00:00
else:
2023-02-09 22:04:22 +00:00
raise "INVALID USAGE OF API APP"