diff --git a/20_requests/chucknoris.py b/20_requests/chucknoris.py new file mode 100644 index 0000000..17b0610 --- /dev/null +++ b/20_requests/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() \ No newline at end of file diff --git a/20_requests/dadzjokes.py b/20_requests/dadzjokes.py new file mode 100644 index 0000000..d808ff3 --- /dev/null +++ b/20_requests/dadzjokes.py @@ -0,0 +1,19 @@ +import requests +from termcolor import colored +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__": + get_dad_joke() \ No newline at end of file diff --git a/20_requests/pokemon_api_obrazek.py b/20_requests/pokemon_api_obrazek.py new file mode 100644 index 0000000..476083d --- /dev/null +++ b/20_requests/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 nahodhjné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() \ No newline at end of file diff --git a/20_requests/poznamky.txt b/20_requests/poznamky.txt new file mode 100644 index 0000000..3a7e911 --- /dev/null +++ b/20_requests/poznamky.txt @@ -0,0 +1,7 @@ +mkdir 20_requests +cd 20_requests +python -m venv .venv +.venv\Scripts\activate +pip install requests +pip install termcolor +pip install pillow matplotlib \ No newline at end of file diff --git a/20_requests/requirements.txt b/20_requests/requirements.txt new file mode 100644 index 0000000..4a1c70d --- /dev/null +++ b/20_requests/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