From 7589408812dd18c40ee6c947f98b05d832bfdadd Mon Sep 17 00:00:00 2001 From: elburg Date: Thu, 9 Feb 2023 22:04:22 +0000 Subject: [PATCH] stuff --- main.py | 98 ++++++++++++++++++++-------------------- src/database/searchDB.py | 15 +++++- 2 files changed, 64 insertions(+), 49 deletions(-) diff --git a/main.py b/main.py index 6295131..212a856 100644 --- a/main.py +++ b/main.py @@ -1,6 +1,6 @@ exit() -__version__="0.0" +__version__ = "0.0" from flask import Flask as wserv @@ -9,66 +9,68 @@ app = wserv('superTinySearch API Runtime') from flask import render_template import sys -debugmode=False + +debugmode = False if "debug" in sys.argv: - debugmode=True + debugmode = True del sys + def makeServerHeader(): - import sys - return f"superTinySearch API/{__version__} (Unix) (Python v{sys.version})" + import sys + return f"superTinySearch API/{__version__} (Unix) (Python v{sys.version})" + + # @app.errorhandler(404) # def not_found(error): # from flask import request as rq # if rq.args.get('returnFormat','') == "xml" - + + @app.route("/") def noHumans(): - from flask import Response - resp=Response( - response="running", - status=200, - mimetype="text/plain" - ) - resp.headers["Server"] = makeServerHeader - resp.headers["Accept"] = "text/plain" - return resp - - + from flask import Response + resp = Response(response="running", status=200, mimetype="text/plain") + resp.headers["Server"] = makeServerHeader + resp.headers["Accept"] = "text/plain" + return resp + + @app.route("/about") def aboutThis(): - from flask import Response - resp=Response( - response=f"superTinySearch API v{__version__}", - status=200, - mimetype="text/plain" - ) - resp.headers["Server"] = makeServerHeader - resp.headers["Accept"] = "text/plain" - return resp - -@app.route("/apifront?returnFormat=&srcHostname=", 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 + resp = Response(response=f"superTinySearch API v{__version__}", + status=200, + mimetype="text/plain") + resp.headers["Server"] = makeServerHeader + resp.headers["Accept"] = "text/plain" return resp - + + +@app.route("/apifront?returnFormat=&srcHostname=", + 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 + + if __name__ == '__main__': - app.run(host="0.0.0.0",port=443) + app.run(host="0.0.0.0", port=443) else: - raise "INVALID USAGE OF API APP" \ No newline at end of file + raise "INVALID USAGE OF API APP" diff --git a/src/database/searchDB.py b/src/database/searchDB.py index 94c082a..7413a94 100644 --- a/src/database/searchDB.py +++ b/src/database/searchDB.py @@ -40,7 +40,20 @@ class Accessor: """) self.buffers.db.commit() return True - + def removeEntry(self, filters): + if self.mode == "ro": + raise ImportError + self._refresh() + query="DELETE FROM index WHERE " + if filters.full: + query+=f"fullURL = {filters.fullURL}" + elif filters.hostname: + query+=f"fullURL LIKE %{filters.hostname}%" + + query+=";" + self.buffers.dbcursor.execute(query) + self.buffers.db.commit() + return True def __init__(self, mode="ro"): self.mode = mode self.search = {'query': None, 'limit': 20, 'offset': 0}