mirror of https://github.com/stijndcl/didier
77 lines
2.2 KiB
Python
77 lines
2.2 KiB
Python
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()
|
|
|