Помогите с тг ботом на питоне(telebot)
Пытался сделать бота для пересылки сообщений, но надо чтобы он это делал только после команды, а если команды не было, то чтобы отвечал иначе. сейчас он отвечает на команду, а потом не знает и не пересылает. Я пытался вводить переменную, но она не помогла :(
(дальше код)
API_TOKEN = ...
# ID группы, куда будут пересылаться сообщения
GROUP_CHAT_ID = ...
bot = telebot.TeleBot(API_TOKEN)
@bot.message_handler(commands=['start'])
def send_welcome(message):
bot.reply_to(message, Вот что я умею: тут допишу
@bot.message_handler(commands=['отправить'])
def handle_proposal_command(message):
bot.reply_to(message, "Отправьте ваше сообщение, и оно будет переслано в группу.")
@bot.message_handler(func=lambda message: True)
def handle_message(message):
if message.text and message.chat.type == "private":
bot.forward_message(GROUP_CHAT_ID, message.chat.id, message.message_id)
bot.reply_to(message, "Ваше сообщение было отправлено")
@bot.message_handler(func=lambda message: True)
def echo_message(message):
bot.reply_to(message, "Извини, я не знаю что ты имел ввиду.")
bot.polling(none_stop=True)
import telebot
API_TOKEN = 'YOUR_API_TOKEN'
GROUP_CHAT_ID = YOUR_GROUP_CHAT_ID
bot = telebot.TeleBot(API_TOKEN)
# Словарь для хранения состояния пользователей.
# Ключ — user_id, значение True если бот ожидает сообщение для пересылки
waiting_forward = {}
@bot.message_handler(commands=['start'])
def send_welcome(message):
bot.reply_to(message, "Вот что я умею: /отправить - отправить сообщение в группу.")
@bot.message_handler(commands=['отправить'])
def handle_proposal_command(message):
# Помечаем, что данный пользователь ожидает отправку сообщения
waiting_forward[message.chat.id] = True
bot.reply_to(message, "Отправьте ваше сообщение, и оно будет переслано в группу.")
@bot.message_handler(func=lambda message: True)
def handle_message(message):
# Если пользователь ожидает сообщение для пересылки и сообщение пришло в личном чате
if waiting_forward.get(message.chat.id, False) and message.chat.type == "private":
try:
bot.forward_message(GROUP_CHAT_ID, message.chat.id, message.message_id)
bot.reply_to(message, "Ваше сообщение было отправлено.")
except Exception as e:
bot.reply_to(message, f"Ошибка при пересылке сообщения: {e}")
# Сбрасываем ожидание
waiting_forward[message.chat.id] = False
else:
bot.reply_to(message, "Извини, я не знаю что ты имел ввиду.")
bot.polling(none_stop=True)