Skip to content
This repository was archived by the owner on Jan 8, 2020. It is now read-only.

Commit b6c6525

Browse files
author
zteeed
committed
Update last_challenge with new language on lang update (#30)
1 parent 75adcd2 commit b6c6525

2 files changed

Lines changed: 19 additions & 7 deletions

File tree

bot_discord/bot/display/embed.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,8 +50,11 @@ async def lang(db: DatabaseManager, context: Context) -> None:
5050
await interrupt(context.message.channel, tosend, embed_color=0xD81948, embed_name="ERROR")
5151
return
5252

53-
tosend = await show.display_lang(db, context.guild.id, context.bot, args[0])
53+
tosend, response = await show.display_lang_check(db, context.guild.id, context.bot, args[0])
5454
await interrupt(context.message.channel, tosend, embed_color=0x16B841, embed_name="Update lang")
55+
if response:
56+
tosend = await show.display_lang(db, context.guild.id, context.bot, args[0])
57+
await interrupt(context.message.channel, tosend, embed_color=0x16B841, embed_name="Update lang")
5558

5659

5760
async def add_user(db: DatabaseManager, context: Context) -> None:

bot_discord/bot/display/show.py

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)