diff --git a/api/v1/getFile.py b/api/v1/getFile.py index 259b6ad..12cf860 100644 --- a/api/v1/getFile.py +++ b/api/v1/getFile.py @@ -31,11 +31,12 @@ class handler(asyncTornado.asyncRequestHandler): raise Exception("Missing required arguments") method = args_filter[0] - method_value = self.request.arguments[method] + method_value = self.get_argument(method) - cur = glob.sql.cursor() + conn = glob.new_sql() + cur = conn.cursor() - sql = SQL_STRUCT["main"] % SQL_STRUCT["method"] + sql = SQL_STRUCT["main"] % SQL_STRUCT[method] if method == "timestamp": sql = sql % method_value else: @@ -45,12 +46,14 @@ class handler(asyncTornado.asyncRequestHandler): data = cur.fetchone() cur.close() + conn.close() status_code = 200 except Exception as e: status_code = 400 data["status"] = status_code data["message"] = str(e) + print("Err: %s" % e) finally: self.write( json.dumps(data) ) self.set_header("Content-Type", "application/json") diff --git a/helpers/__init__.py b/helpers/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/helpers/databaseHelper.py b/helpers/databaseHelper.py new file mode 100644 index 0000000..6e7c464 --- /dev/null +++ b/helpers/databaseHelper.py @@ -0,0 +1,5 @@ +def dict_factory(cursor, row): + d = {} + for idx, col in enumerate(cursor.description): + d[col[0]] = row[idx] + return d \ No newline at end of file diff --git a/main.py b/main.py index a0f3a10..ff56d39 100644 --- a/main.py +++ b/main.py @@ -53,7 +53,7 @@ def build_database(): f = open("wayback.db", "w") f.close() - glob.sql = sqlite3.connect("wayback.db") + glob.sql = glob.new_sql() cur = glob.sql.cursor() with open("database_structs.sql", "r") as f: @@ -69,7 +69,7 @@ if __name__ == "__main__": build_database() if glob.sql == None: - glob.sql = sqlite3.connect("wayback.db") + glob.sql = glob.new_sql() print("Serving at %s:%s" % (glob.config["server"]["host"], glob.config["server"]["port"])) print("To stop server press CTRL + C") diff --git a/objects/glob.py b/objects/glob.py index 26391cf..bcf5eea 100644 --- a/objects/glob.py +++ b/objects/glob.py @@ -1,5 +1,7 @@ import json +import sqlite3 from multiprocessing.pool import ThreadPool +from helpers import databaseHelper with open("config.json", "r") as f: config = json.load(f) @@ -7,3 +9,8 @@ with open("config.json", "r") as f: app = None sql = None pool = ThreadPool(config["threads"]) + +def new_sql(): + db = sqlite3.connect("wayback.db") + db.row_factory = databaseHelper.dict_factory + return db \ No newline at end of file