Browse Source

api app

master
Jakub Škrabánek 4 weeks ago
parent
commit
d764d9f1f2
  1. 21
      23_pokemon_requests/chuck_norris_jokes.py
  2. 27
      23_pokemon_requests/dad_jokes.py
  3. 30
      23_pokemon_requests/main.py
  4. 17
      23_pokemon_requests/pokemon_lib.py
  5. 5
      23_pokemon_requests/poznamky.txt

21
23_pokemon_requests/chuck_norris_jokes.py

@ -0,0 +1,21 @@
import requests
from termcolor import colored
def get_cnj():
print("---Náhodný vtip o Chucku Norrisovi---")
url = "https://api.chucknorris.io/jokes/random"
try:
#odelsaní jednoduchého GET požadavku
response = requests.get(url)
#kontrola žda požadavek proběhl úspěšně
response.raise_for_status()
data = response.json()
print(f"\n{colored(data['value'],"yellow")}")
#vtip = data["value"]
#print(f"{vtip}")
except Exception as e:
print(f"chyba:{e}")
if __name__ == "__main__":
get_cnj()

27
23_pokemon_requests/dad_jokes.py

@ -0,0 +1,27 @@
import requests
from termcolor import colored
def get_dad_joke():
print("---Náhodný vtip (icanhazdadjoke.com)---")
url = "https://icanhazdadjoke.com/"
headers = {
"Accept": "application/json",
"User-Agent" : "Python example for students"
}
try:
#odelsaní jednoduchého GET požadavku
response = requests.get(url, headers=headers)
#kontrola žda požadavek proběhl úspěšně
response.raise_for_status()
data = response.json()
print(f"\n{colored(data['joke'],"green")}")
#vtip = data["joke"]
#print(f"{vtip}")
except Exception as e:
print(f"chyba:{e}")
if __name__ == "__main__":
get_dad_joke()

30
23_pokemon_requests/main.py

@ -0,0 +1,30 @@
#import pokemon_lib
from pokemon_lib import nahodny_pokemon
from chuck_norris_jokes import get_cnj
from dad_jokes import get_dad_joke
print("Vítej v apilakci pro demonstraci API rozhraní")
while True:
print("\n--------------------")
print("Vyber si možnost:")
print("1) zobraz náhodného pokémona")
print("2) zobraz náhodný dad joke")
print("3) zobraz náhodný vtip o Chucku norrisovi")
print("4) konec")
vyber = input("Napiš tvůj výber 1/2/3/4:")
pocet_opakovani = int(input("Kolik chceš opakování (zadej čislo):"))
if(vyber == "1"):
for i in range(pocet_opakovani):
nahodny_pokemon()
elif (vyber == "2"):
for i in range(pocet_opakovani):
get_dad_joke()
elif(vyber == "3"):
for i in range(pocet_opakovani):
get_cnj()
elif(vyber == "4"):
break
else:
print("Špatný výběr")

17
23_pokemon_requests/pokemon.py → 23_pokemon_requests/pokemon_lib.py

@ -5,6 +5,7 @@ import os
from io import BytesIO #modul pro vytvoření virtualního souboru v RAM
from PIL import Image
from termcolor import colored
import matplotlib.pyplot as plt
def nahodny_pokemon():
print("--- Generátor náhodného Pokémona ---")
@ -23,7 +24,8 @@ def nahodny_pokemon():
jmeno = data["name"].capitalize()
vaha_kg = data["weight"] / 10
vyska_m = data["height"] / 10
obrazek_url = data["sprites"]["front_default"]
#obrazek_url = data["sprites"]["front_default"]
obrazek_url = data["sprites"]["other"]["official-artwork"]["front_default"]
typy = [t["type"]["name" ] for t in data["types"]]
#výpis
@ -39,14 +41,25 @@ def nahodny_pokemon():
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í..")
#zobrazení pomocí Matplitlib
plt.figure(figsize=(5,5))
plt.imshow(img)
plt.title(jmeno)
plt.axis("off")
plt.show()
print("okno zavřeno, pokračuji")
else:
print("\n Obrázek není k dispozici")
except Exception as e:
print("chyba: {e}")
print(f"chyba: {e}")
if __name__ == "__main__":
nahodny_pokemon()

5
23_pokemon_requests/poznamky.txt

@ -0,0 +1,5 @@
mkdir 23_pokemon_requests
cd 23_pokemon_requests
python -m venv .venv
.venv\Scripts\activate
(.venv) pip install matplotlib pillow requests
Loading…
Cancel
Save