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