import sys import time import discord import re import sqlite3 def travle(message : discord.message, reverse): if reverse == True: reverse = -1 else: reverse = 1 conn = sqlite3.connect('stats.db') cursor = conn.cursor() PATTERN = r"#travle.* #[0-9]+ (\+([0-9]+)|\(([0-9]+) away\)) ?(\(Perfect\))?" COLORED_PATTERN = r"(?:🟥|🟩|✅|🟧)+" match = re.match(PATTERN, message.content.strip()) total_guesses = 0 total_games = 0 wins = 0 sync_time = 0 perfects = 0 new_sync_time = (int)(time.mktime(message.created_at.timetuple())) cursor.execute('''SELECT * FROM TRAVLE WHERE NAME = ?''', (message.author.id,)) data = cursor.fetchone() if data: total_games = data[1] wins = data[2] perfects = data[3] total_guesses = data[6] sync_time = data[8] if sync_time > new_sync_time and reverse == 1: return guesses = match.group(2) if guesses: if match.group(4): perfects += 1 total_guesses += int(guesses) * reverse wins += 1 * reverse else: colored_match = re.search(COLORED_PATTERN, message.content.strip()) guesses = int(match.group(3)) guesses += str(colored_match).count('🟥') total_guesses += guesses total_games += 1 * reverse if wins == 0: average_guesses = 0 else: average_guesses = total_guesses / wins win_rate = (wins / total_games) * 100 perfect_rate = (perfects / total_games) * 100 cursor.execute('''INSERT OR REPLACE INTO TRAVLE VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?)''', (message.author.id,total_games,wins,perfects,win_rate,perfect_rate,total_guesses,average_guesses,new_sync_time)) conn.commit() conn.close()