Я пишу простого фиктивного бота Telegram, используя python библиотеку telebot. Он спрашивает пользователя, что такое перевод слова, и реагирует на сообщение пользователя.
Вот пример его работы:
Но оказалось, что иногда это не работает и показывает ошибки (перевод пользователя верен, но бот показывает что-то странное)
Основной код ответа:
reply = message.text
used[key] = True
eng = eng_ru_words[key]
if reply in eng and reply != '':
bot.send_message(message.chat.id, "Oh yes, you're right.")
if '' not in eng:
bot.send_message(message.chat.id, "Also check the {} option: '{}'.".format(
"US" if eng[0] == reply else "UK", eng[1] if eng[0] == reply else eng[0]
))
else:
if '' in eng:
bot.send_message(message.chat.id, "Oh no, you are wrong.\nThe right answer is '{}'.".format(eng[0] if eng[0] != '' else eng[1]))
else:
bot.send_message(message.chat.id, "Oh no, you are wrong.\nThe right answer is"
" '{}'(US) or '{}'(UK)".format(eng[0], eng[1]))
if not check(message):
key = ""
else:
while used[key]:
key = random.choice(words)
bot.send_message(message.chat.id, "What is an English (or American) equivalent for the '{}'?".format(key))
Полный код ( около 120 строк) здесь: https://github.com/Dannypa/English-Dummy-Bot/blob/master/TestButTeleBot.py Через некоторое время я понял, что это не работает, когда его используют более одного человека. Кто-нибудь знает, как это исправить?