import sqlite3 from dataclasses import dataclass from sqlite3 import Error @dataclass class Subscription: id: str recipent: str subscriber: str nwc: str cadence: str amount: int begin: int end: int tier_dtag: str zaps: str recipe: str active: bool lastupdate: int def create_subscription_sql_table(db): try: import os if not os.path.exists(r'db'): os.makedirs(r'db') if not os.path.exists(r'outputs'): os.makedirs(r'outputs') con = sqlite3.connect(db) cur = con.cursor() cur.execute(""" CREATE TABLE IF NOT EXISTS subscriptions ( id text PRIMARY KEY, recipient text, subscriber text, nwc text NOT NULL, cadence text, amount int, begin int, end int, tier_dtag text, zaps text, recipe text, active boolean, lastupdate int ); """) cur.execute("SELECT name FROM sqlite_master") con.close() except Error as e: print(e) def add_to_subscription_sql_table(db, id, recipient, subscriber, nwc, cadence, amount, begin, end, tier_dtag, zaps, recipe, active, lastupdate): try: con = sqlite3.connect(db) cur = con.cursor() data = (id, recipient, subscriber, nwc, cadence, amount, begin, end, tier_dtag, zaps, recipe, active, lastupdate) print(id) print(recipient) print(subscriber) print(nwc) cur.execute("INSERT or IGNORE INTO subscriptions VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", data) con.commit() con.close() except Error as e: print("Error when Adding to DB: " + str(e)) def get_from_subscription_sql_table(db, id): try: con = sqlite3.connect(db) cur = con.cursor() cur.execute("SELECT * FROM subscriptions WHERE id=?", (id,)) row = cur.fetchone() con.close() if row is None: return None else: subscription = Subscription subscription.id = row[0] subscription.recipent = row[1] subscription.subscriber = row[2] subscription.nwc = row[3] subscription.cadence = row[4] subscription.amount = row[5] subscription.begin = row[6] subscription.end = row[7] subscription.tier_dtag = row[8] subscription.zaps = row[9] subscription.recipe = row[10] subscription.active = row[11] subscription.lastupdate = row[12] return subscription except Error as e: print("Error Getting from DB: " + str(e)) return None def get_all_subscriptions_from_sql_table(db): try: con = sqlite3.connect(db) cursor = con.cursor() sqlite_select_query = """SELECT * from subscriptions""" cursor.execute(sqlite_select_query) records = cursor.fetchall() subscriptions = [] for row in records: subscription = Subscription subscription.id = row[0] subscription.recipent = row[1] subscription.subscriber = row[2] subscription.nwc = row[3] subscription.cadence = row[4] subscription.amount = row[5] subscription.begin = row[6] subscription.end = row[7] subscription.tier_dtag = row[8] subscription.zaps = row[9] subscription.recipe = row[10] subscription.active = row[11] subscription.lastupdate = row[12] subscriptions.append(subscription) cursor.close() return subscriptions except sqlite3.Error as error: print("Failed to read data from sqlite table", error) finally: if con: con.close() #print("The SQLite connection is closed") def delete_from_subscription_sql_table(db, id): try: con = sqlite3.connect(db) cur = con.cursor() cur.execute("DELETE FROM subscriptions WHERE id=?", (id,)) con.commit() con.close() except Error as e: print(e) def update_subscription_sql_table(db, id, recipient, subscriber, nwc, cadence, amount, begin, end, tier_dtag, zaps, recipe, active, lastupdate): try: con = sqlite3.connect(db) cur = con.cursor() data = (recipient, subscriber, nwc, cadence, amount, begin, end, tier_dtag, zaps, recipe, active, lastupdate, id) cur.execute(""" UPDATE subscriptions SET recipient = ? , subscriber = ? , nwc = ? , cadence = ? , amount = ? , begin = ? , end = ?, tier_dtag = ?, zaps = ?, recipe = ?, active = ?, lastupdate = ? WHERE id = ?""", data) con.commit() con.close() except Error as e: print("Error Updating DB: " + str(e))