chefle-bot/gamelogic/chrono.py
2025-01-22 11:48:51 -08:00

71 lines
1.5 KiB
Python

import sys
import time
import discord
import re
import sqlite3
def chrono(message : discord.message, reverse):
if reverse == True:
reverse = -1
else:
reverse = 1
conn = sqlite3.connect('stats.db')
cursor = conn.cursor()
PATTERN = r"(.) CHRONO ?#[0-9]+"
total_guesses = 0
total_games = 0
wins = 0
sync_time = 0
new_sync_time = (int)(time.mktime(message.created_at.timetuple()))
cursor.execute('''SELECT * FROM CHRONO WHERE NAME = ?''', (message.author.id,))
data = cursor.fetchone()
if data:
total_games = data[1]
wins = data[2]
total_guesses = data[4]
sync_time = data[6]
if sync_time > new_sync_time and reverse == 1:
return
match = re.search(PATTERN, message.content.strip())
guesses = match.group(1)
match guesses:
case "🥇":
guesses = 1
case "🥈":
guesses = 2
case "🥉":
guesses = 3
case _:
guesses = 4
total_guesses += int(guesses) * reverse
if(guesses < 4):
wins += 1 * reverse
total_games += 1 * reverse
if wins != 0:
average_guesses = total_guesses / wins
else:
average_guesses = 0
win_rate = (wins / total_games) * 100
cursor.execute('''INSERT OR REPLACE INTO CHRONO VALUES(?, ?, ?, ?, ?, ?, ?)''',
(message.author.id,total_games,wins,win_rate,total_guesses,average_guesses,new_sync_time))
conn.commit()
conn.close()