@@ -43,13 +43,22 @@ async def get_last_challenge(name: str, lang: str):
4343 return last_challenge_solved
4444
4545
46- async def display_lang (db : DatabaseManager , id_discord_server : int , bot : Bot , lang : str ) -> str :
46+ async def display_lang_check (db : DatabaseManager , id_discord_server : int , bot : Bot , lang : str ) -> Tuple [ str , bool ] :
4747 if lang not in LANGS :
48- return add_emoji (bot , f'You need to choose fr/en/de/es as <lang> argument' , emoji3 )
49- if await db .get_server_language (id_discord_server ) == lang :
50- return add_emoji (bot , f'"{ lang } " is already the current language used.' , emoji3 )
48+ return add_emoji (bot , f'You need to choose fr/en/de/es as <lang> argument' , emoji3 ), False
49+ old_lang = await db .get_server_language (id_discord_server )
50+ if old_lang == lang :
51+ return add_emoji (bot , f'"{ lang } " is already the current language used.' , emoji3 ), False
52+ return add_emoji (bot , f'Converting data from "{ old_lang } " to "{ lang } " language, please wait...' , emoji2 ), True
53+
54+
55+ async def display_lang (db : DatabaseManager , id_discord_server : int , bot : Bot , lang : str ) -> str :
56+ users = await db .select_users (id_discord_server )
57+ usernames = [user ['rootme_username' ] for user in users ]
58+ for name in usernames :
59+ last_challenge_solved = await get_last_challenge (name , lang )
60+ await db .update_user_last_challenge (id_discord_server , name , last_challenge_solved )
5161 await db .update_server_language (id_discord_server , lang )
52- # db.rootme_challenges[lang] = get_categories(lang) # update list of challenges with new lang
5362 return add_emoji (bot , f'LANG successfully updated to "{ lang } "' , emoji2 )
5463
5564
@@ -64,7 +73,7 @@ async def display_add_user(db: DatabaseManager, id_discord_server: int, bot: Bot
6473 if await db .user_exists (id_discord_server , name ):
6574 return add_emoji (bot , f'User { name } already exists in team' , emoji5 )
6675 else :
67- last_challenge_solved = await get_solved_challenges (name , lang )
76+ last_challenge_solved = await get_last_challenge (name , lang )
6877 await db .create_user (id_discord_server , name , last_challenge_solved = last_challenge_solved )
6978 return add_emoji (bot , f'User { name } successfully added in team' , emoji2 )
7079
0 commit comments