From 2b121be258aca5a4d635b51e13385258b3629626 Mon Sep 17 00:00:00 2001 From: katboi01 Date: Thu, 26 Dec 2024 15:54:55 +0100 Subject: [PATCH] Added archive module --- app.py | 2 ++ modules/Archive/database.py | 22 ++++++++++++++++++++++ modules/Archive/databaseController.py | 21 +++++++++++++++++++++ modules/Archive/endpoints/query.py | 21 +++++++++++++++++++++ 4 files changed, 66 insertions(+) create mode 100644 modules/Archive/database.py create mode 100644 modules/Archive/databaseController.py create mode 100644 modules/Archive/endpoints/query.py diff --git a/app.py b/app.py index e1c1010..3369474 100644 --- a/app.py +++ b/app.py @@ -3,6 +3,7 @@ from flask_restful import Api from modules.KF3.database import Database as KF3DB from modules.Kingdom.database import Database as KFKDB +from modules.Archive.database import Database as KFADB app = Flask(__name__) app.config['JSON_AS_ASCII'] = False @@ -12,6 +13,7 @@ api = Api(app) KF3DB(api) KFKDB(api) +KFADB(api) if __name__ == '__main__': app.run(host='127.0.0.1', port=8080, debug=True) \ No newline at end of file diff --git a/modules/Archive/database.py b/modules/Archive/database.py new file mode 100644 index 0000000..0010e45 --- /dev/null +++ b/modules/Archive/database.py @@ -0,0 +1,22 @@ +import json +from .databaseController import DatabaseController +from .endpoints.query import Archive_Query + +class Database: + db : DatabaseController = None + processed_friends = {} + item_stages = {} + + def __init__(self, api) -> None: + app = api.app + if "Archive" in app.databases: + del app.databases["Archive"] + + self.reload_data() + + app.databases["Archive"] = self + + api.add_resource(Archive_Query, "/Archive/Query") + + def reload_data(self): + self.db = DatabaseController("/home/pi/python/Katbots/JapariArchive/database.db") \ No newline at end of file diff --git a/modules/Archive/databaseController.py b/modules/Archive/databaseController.py new file mode 100644 index 0000000..f0be3fd --- /dev/null +++ b/modules/Archive/databaseController.py @@ -0,0 +1,21 @@ +import os +import sqlite3 + +TABLE_ACCOUNTS = "accounts" +TABLE_X = "x_posts" + +class DatabaseController: + def __init__(self, db_name): + self.conn = sqlite3.connect(db_name, isolation_level="DEFERRED") + self.cursor = self.conn.cursor() + + def run_query(self, query): + try: + self.cursor.execute(query) + results = self.cursor.fetchall() + return results + except: + return None + + def close(self): + self.conn.close() \ No newline at end of file diff --git a/modules/Archive/endpoints/query.py b/modules/Archive/endpoints/query.py new file mode 100644 index 0000000..b63ace0 --- /dev/null +++ b/modules/Archive/endpoints/query.py @@ -0,0 +1,21 @@ +import json +from flask_restful import Resource +from flask import current_app as app, jsonify + +class Archive_Query(Resource): + def post(self, query:str): + db = app.databases["Archive"] + + result = db.run_query(query) + + if result is None: + response = app.response_class(status=400) + else: + response = app.response_class( + response=json.dumps(result, ensure_ascii=False, indent=1), + status=200, + mimetype='application/json' + ) + + response.headers.add("Access-Control-Allow-Origin", "*") + return response \ No newline at end of file