from data import constants from functions.database import utils import random def getOrAddUser(userid): connection = utils.connect() cursor = connection.cursor() query = "SELECT * FROM muttn 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] def getAllRows(): connection = utils.connect() cursor = connection.cursor() cursor.execute("SELECT * FROM muttn") return cursor.fetchall() def createNewUser(userid, connection): cursor = connection.cursor() cursor.execute("INSERT INTO muttn(userid, stats, count, message) VALUES (%s, %s, %s, %s)", ( int(userid), random.randint(0, 50) + (random.randint(0, 100)/100), 0, 0, )) connection.commit() def muttn(userid, count, messageid): if str(userid) == constants.didierId: return connection = utils.connect() cursor = connection.cursor() user = getOrAddUser(userid) # Dont' allow earlier messages to be spammed to avoid abuse if messageid < user[3]: return # 5 or more = percentage increase if count >= 5: # React was removed & added again: don't do anything # New count is smaller than or equal to old max for this message if count <= user[4] and messageid == user[3]: return cursor.execute("UPDATE muttn SET stats = %s, message = %s, highest = %s WHERE userid = %s", (float(user[1]) + (random.randint(2, 50) * count/1000), int(messageid), count, int(userid))) connection.commit() cursor.execute("UPDATE muttn SET count = %s WHERE userid = %s", (int(user[2]) + 1, int(userid),)) connection.commit() def removeMuttn(message): if str(message.author.id) == constants.didierId: return connection = utils.connect() cursor = connection.cursor() user = getOrAddUser(message.author.id) cursor.execute("UPDATE muttn SET count = %s WHERE userid = %s", (int(user[2]) - 1, int(message.author.id),)) connection.commit()