From 700e9826697614e6175bdc9b3f75950fb00e8c70 Mon Sep 17 00:00:00 2001 From: Arc <33088785+arcbtc@users.noreply.github.com> Date: Mon, 27 Jan 2020 23:30:31 +0000 Subject: [PATCH] Classes for extensions Added for both extensions and lnfaucet db --- lnbits/db.py | 59 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) diff --git a/lnbits/db.py b/lnbits/db.py index b4c9e8df..54f44269 100644 --- a/lnbits/db.py +++ b/lnbits/db.py @@ -30,3 +30,62 @@ class Database: """Given a query, cursor.execute() it.""" self.cursor.execute(query, values) self.connection.commit() + + +class ExtDatabase: + def __init__(self, db_path: str = os.path.join(LNBITS_PATH, "extensions", "overview.sqlite3")): + self.path = db_path + self.connection = sqlite3.connect(db_path) + self.connection.row_factory = sqlite3.Row + self.cursor = self.connection.cursor() + + def __enter__(self): + return self + + def __exit__(self, exc_type, exc_val, exc_tb): + self.cursor.close() + self.connection.close() + + def fetchall(self, query: str, values: tuple) -> list: + """Given a query, return cursor.fetchall() rows.""" + self.cursor.execute(query, values) + return self.cursor.fetchall() + + def fetchone(self, query: str, values: tuple): + self.cursor.execute(query, values) + return self.cursor.fetchone() + + def execute(self, query: str, values: tuple) -> None: + """Given a query, cursor.execute() it.""" + self.cursor.execute(query, values) + self.connection.commit() + + +class FauDatabase: + def __init__(self, db_path: str = os.path.join(LNBITS_PATH, "extensions", "lnurlfaucet", "database.sqlite3")): + self.path = db_path + self.connection = sqlite3.connect(db_path) + self.connection.row_factory = sqlite3.Row + self.cursor = self.connection.cursor() + + def __enter__(self): + return self + + def __exit__(self, exc_type, exc_val, exc_tb): + self.cursor.close() + self.connection.close() + + def fetchall(self, query: str, values: tuple) -> list: + """Given a query, return cursor.fetchall() rows.""" + self.cursor.execute(query, values) + return self.cursor.fetchall() + + def fetchone(self, query: str, values: tuple): + self.cursor.execute(query, values) + return self.cursor.fetchone() + + def execute(self, query: str, values: tuple) -> None: + """Given a query, cursor.execute() it.""" + self.cursor.execute(query, values) + self.connection.commit() +