didier/functions/database/currency.py

108 lines
2.9 KiB
Python

import datetime
from functions.database import utils, stats
import time
def dinks(userid):
return getOrAddUser(userid)[1]
def dinksAll(userid):
platinumDinks = 0
connection = utils.connect()
cursor = connection.cursor()
cursor.execute("SELECT amount FROM inventory WHERE userid = %s AND itemid = %s", (int(userid), 1,))
result = cursor.fetchall()
if result:
platinumDinks = result[0][0]
return {"dinks": dinks(userid), "platinum": platinumDinks}
def getAllRows():
connection = utils.connect()
cursor = connection.cursor()
cursor.execute(
"""SELECT * FROM currencytable"""
)
return cursor.fetchall()
def getAllPlatDinks():
connection = utils.connect()
cursor = connection.cursor()
cursor.execute("SELECT userid, amount FROM inventory WHERE itemid = 1")
result = cursor.fetchall()
dic = {}
for user in result:
dic[str(user[0])] = user[1]
return dic
def getOrAddUser(userid):
connection = utils.connect()
cursor = connection.cursor()
query = "SELECT * FROM currencytable WHERE userid = %s"
cursor.execute(
query, (int(userid),)
)
result = cursor.fetchall()
# User didn't exist yet, so create a new default file
if len(result) == 0:
createNewUser(userid, connection)
return getOrAddUser(userid)
return result[0]
# TODO check for nightly bonus & add+return that instead of 420
def nightly(userid):
user = getOrAddUser(userid)
today = datetime.datetime.today().date()
lastNightly = datetime.datetime.fromtimestamp(user[9]).date()
streak = int(user[10])
if lastNightly < today:
update(userid, "dinks", float(user[1]) + 420.0)
update(userid, "nightly", int(time.time()))
# Update the streak
if (today - lastNightly).days > 1:
update(userid, "nightly_streak", 1)
streak = 1
else:
update(userid, "nightly_streak", streak + 1)
streak += 1
s = stats.getOrAddUser(userid)
if streak > int(s[5]):
stats.update(userid, "longest_streak", streak)
stats.update(userid, "nightlies_count", int(s[6]) + 1)
return [True, 420, streak]
return [False, 0, -1]
def createNewUser(userid, connection=None):
if connection is None:
connection = utils.connect()
cursor = connection.cursor()
query = "INSERT INTO currencytable(userid, dinks, banklevel, investedamount, investeddays, profit, defense, offense, bitcoins, nightly) " \
"VALUES (%s, 0.0, 1, 0.0, 0, 0, 1, 1, 0.0, 0)"
cursor.execute(query, (int(userid),))
connection.commit()
def update(userid, column, value):
_ = getOrAddUser(userid)
connection = utils.connect()
cursor = connection.cursor()
query = "UPDATE currencytable " \
"SET {} = %s " \
"WHERE userid = %s".format(column)
cursor.execute(query, (value, userid,))
connection.commit()