Top.Mail.Ru
Ответы

Помогите с тг ботом на питоне(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)

По дате
По рейтингу
Аватар пользователя
Оракул
4мес
12345678910111213141516171819202122232425262728293031323334353637
 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)