Не работают по отдельности @bot.message_handler(content_types=['text'])

Пишу тг бота, добавил два хендлера @bot.message_handler(content_types=['text'])

@bot1.message_handler(commands=['qr'])
def getMessage(message):
    bot1.send_message(message.chat.id, 'Введи ссылку на ресурс, для которого нужно сделать qr-код')

@bot1.message_handler(content_types=['text'])
def start_message(message):
    def make_qrcode(url):
        qrcode=pyqrcode.create(url)
        qrcode.png("QR-Code.png", scale=6)
        with open("QR-Code.png", mode="rb") as file:
            bot1.send_photo(message.chat.id, photo=file)
    if message.text.find("/make")!=-1:
        get_url=message.text.replace("/make ", "")
        make_qrcode(url=get_url)
    else:
        bot.send_message(message.chat.id, "Введите именно /make [url addres]")

и

@bot.message_handler(commands=['weather'])
def getMessage(message):
    bot.send_message(message.chat.id,'Напиши мне название города')

@bot.message_handler(content_types=['text'])
def get_weather(message):
    city=message.text.strip().lower()
    res=requests.get(f'https://api.openweathermap.org/data/2.5/weather?q={city}&appid={API}&units=metric')
    if res.status_code==200:
        data=json.loads(res.text)
        bot.reply_to(message, f'Температура на данный момент составляет {data["main"]["temp"]}°С\nОщущается как {data["main"]["feels_like"]}°C\n'
                              f'Максимальная температура за день составляла {data["main"]["temp_max"]}°С\nМинимальная {data["main"]["temp_min"]}°С\n'
                              f'Скорость ветра на данный момент составляет {data["wind"]["speed"]} м/с\n')
    else:
        bot.reply_to(message, f'Город указан не верно')

Когда я запускаю код и проверяю /qr, то у меня почему-то выполняется код /weather и выводит "Город указан не верно", хотя до этого я не запускал /weather не запускал Что нужно сделать, что бы они работали отдельно? Заранее спасибо!


Ответы (1 шт):

Автор решения: DarthSkyl

Хэндлеры обрабатывают сообщения в порядке очереди. Если у тебя сначала идет хэндлер /weather с последующим getWeather, а потом /qr то все логично

→ Ссылка