Skip to content

Commit 1a3ab06

Browse files
committed
formatage
1 parent ddbe77f commit 1a3ab06

File tree

8 files changed

+180
-131
lines changed

8 files changed

+180
-131
lines changed
883 Bytes
Binary file not shown.

app/admin_command.py

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,23 +2,22 @@
22
from error_embed import chat_Oops
33
import discord
44

5-
async def ban(interaction: discord.Interaction, member: discord.Member, reason:str, article: str):
5+
6+
async def ban(interaction: discord.Interaction, member: discord.Member, reason: str, article: str):
67
try:
78
await discord.Member.ban(reason=reason, article=article)
8-
9+
910
embed = discord.Embed(
10-
title=f"Le membre {member} à été banni!",
11-
description="Zoup dehors",
12-
color=EMBED_COLOR_RED
13-
)
11+
title=f"Le membre {member} à été banni!",
12+
description="Zoup dehors",
13+
color=EMBED_COLOR_RED
14+
)
1415

1516
embed.set_footer(text=EMBED_FOOTER_TEXT, icon_url=EMBED_THUMBNAIL)
1617
embed.set_thumbnail(url=interaction.user.display_avatar.url)
1718
embed.set_image(url=EMBED_IMAGE)
1819

1920
await interaction.response.send_message(embed=embed, ephemeral=False)
20-
21+
2122
except ValueError:
2223
chat_Oops(interaction)
23-
24-

app/classement.py

Lines changed: 37 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
from config import logger, EMBED_COLOR_RED, EMBED_THUMBNAIL, EMBED_FOOTER_TEXT, EMBED_IMAGE
66
import pronos as pr
77

8+
89
def load_json_file(path):
910
"""Charge un fichier JSON, retourne un dict vide si fichier absent ou invalide."""
1011
if not os.path.exists(path):
@@ -17,6 +18,7 @@ def load_json_file(path):
1718
logger.error(f"Erreur lors du chargement du fichier {path}: {e}")
1819
return {}
1920

21+
2022
def match_position(entry: str, target: str, threshold: int) -> bool:
2123
"""Compare les noms avec tolérance, utilise fuzzy matching sur prénom ou nom."""
2224
parts = entry.strip().split(' ', 1)
@@ -34,6 +36,7 @@ def match_position(entry: str, target: str, threshold: int) -> bool:
3436
return (fuzz.ratio(target_prenom.lower(), prenom.lower()) >= 90 or
3537
fuzz.ratio(target_nom.lower(), nom.lower()) >= threshold)
3638

