pytelegrambot, не работает пересылка вместе с другими функциями
создал телеграм бота, который выполняет некоторые функции. под вкладкой текст, я так же сделал пересылку сообщений себе в телеграм. проверил с другом, и как оказалось, работает только по запчастям, а точнее - либо отдельно пересылка любого сообщения, либо лишь выполнение ответов на кнопки и тд. как можно это починить? код:
import telebot
from telebot import types
token='токен'
bot=telebot.TeleBot(token)
TO_CHAT_ID = айди чата для пересылки
@bot.message_handler(commands=['start'])
def start(message):
markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
btn1 = types.KeyboardButton("Информация")
btn2 = types.KeyboardButton("Заказать фигурку")
markup.add(btn1, btn2)
@bot.message_handler(content_types=['text'])
def func(message):
if(message.text == "Информация"):
bot.send_message(message.chat.id, text="Доброго времени суток, вы попали в бота для заказа фигурок. Как закать фигурку? Очень просто. Для этого достаточно нажать на кнопку 'Заказать фигурку', а далее просто заполнить форму, которую вам выдаст после нажатия на кнопку.")
elif(message.text == "Заказать фигурку"):
bot.send_message(message.chat.id, text="Привет, для заказа фигурки заполните следующую форму: 1. Какую фигурку вы хотите заказать, 2. Ссылка на ваш телеграм аккаунт, или пользовательское имя в форме @username для связи")
def all_messages(message):
bot.forward_message(TO_CHAT_ID, message.chat.id, message.message_id)
bot.polling(none_stop=True)
тут код закончился, как видим, bot.forward_message(TO_CHAT_ID, message.chat.id, message.message_id) стоит в конце блока text'a, но если переставить в начало этого блока - работает лишь пересылка как я и говорил, сейчас в боте работают лишь команды, а пересылка - нет
Ответы (1 шт):
Message_handler - это декоратор, который может работать ТОЛЬКО с 1 функцией. Ты никак 2 функции с 1 декоратором не запустишь. Но здесь можно поступить так - all_messages помести после отправки каждого сообщения. Исправленный код -
import telebot
from telebot import types
token='токен'
bot=telebot.TeleBot(token)
TO_CHAT_ID = айди чата для пересылки
@bot.message_handler(commands=['start'])
def start(message):
markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
btn1 = types.KeyboardButton("Информация")
btn2 = types.KeyboardButton("Заказать фигурку")
markup.add(btn1, btn2)
@bot.message_handler(content_types=['text'])
def func(message):
all_messages(message)
if(message.text == "Информация"):
bot.send_message(message.chat.id, text="Доброго времени суток, вы попали в бота для заказа фигурок. Как закать фигурку? Очень просто. Для этого достаточно нажать на кнопку 'Заказать фигурку', а далее просто заполнить форму, которую вам выдаст после нажатия на кнопку.")
elif(message.text == "Заказать фигурку"):
bot.send_message(message.chat.id, text="Привет, для заказа фигурки заполните следующую форму: 1. Какую фигурку вы хотите заказать, 2. Ссылка на ваш телеграм аккаунт, или пользовательское имя в форме @username для связи")
def all_messages(message):
bot.forward_message(TO_CHAT_ID, message.chat.id, message.message_id)
bot.polling(none_stop=True)