diff --git a/LichessClientTG_bot/bot.py b/LichessClientTG_bot/bot.py index 2af41e8..afe7ec4 100644 --- a/LichessClientTG_bot/bot.py +++ b/LichessClientTG_bot/bot.py @@ -263,10 +263,13 @@ class LichessBot: async def start_and_addgamer(self, update: Update, context: ContextTypes.DEFAULT_TYPE): """Start command that shows welcome message and starts addgamer conversation""" try: + # Clear any existing conversation state + if context and hasattr(context, "user_data"): + context.user_data.clear() # Run the regular start command await self.start(update, context) - # Start addgamer conversation and return state - return await self.addgamer_start(update, context) + # Start addgamer conversation + await self.addgamer_start(update, context) except Exception as e: logger.error(f"Error in start_and_addgamer: {e}") import traceback @@ -275,7 +278,6 @@ class LichessBot: await update.message.reply_text(f"Error: {e}") except: pass - return ConversationHandler.END async def addgamer_start(self, update: Update, context: ContextTypes.DEFAULT_TYPE): """Start addgamer command - simple username only""" @@ -292,7 +294,7 @@ class LichessBot: # Mark that we are awaiting a username reply if context and hasattr(context, "user_data"): context.user_data['awaiting_addgamer_username'] = True - await update.message.reply_text(t('addgamer_prompt', lang)) + await update.message.reply_text(t('addgamer_prompt', lang), parse_mode='HTML') logger.info(f"Addgamer prompt sent to user {user_id}") self.counters.increment('addgamer') except Exception as e: diff --git a/LichessClientTG_bot/i18n.py b/LichessClientTG_bot/i18n.py index 8e21413..58cb218 100644 --- a/LichessClientTG_bot/i18n.py +++ b/LichessClientTG_bot/i18n.py @@ -44,7 +44,7 @@ TRANSLATIONS = { ), # Add gamer commands - 'addgamer_prompt': "👤 Enter the Lichess username of the player to track:", + 'addgamer_prompt': "👤 Enter the Lichess username of the player to track:", 'addtoken_prompt': ( "🔑 Enter the Lichess API token to get puzzle data.\n" "The token is created in profile settings — give it only puzzle:read permission.\n" @@ -52,7 +52,7 @@ TRANSLATIONS = { ), 'token_added': "✅ Token added for player {username}!", 'gamer_added_with_token': "✅ Player {username} added with token!", - 'gamer_added': "✅ Player {username} successfully added!\n\n🔗 Profile: {username}\n\nTo add another player, use /addgamer", + 'gamer_added': "✅ Player {username} successfully added!\n\n🔗 Profile: {username}\n\nTo add another player, use /addgamer", 'invalid_token': "❌ Invalid token. Please try again.", 'token_username_error': "❌ Failed to get username from token. Please try again.", 'empty_username': "❌ Username cannot be empty. Please try again.", @@ -167,7 +167,7 @@ TRANSLATIONS = { ), # Add gamer commands - 'addgamer_prompt': "👤 Введите username игрока Lichess для отслеживания:", + 'addgamer_prompt': "👤 Введите username игрока Lichess для отслеживания:", 'addtoken_prompt': ( "🔑 Введите токен API Lichess для получения данных по пазлам.\n" "Токен создается в настройках профиля — дайте ему только разрешение puzzle:read.\n" @@ -175,7 +175,7 @@ TRANSLATIONS = { ), 'token_added': "✅ Токен добавлен для игрока {username}!", 'gamer_added_with_token': "✅ Игрок {username} добавлен с токеном!", - 'gamer_added': "✅ Игрок {username} успешно добавлен!\n\n🔗 Профиль: {username}\n\nДля добавления следующего игрока воспользуйтесь /addgamer", + 'gamer_added': "✅ Игрок {username} успешно добавлен!\n\n🔗 Профиль: {username}\n\nДля добавления следующего игрока воспользуйтесь /addgamer", 'invalid_token': "❌ Неверный токен. Попробуйте еще раз.", 'token_username_error': "❌ Не удалось получить username из токена. Попробуйте еще раз.", 'empty_username': "❌ Username не может быть пустым. Попробуйте еще раз.",