message_handler(content_types=["text"]) не выключается и продолжает сканировать сообщения
Не могу понять как выключить message_handler(content_types=["text"]) чтобы он больше не сканировал поступаемые сообщения, я перепробовал несколько методов решения этой проблемы но никакой не сработал.
@bot.message_handler(commands=['mon'])
def mon (message):
bot.send_message(message.chat.id, "Пиши расписание:")
@bot.message_handler(content_types=["text"])
def mondayRed (messageg):
global monday
monday = messageg.text
bot.reply_to(messageg, 'расписание изменено на: \n' + monday)
print(monday)
return monday
@bot.message_handler(commands=['done'])
def blabla (masage):
bot.send_message(masage.chat.id, "всё готово, всё сохранено.")
я думаю что @bot.message_handler(content_types=["text"]) продолжает сканировать поток сообщений, и из за это дане не переходит на другую функцию @bot.message_handler(commands=['done']) (она создана для проверки). Буду крайне признателен если вы поможете, ведь мучаюсь с этой проблемой уже достаточно времени
Ответы (1 шт):
Автор решения: tomato-magnet-regulato
→ Ссылка
Так никто не пишет:) хендлер в функции?? Вот примеры из документации:
@bot.message_handler(commands=['start', 'help'])
def command_help(message):
bot.reply_to(message, "Hello, did someone call for help?")
# Handles all messages which text matches the regex regexp.
# See https://en.wikipedia.org/wiki/Regular_expression
# This regex matches all sent url's.
@bot.message_handler(regexp='((https?):((//)|(\\\\))+([\w\d:#@%/;$()~_?\+-=\\\.&](#!)?)*)')
def command_url(message):
bot.reply_to(message, "I shouldn't open that url, should I?")
# Handle all sent documents of type 'text/plain'.
@bot.message_handler(func=lambda message: message.document.mime_type == 'text/plain', content_types=['document'])
def command_handle_document(message):
bot.reply_to(message, "Document received, sir!")
# Default command handler. A lambda expression which always returns True is used for this purpose.
@bot.message_handler(func=lambda message: True, content_types=['audio', 'video', 'document', 'text', 'location', 'contact', 'sticker'])
def default_command(message):
bot.reply_to(message, "This is the default command handler.")
Хендлеры и функции идут друг за другом, с учетом логики построения и работы бота. хм:)