6 changed files with 135 additions and 0 deletions
@ -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() |
||||
@ -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) |
||||
@ -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") |
||||
@ -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() |
||||
@ -0,0 +1,3 @@ |
|||||
|
python -m venv .venv |
||||
|
.venv\Scripts\activate |
||||
|
(.venv) pip install -r 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…
Reference in new issue