1

我正在使用pyTelegramBotAPIregister_next_step_handler(msg, process_name_step) 我按照我的意愿使用它制作了一些功能链。但是,如果我向这个机器人发送来自用户的两条或更多消息而没有等待回答,那么你好开始回答两个或更多回复。我使用 webhooks 和 CherryPy 这是我的代码的一部分:

# Handle '/start'
@bot.message_handler(commands=['start'])
def handle_start(message):
    # get user id
    user_id = message.from_user.id
    # get User
    user = commands.get_user(message)
    # if lng not selected
    if user[6] == 0:
        # set user markup
        user_markup = telebot.types.ReplyKeyboardMarkup(True, False)
        user_markup.row('Русский язык', 'Українська мова')
        msg = bot.send_message(user_id, 'Добрый день, выберите пожалуйста язык бота.\n'
                                        'Добрий день, оберіть будь ласка мову бота.', reply_markup=user_markup)
        bot.register_next_step_handler(msg, lng_select)
    # if lng ru
    elif user[6] == 1:
        message.text = 'ru'
        menu_ru(message)
    # if lng ua
    elif user[6] == 2:
        message.text = 'ua'
        menu_ua(message)



def lng_select(message):
    lng = message.text
    if lng == 'Русский язык':
        commands.set_user_lng(message, 1)
        handle_start(message)
    elif lng == 'Українська мова':
        commands.set_user_lng(message, 2)
        handle_start(message)
    else:
        handle_start(message)


# ru version
def menu_ru(message):
    admin = [(1, 1111111, 1)]
    #get user id
    user_id = message.from_user.id
    # get User
    user = commands.get_user(message)
    user_full_name = ''
    if user[2]:
        user_full_name = ' ' + user[2]
    # get Basket
    basket = commands.make_basket(message)
    if not basket:
        basket = ''
    user_markup = telebot.types.ReplyKeyboardMarkup(True, False)
    user_markup.row('Купить журнал')
    user_markup.row('Подтвердить оплату')
    user_markup.row('Поменять язык')
    if basket:
        user_markup.row('Перейти к заказу')
        user_markup.row('Очистить корзину')
    if message.from_user.id == admin[0][1]:
        user_markup.row('/admin')
    msg = bot.send_message(user_id, 'Добро пожаловать' + user_full_name + '!\n'
                           + basket +
                           'Что бы вы хотели сделать?', reply_markup=user_markup)
    bot.register_next_step_handler(msg, process_menu_ru_step)
4

0 回答 0