Files
Acrybot/Ledger.py
2023-06-12 11:19:03 +10:00

58 lines
1.7 KiB
Python

import sqlite3
class Database():
def __init__(self, name, tableCommand) -> None:
self.db = sqlite3.connect(name)
self.data = self.db.cursor()
self.data.execute(tableCommand)
def read(self, primaryKey, selectQuery):
self.data.execute(selectQuery, (primaryKey,))
data = self.data.fetchone()
return data
def write(self, ID, insertQuery):
self.data.execute(insertQuery, (ID,))
self.db.commit()
def update(self, ID, data, newData, updateQuery):
data = [data[i] + newData[i] for i in range(len(data))]
data.append(ID)
self.data.execute(updateQuery, data)
self.db.commit()
class Ledger(Database):
def __init__(self) -> None:
tableCommand = """ CREATE TABLE IF NOT EXISTS ledger (
ID integer PRIMARY KEY,
USERID integer,
MONEY integer DEFAULT 100,
WINS integer DEFAULT 0,
LOSSES integer DEFAULT 0
); """
super().__init__("ledger.db", tableCommand)
def read(self, ID):
selectQuery = """SELECT USERID, MONEY, WINS, LOSSES FROM ledger WHERE USERID = ?"""
data = super().read(ID, selectQuery)
return data
def write(self, ID):
insertQuery = """ INSERT INTO ledger(USERID)
VALUES(?) """
super().write(ID, insertQuery)
def update(self, ID, newData):
query = """ UPDATE ledger
SET MONEY = ?,
WINS = ?,
LOSSES = ?
WHERE USERID = ?"""
data = list(self.read(ID))[1:]
super().update(ID, data, newData, query)
def main():
pass
if __name__ == "__main__":
main()