22
Июл
2021

Исправить код телеграмм бота, чтобы вместо всей информации о погоде можно было выводить( с помощью команд) отдельные данные

import telebot
from pyowm.owm import OWM
from pyowm.utils.config import get_default_config

bot = telebot.TeleBot('1913045520:AAF9g5A3YzN_iJ5iMtsPuDOmZLOC_ostDCk')

@bot.message_handler(commands=['start'])
def hello(message):
    bot.send_message(message.chat.id, 'Добро пожаловать, я бот знающий погоду во всем мире' + '\n' +
    'Чтобы узнать погоду напишите в чат название любого города\n/help - все команды бота')
@bot.message_handler(commands=['help'])
def help(message):
    bot.send_message(message.chat.id, '/start - запуск бота\n/help - команды бота\nНапишите в чат название города для получения информации о погоде')
@bot.message_handler(content_types=['text'])
def test(message):
    try:
        place = message.text
        config_dict = get_default_config()
        config_dict['language'] = 'ru'
        owm = OWM('08773350d0b54db244c618030a729ab6', config_dict)
        mgr = owm.weather_manager()
        observation = mgr.weather_at_place(place)
        w = observation.weather
        t = w.temperature('celsius')
        t1 = t['temp']
        t2 = t['feels_like']
        t3 = t['temp_max']
        t4 = t['temp_min']

        wi = w.wind()['speed']
        humi = w.humidity
        cl = w.clouds
        dt = w.detailed_status
        ti = w.reference_time('iso')
        pr = w.pressure['press']
        vd = w.visibility_distance
        st = w.status


        bot.send_message(message.chat.id, 'В городе ' + str(place) + ' температура ' + str(t1) + ' C' + '\n' +
                         'Максимальная температура ' + str(t3) + 'C' + '\n'+
                         'Минимальная температура ' + str(t4) + 'C' + '\n' +
                         'Ощущается как ' + str(t2) + 'C' + '\n' +
                         'Скорость ветра ' + str(wi) + 'м/с' + '\n' +
                         'Давление ' + str(pr) + 'мм.рт.ст' + '\n' +
                         'Влажность ' + str(humi) + '%' + '\n' +
                         'Видимость ' + str(vd) + 'метров' + '\n'
                         'Статус ' + str(st) + '\n' + str(dt) )

    except:
        bot.send_message(message.chat.id, ' Такой город не найден')
        print(str(message.text), '- не найден')
bot.polling(none_stop=True, interval=0)

Источник: https://ru.stackoverflow.com/questions/1307815/%D0%98%D1%81%D0%BF%D1%80%D0%B0%D0%B2%D0%B8%D1%82%D1%8C-%D0%BA%D0%BE%D0%B4-%D1%82%D0%B5%D0%BB%D0%B5%D0%B3%D1%80%D0%B0%D0%BC%D0%BC-%D0%B1%D0%BE%D1%82%D0%B0-%D1%87%D1%82%D0%BE%D0%B1%D1%8B-%D0%B2%D0%BC%D0%B5%D1%81%D1%82%D0%BE-%D0%B2%D1%81%D0%B5%D0%B9-%D0%B8%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D0%B8%D0%B8-%D0%BE-%D0%BF%D0%BE%D0%B3%D0%BE%D0%B4%D0%B5-%D0%BC%D0%BE%D0%B6%D0%BD%D0%BE-%D0%B1%D1%8B%D0%BB%D0%BE-%D0%B2

Тебе может это понравится...

Добавить комментарий