from maubot import Plugin, MessageEvent from maubot.handlers import command import aiohttp class WeatherBot(Plugin): @command.new("pocasi", help="Zobrazí aktuální počasí pro dané město") async def pocasi(self, evt: MessageEvent, args: str = None) -> None: city = args if args else self.config.get("default_location", "Sokolov") api_key = self.config.get("api_key") if not api_key: await evt.reply("API klíč pro OpenWeatherMap není nastaven.") return url = f"http://api.openweathermap.org/data/2.5/weather?q={city}&appid={api_key}&units=metric&lang=cz" async with aiohttp.ClientSession() as session: async with session.get(url) as resp: if resp.status != 200: await evt.reply(f"Nepodařilo se načíst počasí pro {city}.") return data = await resp.json() try: weather = data["weather"][0]["description"] temp = data["main"]["temp"] wind = data["wind"]["speed"] await evt.reply(f"Počasí v {city}: {temp}°C, {weather}, vítr {wind} m/s") except KeyError: await evt.reply("Chyba při čtení dat z API.")