Browse Source

pokracovani

master
Jakub Škrabánek 4 weeks ago
parent
commit
acbfeffee0
  1. 21
      21_requests_p2/chucknoris.py
  2. 23
      21_requests_p2/dadzjokes.py
  3. 23
      21_requests_p2/main.py
  4. 48
      21_requests_p2/pokemon_api_obrazek.py
  5. 3
      21_requests_p2/poznamky.txt
  6. 17
      21_requests_p2/requirements.txt

21
21_requests_p2/chucknoris.py

@ -0,0 +1,21 @@
import requests
from termcolor import colored
def get_cnj():
print("--- Nahodný vtip o Chucku Norrisovi ---")
url = "https://api.chucknorris.io/jokes/random"
try:
#odeslání požadavku na "url"
response = requests.get(url)
#čekání na odpovědi od "url"
response.raise_for_status()
#zpracování dat na JSON
data = response.json()
#print(f"RAWDATA:{data}")
print(colored(f"JOKE:{data["value"]}","yellow"))
except Exception as e:
print(f"Chyba:{e}")
if __name__ == "__main__":
get_cnj()

23
21_requests_p2/dadzjokes.py

@ -0,0 +1,23 @@
import requests
from termcolor import colored
import time
def get_dad_joke():
print ("--- Nahodný dad džouk ---")
url = "https://icanhazdadjoke.com"
headers = {
"Accept":"application/json",
"User-Agent" : "Python example for programming lessons"
}
try:
response = requests.get(url,headers=headers)
response.raise_for_status()
data =response.json()
print(colored(f"\n{data["joke"]}\n","green"))
except Exception as e:
print(f"chyba:{e}")
if __name__ == "__main__":
for i in range(5):
get_dad_joke()
time.sleep(3)

23
21_requests_p2/main.py

@ -0,0 +1,23 @@
import dadzjokes
import chucknoris
import pokemon_api_obrazek
print("Vítej v programu na testování API")
print("-"*50)
while True:
print("\n1) vypiš dad džouk")
print("2) vypiš chuck noris džouk")
print("3) vypiš a zobraz náhodného pokémona")
print("4) ukonči program")
volba = input("volba 1/2/3/4:")
if(volba == "1"):
dadzjokes.get_dad_joke()
elif(volba== "2"):
chucknoris.get_cnj()
elif(volba == "3"):
pokemon_api_obrazek.nahodny_pokemon()
elif(volba == "4"):
break
else:
print("Špatný výběr")

48
21_requests_p2/pokemon_api_obrazek.py

@ -0,0 +1,48 @@
#pip install matplotlib pillow termcolor requests
import requests
import random
import os
from io import BytesIO #pro vytvoření "virtualního souboru" v paměti RAM
import matplotlib.pyplot as plt
from PIL import Image
from termcolor import colored
def nahodny_pokemon():
print("-- Generator nahodného pokémona (PokeAPI) ---")
poke_id = random.randint(1,151)
url = f"https://pokeapi.co/api/v2/pokemon/{poke_id}"
print(f"Hledám data pro pokémona ID: {colored(poke_id,"green")}")
try:
response = requests.get(url)
response.raise_for_status()
data = response.json()
jmeno = data["name"].capitalize() #první písmeno velké na začátku slova
#obrazek_url = data["sprites"]["front_default"]
obrazek_url = data["sprites"]["other"]["official-artwork"]["front_default"]
print(f"objevil se {colored(jmeno,"green")}!!!")
if obrazek_url:
print(f"stahuji obrazek pro {colored(jmeno,"red")}")
img_response = requests.get(obrazek_url) #požádáme o data
img_response.raise_for_status() #čekáme na odpověd
img_data = BytesIO(img_response.content) #odpověd si uložíme do paměti jako virtualní soubor
img = Image.open(img_data)#virtualní soubor otevřeme jako obrázek
print(f"zobrazuji obrázek pro {colored(jmeno,"blue")}")
plt.figure(figsize=(5,5))
plt.imshow(img)
plt.title(jmeno)
plt.axis("off") #skryje osy
plt.show() #zde se kod zastavi, dokud uživatel nezavře okno
print("Okno zavřeno, pokračuji...")
else:
print("obrazek není k dispozici")
except Exception as e:
print(f"chyba při komunikaci: {e}")
if __name__ == "__main__":
for i in range(3):
nahodny_pokemon()

3
21_requests_p2/poznamky.txt

@ -0,0 +1,3 @@
python -m venv .venv
.venv\Scripts\activate
(.venv) pip install -r requirements.txt

17
21_requests_p2/requirements.txt

@ -0,0 +1,17 @@
certifi==2026.1.4
charset-normalizer==3.4.4
contourpy==1.3.3
cycler==0.12.1
fonttools==4.61.1
idna==3.11
kiwisolver==1.4.9
matplotlib==3.10.8
numpy==2.4.2
packaging==26.0
pillow==12.1.0
pyparsing==3.3.2
python-dateutil==2.9.0.post0
requests==2.32.5
six==1.17.0
termcolor==3.3.0
urllib3==2.6.3
Loading…
Cancel
Save