39+
3740
def save_results(race_type):
3841
"""
3942
race_type doit être une des chaînes : 'Qualif', 'CourseSprint', 'Course'
@@ -48,11 +51,13 @@ def save_results(race_type):
4851
barem = load_json_file('data/Barem.json')
4952

5053
if not results or not pronos or not barem:
51-
logger.info("Fichiers nécessaires absents ou invalides, arrêt de la fonction.")
54+
logger.info(
55+
"Fichiers nécessaires absents ou invalides, arrêt de la fonction.")
5256
return
5357

5458
if race_type not in barem:
55-
logger.error(f"Type de course '{race_type}' non supporté dans le barème.")
59+
logger.error(
60+
f"Type de course '{race_type}' non supporté dans le barème.")
5661
return
5762

5863
bar = barem[race_type]
@@ -69,61 +74,73 @@ def save_results(race_type):
6974

7075
logger.info(f"Calcul des points pour l'utilisateur {key} ({pseudo})")
7176

72-
premier_in_top3 = premier in [user_pronos.get('1', ''), user_pronos.get('2', ''), user_pronos.get('3', '')]
73-
second_in_top3 = second in [user_pronos.get('1', ''), user_pronos.get('2', ''), user_pronos.get('3', '')]
74-
troisieme_in_top3 = troisieme in [user_pronos.get('1', ''), user_pronos.get('2', ''), user_pronos.get('3', '')]
77+
premier_in_top3 = premier in [user_pronos.get(
78+
'1', ''), user_pronos.get('2', ''), user_pronos.get('3', '')]
79+
second_in_top3 = second in [user_pronos.get(
80+
'1', ''), user_pronos.get('2', ''), user_pronos.get('3', '')]
81+
troisieme_in_top3 = troisieme in [user_pronos.get(
82+
'1', ''), user_pronos.get('2', ''), user_pronos.get('3', '')]
7583

7684
premier_correct = match_position(user_pronos.get('1', ''), premier, 90)
7785
second_correct = match_position(user_pronos.get('2', ''), second, 90)
78-
troisieme_correct = match_position(user_pronos.get('3', ''), troisieme, 90)
86+
troisieme_correct = match_position(
87+
user_pronos.get('3', ''), troisieme, 90)
7988

8089
all_correct = premier_correct and second_correct and troisieme_correct
8190

8291
if all_correct:
8392
points += bar.get('allCorrect', 0)
84-
logger.info(f"Tout juste pour {pseudo}, +{bar.get('allCorrect', 0)} pts")
93+
logger.info(
94+
f"Tout juste pour {pseudo}, +{bar.get('allCorrect', 0)} pts")
8595
else:
8696
if premier_correct:
8797
points += bar.get('correctPosition', 0)
88-
logger.info(f"Premier à la bonne place pour {pseudo}, +{bar.get('correctPosition', 0)} pts")
98+
logger.info(
99+
f"Premier à la bonne place pour {pseudo}, +{bar.get('correctPosition', 0)} pts")
89100
elif premier_in_top3:
90101
points += bar.get('inTop3', 0)
91-
logger.info(f"Premier dans le top 3 pour {pseudo}, +{bar.get('inTop3', 0)} pts")
102+
logger.info(
103+
f"Premier dans le top 3 pour {pseudo}, +{bar.get('inTop3', 0)} pts")
92104

93105
if second_correct:
94106
points += bar.get('correctPosition', 0)
95-
logger.info(f"Deuxième à la bonne place pour {pseudo}, +{bar.get('correctPosition', 0)} pts")
107+
logger.info(
108+
f"Deuxième à la bonne place pour {pseudo}, +{bar.get('correctPosition', 0)} pts")
96109
elif second_in_top3:
97110
points += bar.get('inTop3', 0)
98-
logger.info(f"Deuxième dans le top 3 pour {pseudo}, +{bar.get('inTop3', 0)} pts")
111+
logger.info(
112+
f"Deuxième dans le top 3 pour {pseudo}, +{bar.get('inTop3', 0)} pts")
99113

100114
if troisieme_correct:
101115
points += bar.get('correctPosition', 0)
102-
logger.info(f"Troisième à la bonne place pour {pseudo}, +{bar.get('correctPosition', 0)} pts")
116+
logger.info(
117+
f"Troisième à la bonne place pour {pseudo}, +{bar.get('correctPosition', 0)} pts")
103118
elif troisieme_in_top3:
104119
points += bar.get('inTop3', 0)
105-
logger.info(f"Troisième dans le top 3 pour {pseudo}, +{bar.get('inTop3', 0)} pts")
120+
logger.info(
121+
f"Troisième dans le top 3 pour {pseudo}, +{bar.get('inTop3', 0)} pts")
106122

107123
if key not in leaderboard:
108124
leaderboard[key] = {"Pseudo": pseudo, "Points": points}
109125
else:
110126
leaderboard[key]["Points"] += points
111127

112-
113128
try:
114129
with open(leaderboard_path, 'w', encoding='utf-8') as f:
115130
json.dump(leaderboard, f, ensure_ascii=False, indent=4)
116-
logger.info(f"Leaderboard mis à jour avec {len(leaderboard)} utilisateurs.")
131+
logger.info(
132+
f"Leaderboard mis à jour avec {len(leaderboard)} utilisateurs.")
117133
except Exception as e:
118134
logger.error(f"Erreur lors de la sauvegarde du leaderboard: {e}")
119-
120-
135+
136+
121137
def Leaderboard():
122138
try:
123139
with open("data/Leaderbord.json", 'r', encoding='utf-8') as f:
124140
pointsPronos = json.load(f)
125141
pronosLeaderboard = dict(
126-
sorted(pointsPronos.items(), key=lambda item: item[1]['Points'], reverse=True)
142+
sorted(pointsPronos.items(),
143+
key=lambda item: item[1]['Points'], reverse=True)
127144
)
128145
except FileNotFoundError:
129146
logger.info("The file doesn't exist")
@@ -148,7 +165,8 @@ def Leaderboard():
148165

149166
# Extraction sécurisée des pseudos et points
150167
try:
151-
pseudos, points = zip(*[(val['Pseudo'], val['Points']) for val in pronosLeaderboard.values()])
168+
pseudos, points = zip(*[(val['Pseudo'], val['Points'])
169+
for val in pronosLeaderboard.values()])
152170
except ValueError:
153171
logger.info("Erreur lors de l'extraction des pseudos et points.")
154172
return None

app/config.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,5 @@
6060

6161
# === Environment variable ===
6262

63-
PRONOS_ID=1395093933176131755
63+
PRONOS_ID = 1395093933176131755
6464
GUILD_ID = 1394054995523010761
65-

app/error_embed.py

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,8 @@ async def chat_you_dont_have_perm(interaction: discord.Interaction):
1414
embed.set_image(url=EMBED_IMAGE)
1515

1616
await interaction.response.send_message(embed=embed, ephemeral=True)
17-
17+
18+
1819
async def chat_Oops(interaction: discord.Interaction):
1920
embed = discord.Embed(
2021
title=f"Désolé {interaction.user} !",
@@ -27,7 +28,8 @@ async def chat_Oops(interaction: discord.Interaction):
2728
embed.set_image(url=EMBED_IMAGE)
2829

2930
await interaction.response.send_message(embed=embed, ephemeral=True)
30-
31+
32+
3133
async def info_embed(message: str, interaction: discord.Interaction):
3234
role = interaction.guild.get_role(PRONOS_ID)
3335
embed = discord.Embed(
@@ -73,6 +75,7 @@ async def Error(interaction: discord.Interaction, erreur: str):
7375
embed=embed
7476
)
7577

78+
7679
async def no_prono(interaction: discord.Interaction):
7780
embed = discord.Embed(
7881
title="❌ Oups, on dirait que tu n'as pas fais de pronos",
@@ -86,12 +89,13 @@ async def no_prono(interaction: discord.Interaction):
8689
ephemeral=True,
8790
embed=embed
8891
)
89-
92+
93+
9094
async def rules(interaction: discord.Interaction):
9195
embed = discord.Embed(
92-
title="📕 Règlement de Formula 1 France BOT",
93-
description=f"{interaction.user.name}, en utilisant ce bot vous acceptez automatiquement les règles ci-dessous.",
94-
color=EMBED_COLOR_RED,
96+
title="📕 Règlement de Formula 1 France BOT",
97+
description=f"{interaction.user.name}, en utilisant ce bot vous acceptez automatiquement les règles ci-dessous.",
98+
color=EMBED_COLOR_RED,
9599
)
96100

97101
embed.add_field(
@@ -139,5 +143,5 @@ async def rules(interaction: discord.Interaction):
139143
embed.set_footer(text=EMBED_FOOTER_TEXT, icon_url=EMBED_THUMBNAIL)
140144
embed.set_thumbnail(url=interaction.user.display_avatar.url)
141145
embed.set_image(url=EMBED_IMAGE)
142-
146+
143147
await interaction.followup.send(embed=embed, ephemeral=True)

0 commit comments

Comments
 (0)