Бот Telegram не работает с двумя и более людьми - PullRequest
0 голосов
/ 23 апреля 2020

Я пишу простого фиктивного бота Telegram, используя python библиотеку telebot. Он спрашивает пользователя, что такое перевод слова, и реагирует на сообщение пользователя.

Вот пример его работы:

Here is the example of it working

Но оказалось, что иногда это не работает и показывает ошибки like that (перевод пользователя верен, но бот показывает что-то странное)

Основной код ответа:

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 Через некоторое время я понял, что это не работает, когда его используют более одного человека. Кто-нибудь знает, как это исправить?

...