Ledger reimplemented with SQLite3
This commit is contained in:
59
Ledger.py
59
Ledger.py
@@ -2,39 +2,50 @@ import sqlite3
|
||||
|
||||
class Ledger():
|
||||
def __init__(self) -> None:
|
||||
self.data = []
|
||||
self.indexes = {} # ID: Index
|
||||
self.db = sqlite3.connect("ledger.db")
|
||||
self.data = self.db.cursor()
|
||||
self.data.execute(""" CREATE TABLE IF NOT EXISTS ledger (
|
||||
ID integer PRIMARY KEY,
|
||||
USERID integer,
|
||||
MONEY integer DEFAULT 100,
|
||||
WINS integer DEFAULT 0,
|
||||
LOSSES integer DEFAULT 0
|
||||
); """)
|
||||
|
||||
def readLedger(self, ID):
|
||||
data = None
|
||||
index = self.indexes.get(ID, None)
|
||||
if index is not None:
|
||||
data = self.data[index]
|
||||
self.data.execute("""SELECT USERID, MONEY, WINS, LOSSES FROM ledger WHERE USERID = ?""", (ID,))
|
||||
data = self.data.fetchone()
|
||||
return data
|
||||
|
||||
def writeLedger(self, ID, data):
|
||||
oldData = self.readLedger(ID)
|
||||
if oldData is not None:
|
||||
data = self.updateLedger(data, oldData)
|
||||
index = self.indexes[ID]
|
||||
self.data[index] = data
|
||||
else:
|
||||
self.data.append(data)
|
||||
index = len(self.data) - 1
|
||||
self.indexes.update({ID: index})
|
||||
|
||||
self.saveLedger()
|
||||
def writeLedger(self, ID):
|
||||
query = """ INSERT INTO ledger(USERID)
|
||||
VALUES(?) """
|
||||
self.data.execute(query, (ID,))
|
||||
self.db.commit()
|
||||
|
||||
def updateLedger(self, data, newData):
|
||||
return data
|
||||
query = """ UPDATE ledger
|
||||
SET MONEY = ?,
|
||||
WINS = ?,
|
||||
LOSSES = ?,
|
||||
WHERE USERID = ?"""
|
||||
data = [data[i] + newData[i] for i in range(len(data))]
|
||||
self.data.execute(query, data)
|
||||
|
||||
def main():
|
||||
conn = sqlite3.connect("ledger.db")
|
||||
cur = conn.cursor()
|
||||
table = """ CREATE TABLE IF NOT EXISTS
|
||||
ledger = Ledger()
|
||||
ledger.writeLedger(10121)
|
||||
ID = 10121
|
||||
data = ledger.readLedger(ID)
|
||||
|
||||
"""
|
||||
cur.execute(table)
|
||||
ID = 2
|
||||
playerStats = ledger.readLedger(ID)
|
||||
if playerStats is None:
|
||||
print("Not real")
|
||||
ledger.writeLedger(ID)
|
||||
playerStats = ledger.readLedger(ID)
|
||||
|
||||
print(playerStats)
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Reference in New Issue
Block a user