diff --git a/23_pokemon_requests/pokemon.py b/23_pokemon_requests/pokemon.py new file mode 100644 index 0000000..97a6750 --- /dev/null +++ b/23_pokemon_requests/pokemon.py @@ -0,0 +1,52 @@ +#pip install matplotlib pillow requests termcolor +import requests +import random +import os +from io import BytesIO #modul pro vytvoření virtualního souboru v RAM +from PIL import Image +from termcolor import colored + +def nahodny_pokemon(): + print("--- Generátor náhodného Pokémona ---") + poke_id = random.randint(1,151) + url = f"https://pokeapi.co/api/v2/pokemon/{poke_id}" + print(f"Začínám hledat pokemona s id:{colored(poke_id,"blue")}") + try: + #odeslání požadavku + response = requests.get(url) + response.raise_for_status() + + #zpracování dat + data = response.json() + + #zpracujeme detaily (pokeapi vrací decimety a hektogramy) + jmeno = data["name"].capitalize() + vaha_kg = data["weight"] / 10 + vyska_m = data["height"] / 10 + obrazek_url = data["sprites"]["front_default"] + typy = [t["type"]["name" ] for t in data["types"]] + + #výpis + print(f"Objevil se {colored(jmeno,"green")}") + print("-----------------------------------------") + print(f"Typ: {typy}") + print(f"Výška: {vyska_m} m") + print(f"Váha: {vaha_kg} kg") + print(f"Obrázek: {obrazek_url}") + + #Stažení a zobrazení obrázku + if obrazek_url: + print(f"Stahuji obrázek pro {jmeno}...") + img_response = requests.get(obrazek_url) + img_response.raise_for_status() + #načtení obrázku do paměti a otevření z paměti (Bez ukládání na disk) + image_data = BytesIO(img_response.content) + img = Image.open(image_data) + print(f"Zobrazuji obrázek. Zavřete okno pro pokračování..") + + + except Exception as e: + print("chyba: {e}") + +if __name__ == "__main__": + nahodny_pokemon()