Не работают по отдельности @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 то все логично