From e73f62bd1904434f7a1b6f620aa6600b5571e6ce Mon Sep 17 00:00:00 2001 From: KubMakCZ Date: Wed, 11 Mar 2026 12:30:38 +0100 Subject: [PATCH] owm_ext --- 28_owmapi_extended/pocasi.py | 68 ++++++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 28_owmapi_extended/pocasi.py diff --git a/28_owmapi_extended/pocasi.py b/28_owmapi_extended/pocasi.py new file mode 100644 index 0000000..4baf60d --- /dev/null +++ b/28_owmapi_extended/pocasi.py @@ -0,0 +1,68 @@ +#pip install requests colorama termcolor +import requests +from colorama import Fore, Style, init +import json + +#inicializace barev z colorama +init(autoreset=True) + +# klíč najdete na https://home.openweathermap.org/api_keys +API_KEY = "cdcbb82b14e8e3e85117686c68e19a5b" + +def ziskej_pocasi(mesto): + """ + Funkce pošle požadavek a vrátí slovník (json) s informacemi + """ + #& = AltGR + C + url1 = "https://api.openweathermap.org/data/2.5/weather" + url2 = f"?q={mesto}&appid={API_KEY}&units=metric&lang=cz" + url = url1 + url2 + print(f"Otevírám: {url}") + try: + response = requests.get(url) + response.raise_for_status() + data = response.json() + return data + except requests.exceptions.HTTPError: + return "Město nebylo nalezeno. Zkontroluj překlepy" + except Exception as e: + return f"Chyba: {e}" + +#podmínka jestli je skript spuštěný jako samostatný skript a ne jako knihovna +if __name__ == "__main__": + print(Fore.CYAN + "--- OpenWeatherMap bot ---") + print("Tento bot ti zjistí aktualní počasí v libovolném městě (možná i vesnici) na světě") + + if API_KEY == "API_KLIC": + print(Fore.RED + "\nPOZOR: Musíš do proměnné API_KEY vložit svůj klíč!!!") + exit() + + while True: + mesto_input = input(Fore.YELLOW + "\nZadej název města (nebo 'q' pro konec): ").strip() + + if mesto_input.lower() in ["q","konec","exit","quit"]: + print("Děkujeme za použití bota") + break + + if mesto_input: + print(f"Zjištuji počasí pro {mesto_input}") + vysledek = ziskej_pocasi(mesto_input) + print("-"*30) + + #pokud vysledek je slovník (čitelný JSON v pythonu) tak máme data o počasí + if isinstance(vysledek,dict): + # nezapomenout na `import json` + # print(json.dumps(vysledek,indent=4,ensure_ascii=False)) + teplota = vysledek["main"]["temp"] + pocitova_teplota = vysledek["main"]["feels_like"] + popis = vysledek["weather"][0]["description"] + vlhkost = vysledek["main"]["humidity"] + + print(f"Město: {Fore.GREEN}{vysledek['name']}") + print(f"Počasí: {Fore.BLUE}{popis}") + print(f"Teplota: {Fore.RED}{teplota}°C") + print(f"Pocitová Teplota: {pocitova_teplota}°C") + print(f"Vlhkost vzduchu: {vlhkost}%") + else: + print(Fore.RED + vysledek) + print("-"*30) \ No newline at end of file