В телеграм боте на python telebot появляется ошибка при вводе данных. Если кто знает подскажите в чём причина ошибки?
Есть бот погоды. Пользователю предлагается ввести город, далее появляется меню: на сегодня, на завтра, неделя. В итоге бот отдаёт в двух переменных толко выбранный отрезок времени: сегодня, завира, неделя а выбранный город не выводит. Если кто знает в чем причина подскажите...Ниже приведу отрезок кода:
bot = telebot.TeleBot(TOKEN)
# Клавиатура с выбором города
city_keyboard = telebot.types.ReplyKeyboardMarkup(row_width=2)
city_keyboard.add('Москва', 'Санкт-Петербург', 'Новосибирск', 'Екатеринбург', 'Казань', 'Нижний Новгород')
# Клавиатура с выбором дня недели
day_keyboard = telebot.types.ReplyKeyboardMarkup(row_width=2)
day_keyboard.add('Сегодня', 'Завтра')
# Обработчик команды /start
@bot.message_handler(commands=['start'])
def start(message):
bot.send_message(message.chat.id, 'Привет! Я бот погоды. Выбери город:', reply_markup=city_keyboard)
# Обработчик выбора города
@bot.message_handler(
func=lambda message: message.text in ['Москва', 'Санкт-Петербург', 'Новосибирск', 'Екатеринбург', 'Казань',
'Нижний Новгород'])
def day(message):
bot.send_message(message.chat.id, 'Выбери день недели:', reply_markup=day_keyboard)
bot.register_next_step_handler(message, weather)
# Обработчик выбора дня недели
def weather(message):
city = message.text
if message.text == 'Сегодня':
diy = 'сегодня'
elif message.text == 'Завтра':
diy = 'завтра'
url = f'https://meteolabs.org/погода_{city.lower()}/{diy}/'
print(city)
print(day)
data = requests.get(url).text
block = BeautifulSoup(data, 'lxml')
haeds = block.find('h1', class_='h1')
name = (haeds.text.strip())
print(name)
# bot.reply_to(message, name)
zoan = block.find('p', class_='icon-calendar heading_date')
# print(zoan.text.strip())
gloos = (zoan.text.strip())
seoss = name
seoss += ' ' + gloos
bot.send_message(message.chat.id, seoss)
bot.send_message(mess.chat.id, seoss)
# bot.send_message(mess.chat.id, name)
# bot.send_message(mess.chat.id, gloos)
params = block.find('div', class_='wthSBlockWrapper').find_all('div', class_='wthSBlock wthSBlock_list')
# print(params[0].text.strip())
# print(params[1].text.strip())
for i in params:
# bot.send_message(mess.chat.id, i.text.strip())
dann = i.text.strip()
bot.send_message(message.chat.id, dann)
bot.send_message(message.chat.id, dann)
# Запуск бота
bot.polling(none_stop=True)