Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Ошибка в телеграм боте

Eduardus Профи (506), на голосовании 4 дня назад
Нужна команда /captures не буду обьяснять что зачем как но у меня есть проблема с этой командой


не реагирует на команды и т.п.вопрос что делать

Код бота:
 @bot.message_handler(commands=['capture']) 
def capture_command(message):
# Логируем действие пользователя
log_user_action(message)

# Отправляем сообщение с кнопками
bot_message = bot.send_message(
message.chat.id,
"Вы действительно хотите начать капт?",
reply_markup=initial_markup()
)

# Удаляем команду
bot.delete_message(message.chat.id, message.message_id)

def initial_markup():
inline_keyboard = [[
types.InlineKeyboardButton("Да, начать", callback_data="start_capture"),
types.InlineKeyboardButton("Нет, я передумал", callback_data="cancel_capture")
]]
return types.InlineKeyboardMarkup(inline_keyboard)

@bot.callback_query_handler(func=lambda call: call.data == "start_capture")
def start_capture(call):
username = call.from_user.username if call.from_user.username else "Неизвестный пользователь"
log_message(f"Кнопка 'Да, начать' нажата пользователем @{username}")

# Удаляем предыдущее сообщение
bot.delete_message(call.message.chat.id, call.message.id)

# Информируем о начале капта
capture_message = bot.send_message(
call.message.chat.id,
f"Начинаем капт от: @{username}\nОжидание противоположной банды...",
reply_markup=capture_confirmation_markup() # Добавляем кнопки для подтверждения
)

# Запоминаем ID сообщения для дальнейшего удаления
bot.capture_message_id = capture_message.message_id

def capture_confirmation_markup():
inline_keyboard = [[
types.InlineKeyboardButton("Да, согласен", callback_data="confirm_capture"),
types.InlineKeyboardButton("Не сейчас", callback_data="defer_capture")
]]
return types.InlineKeyboardMarkup(inline_keyboard)

@bot.callback_query_handler(func=lambda call: call.data == "confirm_capture")
def confirm_capture(call):
username = call.from_user.username if call.from_user.username else "Неизвестный пользователь"
# Логируем подтверждение
log_message(f"@{username} принял капт.")

bot.send_message(call.message.chat.id, f"@{username}, ты принял забив.")

# Удаляем сообщения капта
if hasattr(bot, 'capture_message_id'):
bot.delete_message(call.message.chat.id, bot.capture_message_id)

# Удаляем текущий вызов
bot.delete_message(call.message.chat.id, call.message.id)

@bot.callback_query_handler(func=lambda call: call.data == "cancel_capture")
def cancel_capture(call):
bot.delete_message(call.message.chat.id, call.message.id) # Удалить предыдущее сообщение
Голосование за лучший ответ
CausonQ Мудрец (13363) 1 месяц назад
Ну наверное потому что, команда /capture, а не /captures
EduardusПрофи (506) 1 месяц назад
именно на кнопку нажимаю и не реагирует, раньше хоть не реагировало на последнюю а щас вообще
CausonQ Мудрец (13363) Eduardus, у тебя в коде написана команда как /capture. Ты же отправляешь команду /captures. Это разные слова!!!
Похожие вопросы