После использования handler с пересылом сообщения бот начинает пересылать все сообщения подряд

Рейтинг: 0Ответов: 2Опубликовано: 03.02.2023

Пишу бота с помощью библиотеки telebot Нужно при получении от пользователя крипто кошелька переслать этот кошелек в канал:

@bot.message_handler(func = lambda message: message.text == 'кошелек')
 def takeWal(message: types.Message):
 if message.text == 'кошелек':
                                                               
 bot.forward_message(ChanID, message.chat.id, message.message_id)`

Однако, после того как он пересылает это сообщение в канал, он начинает пересылать туда все подряд:

@bot.message_handler(func = lambda message: message.text == 'кошелек')
def takeWal(message: types.Message):
                                if message.text == 'кошелек':
                                                    bot.forward_message(ChanID, message.chat.id, message.message_id)

@bot.message_handler(chat_types=['private'])
def wallet(message: types.Message):
                                btn_Yes = types.KeyboardButton("Да")
                                btn_No = types.KeyboardButton("Нет")
                                markup.add(btn_Yes, btn_No)
                                bot.send_message(message.chat.id, text="У вас будет ровно 1 час чтобы оплатить заявку. По"
                                                                       " истечении 60 минут, сделка автоматически удаляется."
                                                                       " Вы желаете продолжить?".format(message.from_user), reply_markup=markup)

Так, например, когда я нажимаю на кнопку Да, он пересылает ее в канал(то же самое он делает и с кнопкой Нет).

Как сделать так чтобы он пересылал только то, что нужно и не мешал выполнению остальной части программы?

Ответы

▲ 0

Попробуйте такое условие добавить

if len(k) == k.count(None):
  if re.findall('кошелек', event.message.message):
    pass
  else:
    bot.forward_message(ваш код)
▲ 0

Я не до конца понял что Вы хотите реализовать, но попробуйте после отправки сообщения в нужный Вам чат закрыть доступ.

return

Примерно так:

@bot.message_handler(func = lambda message: message.text == 'кошелек')
def takeWal(message: types.Message):
    if message.text == 'кошелек':
        bot.forward_message(ChanID, message.chat.id, message.message_id)
        return