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.")

Хендлеры и функции идут друг за другом, с учетом логики построения и работы бота. хм:)

→ Ссылка