Бот отправляет слово с переводом1 пользователю1
Бот отправляет слово с переводом2 пользователю2
пользователь1 пишет перевод1 - неверно
пользователь2 пишет перевод2 - верно
как бы переводы заменяются, как мне это исправить, я думал как то привязать каждый перевод к отдельному пользователю, но все равно не понимаю как это сделать, помогите пожалуйста, вот код:
import asyncio from aiogram import F from aiogram import Bot,Dispatcher,types from aiogram.utils.keyboard import InlineKeyboardBuilder from aiogram.utils.keyboard import ReplyKeyboardBuilder from aiogram.filters import Command from aiogram.utils.formatting import Text, Bold from lists_words import * import logging import random logging.basicConfig(level=logging.INFO) bot = Bot(bot_token, parse_mode='HTML') dp = Dispatcher() ru_words = [i[1:] for i in all_words] en_words = [i[0] for i in all_words] lang = 'en' count = 0 @dp.message(F.text, Command('start')) async def start_command(message: types.Message, bot: Bot): builder_inline = InlineKeyboardBuilder() builder_reply = ReplyKeyboardBuilder() builder_reply.add(types.KeyboardButton(text = 'Отправка русского слова')) builder_reply.add(types.KeyboardButton(text = 'Отправка английского слова')) content = Text( 'Привет, ', Bold(message.from_user.full_name), '!' ) user_id = """мой id для обратной связи""" chat_info = await bot.get_chat(user_id) if not chat_info.has_private_forwards: builder_inline.row(types.InlineKeyboardButton( text='Связаться с разработчиком', url=f't.me/mytelegram' ) ) await message.answer( **content.as_kwargs(), reply_markup=builder_reply.as_markup(resize_keyboard=True) ) await message.delete() await message.answer( 'Если у вас есть вопросы, то можно', reply_markup=builder_inline.as_markup() ) @dp.message(F.text.lower() == 'отправка русского слова') async def send_ru(message: types.Message): global rand_word_index global lang rand_word_index = random.randint(0, len(ru_words) - 1) word = ', '.join(ru_words[rand_word_index]) lang = 'ru' print('Бот пишет ' + message.from_user.full_name + ': ' + word) await message.answer(f'{word}') @dp.message(F.text.lower() == 'отправка английского слова') async def send_ru(message: types.Message): global rand_word_index global lang rand_word_index = random.randint(0, len(ru_words) - 1) word = en_words[rand_word_index] lang = 'en' print('Бот пишет ' + message.from_user.full_name + ': ' + word) await message.answer(f'{word}') @dp.message(F.text) async def send_translate(message: types.Message): global rand_word_index global lang global count true_or_false_word = False if lang == 'ru': for i in en_words: if i == message.text.lower(): true_or_false_word = True count += 1 await message.answer('✅Верно! Количество верных ответов: '+str(count)) if not true_or_false_word: await message.answer('❌Ответ неверный. Правильный ответ: ' + en_words[rand_word_index]) elif lang == 'en': for i in ru_words[rand_word_index]: if i == message.text.lower(): true_or_false_word = True count += 1 await message.answer('✅Верно! Количество верных ответов: '+str(count)) if not true_or_false_word: await message.answer('❌Ответ неверный. Правильный ответ: ' + ', '.join(ru_words[rand_word_index])) print(message.from_user.full_name + ' отвечает: ' + message.text) async def main(): await bot.delete_webhook(drop_pending_updates=True) await dp.start_polling(bot) if __name__ == '__main__': asyncio.run(main())