После функции узнаванием погоды в городе, не работает следующая функция.
#telegram bot test v2.0
import telebot
from telebot import types
import requests
import pyowm
#токены
bot = telebot.TeleBot(" вставьте токен ")
owm = "467ea980ff4abba25b2437e0536e9372"
url = 'http://api.openweathermap.org/data/2.5/weather'
#- - - - - - - - - - - - - - - -
#start
@bot.message_handler(commands=['start'])
def handle_start(message):
bot.send_message(message.chat.id, "Приветствую, студент.")
bot.send_message(message.chat.id, "Ты попал в чат-бот Беловского педагогического колледжа.")
bot.send_message(message.chat.id, "Напишите /help чтобы ознакомиться с функциями или выберите пункт меню.")
#- - - - - - - - - - - - - - - -
#help
@bot.message_handler(commands=['help'])
def handle_help(message):
bot.send_message(message.chat.id, "Напиши /weather чтобы узнать погоду.\n /keyboard")
#- - - - - - - - - - - - - - - -
#keyboard
@bot.message_handler(commands=['keyboard','start'])
def hendler_keyboard(message):
kb = types.ReplyKeyboardMarkup(True)
kb.row('Звонки')
kb.row('☔️ Погода ☀️')
bot.send_message(message.chat.id,"Выберите пункт меню:" , reply_markup=kb)
# bot.send_message(message.chat.id, 'К сожалению я еще не умею читать текст. Воспользуйтесь главным меню:', reply_markup=kb) #Отправка меню
#bot.send_message(message.chat.id, "Выберите пункт меню:", reply_markup=markup) - Эта строка вообще лишняя, главное меню отправляется строкой выше.
#- - - - - - - - - - - - - - - -
#weather
@bot.message_handler(content_types=['text'])
def handle_weather(message):
city_name = "Белово"
wet = ['Погода','погода','/weather']
for weathers in wet: #для погод в погоде
if weathers in message.text:
try:
params = {'APPID': owm, 'q': city_name, 'units': 'metric', 'lang': 'ru'}
result = requests.get(url, params=params)
weather = result.json()
if weather["main"]['temp'] < 10:
status = "прохладно!"
elif weather["main"]['temp'] < 20:
status = "тепло!"
elif weather["main"]['temp'] > 38:
status = "жарко!"
elif weather["main"]['temp'] > -10:
status = "холодно!"
elif weather["main"]['temp'] > -20:
status = "очень холодно!"
else:
status = ""
bot.send_message(message.chat.id, "В " + str(weather["name"]) +" сейчас " + status + "\n"
"Температура в районе: " + str(float(weather["main"]['temp'])) + "°C \n" +
"Скорость ветра: " + str(float(weather['wind']['speed'])) + " м/с \n" +
"Давление: " + str(float(weather['main']['pressure'])) + " hPa \n" +
"Влажность: " + str(int(weather['main']['humidity'])) + "% \n\n" +
"За окном " + str(weather['weather'][0]["description"]) + ".")
except:
bot.send_message(message.chat.id, "")
#- - - - - - - - - - - - - - - -
#rings
@bot.message_handler(content_types=['text'])
def handle_rings(message):
rig = ['Звонки','звонки','Звонок','/rings','звонок']
for rings in rig: #для погод в погоде
if rings in message.text:
bot.send_message(message.chat.id, "Звонки работают")
#чтобы не выключался
if __name__ == '__main__':
bot.polling(none_stop=True)
#- - - - - - - - - - - - - - - -