Telegram Bot回复两条或多条消息

时间:2018-05-20 18:03:09

标签: python bots telegram

我正在使用pyTelegramBotAPI。我使用register_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)

0 个答案:

没有答案