64 lines
2.6 KiB
Python
64 lines
2.6 KiB
Python
import sqlite3
|
|
import random
|
|
from data.setup_database import DB_PATH
|
|
|
|
def change_display_name(player_id, new_name):
|
|
connection = sqlite3.connect(DB_PATH)
|
|
cursor = connection.cursor()
|
|
|
|
cursor.execute("UPDATE players SET display_name = ? WHERE id = ?", (new_name, player_id))
|
|
|
|
connection.commit()
|
|
connection.close()
|
|
|
|
|
|
def get_or_create_player(discord_id, discord_name, avatar_url):
|
|
connection = sqlite3.connect(DB_PATH)
|
|
cursor = connection.cursor()
|
|
|
|
# REPARIERT: Wir fragen 4 Dinge ab (id, discord_name, display_name, discord_avatar_url)
|
|
cursor.execute("SELECT id, discord_name, display_name, discord_avatar_url FROM players WHERE discord_id = ?", (discord_id,))
|
|
player = cursor.fetchone()
|
|
|
|
if player is None:
|
|
|
|
# Random Silly Name Generator für neue Spieler. Damit sie angeregt werden ihren richtigen Namen einzutragen.
|
|
def generate_silly_name():
|
|
adjectives = ["Verwirrter", "Blinder", "Heulender", "Zorniger", "Chaos", "Verzweifelter", "Schreiender", "Stolpernder", "Schwitzender"]
|
|
nouns = ["Grot", "Kultist", "Servitor", "Snotling", "Guardmen", "Würfellecker", "Regelvergesser", "Meta-Chaser", "Klebschnüffler"]
|
|
adj = random.choice(adjectives)
|
|
noun = random.choice(nouns)
|
|
return f"{adj} {noun}"
|
|
|
|
silly_name = generate_silly_name()
|
|
cursor.execute("INSERT INTO players (discord_id, discord_name, display_name, discord_avatar_url) VALUES (?, ?, ?, ?)", (discord_id, discord_name, silly_name, avatar_url))
|
|
connection.commit()
|
|
|
|
cursor.execute("SELECT id, discord_name, display_name, discord_avatar_url FROM players WHERE discord_id = ?", (discord_id,))
|
|
player = cursor.fetchone()
|
|
else:
|
|
# Falls sich Name oder Bild auf Discord geändert haben, machen wir ein Update
|
|
cursor.execute("UPDATE players SET discord_name = ?, discord_avatar_url = ? WHERE discord_id = ?", (discord_name, avatar_url, discord_id))
|
|
connection.commit()
|
|
|
|
cursor.execute("SELECT id, discord_name, display_name, discord_avatar_url FROM players WHERE discord_id = ?", (discord_id,))
|
|
player = cursor.fetchone()
|
|
|
|
connection.close()
|
|
return player
|
|
|
|
|
|
def get_all_players():
|
|
connection = sqlite3.connect(DB_PATH)
|
|
cursor = connection.cursor()
|
|
|
|
# Alle Spieler laden, absteigend sortiert nach MMR
|
|
cursor.execute("SELECT id, name, mmr, points, games FROM players ORDER BY mmr DESC")
|
|
players = cursor.fetchall()
|
|
|
|
connection.close()
|
|
|
|
# Die Daten für das Web-GUI in eine lesbare Form umwandeln (Liste von Dictionaries)
|
|
result = []
|
|
|
|
return result |