По задумке в блоке try клавиатура должна была закрыться, но она не закрылась)))
Сильно не ругайте, я ещё совсем новичек в Python.
Заранее большое спасибо!
keyboard = types.ReplyKeyboardMarkup(row_width=1, resize_keyboard=True)
button_city = types.KeyboardButton(text="Ввести назву свого міста")
button_geo = types.KeyboardButton(text="Відправити геолокацію", request_location=True)
keyboard.add(button_city, button_geo)
hideBoard = types.ReplyKeyboardRemove()
@bot.message_handler(commands=['help'])
def help(message):
bot.send_message(message.chat.id, '/start - Запуск бота\n/help - Команди бота\n Для того,' +
'щоб дізнатися погоду напишіть назву свого міста, або відправте свою геолокацію')
@bot.message_handler(commands=['start'])
def start (message):
bot.send_message(message.chat.id, 'Мої вітання, ' + str(message.from_user.first_name) + '! ' + '\n' +
'Я TeleWeatherBot' + '\n' +
'Я допоможу тоді дізнатися погоду в потрібному місті ☀️☁️☔️❄️' )
msg = bot.send_message(message.chat.id, 'Для початку введи назву свого міста, або відправте свою геолокацію :', reply_markup=keyboard)
bot.register_next_step_handler(msg, cityconfirm)
def cityconfirm(message):
if message.text == 'Ввести назву свого міста':
msg = bot.send_message(message.chat.id, 'Введіть назву свого міста')
bot.register_next_step_handler(msg, getweather)
elif message.text:
msg = bot.send_message(message.chat.id, 'Натисніть на потрібну для вас кнопку!')
bot.register_next_step_handler(msg, cityconfirm)
def getweather(message):
try:
city_name = message.text
params = {'APPID': api_weather, 'q': city_name, 'units': 'metric', 'lang': 'ru'}
result = requests.get(url, params=params)
weather = result.json()
if weather["main"]['temp'] < 10:
status = "Зараз холодно!"
bot.send_message(message.chat.id, 'добре', remply_markup=ReplyKeyboardRemove(remove_keyboard = True))
except:
msg = bot.send_message(message.chat.id, "Місто " + city_name + " не знайдено!" + "\n"
"Введіть назву міста заново, або відправте геолокацію")
bot.register_next_step_handler(msg, getweather)
if __name__ == '__main__':
bot.polling(none_stop=True, interval = 0)