1 changed files with 52 additions and 0 deletions
@ -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() |
|||
Loading…
Reference in new issue