diff --git a/addons/weather/__init__.py b/addons/weather/__init__.py new file mode 100644 index 0000000..e0acb2f --- /dev/null +++ b/addons/weather/__init__.py @@ -0,0 +1,9 @@ +def register(dp, state, bot): + from . import handlers + + handlers.register_handlers(dp, state, bot) + + +def unregister(dp): + # Здесь можно удалить хендлеры, если нужно + dp.message_handlers.handlers.clear() diff --git a/addons/weather/api.py b/addons/weather/api.py new file mode 100644 index 0000000..f8c6e7f --- /dev/null +++ b/addons/weather/api.py @@ -0,0 +1,11 @@ +import requests + +def get_weather(city: str): + return requests.get(f"https://api.weatherapi.com/v1/current.json?key=becad22574854f91aea163009261703&q={city}&aqi=no").json() + +if __name__ == "__main__": + print(get_weather("Minsk")['location']['name']) + print(get_weather("Minsk")['current']['temp_c']) + print(get_weather("Minsk")['current']['condition']["text"]) + print(get_weather("Minsk")['current']['wind_kph']) + print(str(get_weather("Minsk")['current']['humidity'])+"%") \ No newline at end of file diff --git a/addons/weather/handlers.py b/addons/weather/handlers.py new file mode 100644 index 0000000..8f2acef --- /dev/null +++ b/addons/weather/handlers.py @@ -0,0 +1,20 @@ +from aiogram import Dispatcher, Bot +from aiogram.filters import Command +from aiogram.types import Message +from .api import get_weather + + +def register_handlers(dp: Dispatcher, state, bot: Bot): + @dp.message(Command("weather")) + async def weather(message: Message): + weather_data = get_weather("Minsk") + + await message.answer( + f"🌍 *Погода в городе {weather_data['location']['name']}*\n\n" + f"🌡 *Температура:* {weather_data['current']['temp_c']}°C\n" + f"☁️ *Состояние:* {weather_data['current']['condition']['text']}\n" + f"💨 *Ветер:* {weather_data['current']['wind_kph']} км/ч\n" + f"💧 *Влажность:* {weather_data['current']['humidity']}%\n\n" + f"📅 *Обновлено:* {weather_data['current']['last_updated']}", + parse_mode="Markdown" + ) \ No newline at end of file diff --git a/bot/core.py b/bot/core.py index 0e6f059..496cc9e 100644 --- a/bot/core.py +++ b/bot/core.py @@ -27,7 +27,7 @@ class TelegramBot: self.addons.load("send_message") self.addons.load("poll") self.addons.load("hello") - # self.addons.load("draw") + self.addons.load("weather") self.addons.load("gpt") self.addons.load("rule34") # self.addons.load("todo")