File size: 1,901 Bytes
6f9f17e 412b542 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
import requests
import gradio as gr
def tum_pokemon_isimleri():
pokemon_isimleri = []
url = "https://pokeapi.co/api/v2/pokemon?limit=100" # İlk 1000 Pokémon'u al
while url:
response = requests.get(url)
data = response.json()
for pokemon in data["results"]:
pokemon_isimleri.append(pokemon["name"])
# Bir sonraki sayfa
url = data["next"]
return pokemon_isimleri
pokemon_isimleri= tum_pokemon_isimleri()
for isim in pokemon_isimleri:
print(isim)
def pokemon_bilgisi(pokemon):
url = f"https://pokeapi.co/api/v2/pokemon/{pokemon.lower()}"
response = requests.get(url)
if response.status_code == 200:
veri = response.json()
isim = veri["name"]
tipler = [tip["type"]["name"] for tip in veri["types"]]
istatistikler = {stat["stat"]["name"]: stat["base_stat"] for stat in veri["stats"]}
resim_url = veri["sprites"]["front_default"] # Pokémon resminin URL'si
# Hem metin hem de resim URL'sini döndürüyoruz
pokemon_bilgisi = f"İsim: {isim}\nTipler: {', '.join(tipler)}\nİstatistikler: {istatistikler}"
return pokemon_bilgisi, resim_url # İki çıkış döndürüyoruz
else:
return "Pokémon bulunamadı veya API isteği başarısız oldu.",None
##gradio
with gr.Blocks() as demo:
pokemon = gr.Dropdown(label="Pokémon Adı", choices=pokemon_isimleri) # Pokémon listesinden seçim
pokemon_bilgisi_output = gr.Textbox(label="Pokémon Bilgisi", interactive=False) # Bilgiyi göstermek için Textbox
pokemon_resim_output = gr.Image(label="Pokémon Resmi", interactive=False) # Pokémon resmini göstermek için Image widget'ı
# Pokémon adı seçildiğinde bilgiyi ve resmi göster
pokemon.select(pokemon_bilgisi, inputs=pokemon, outputs=[pokemon_bilgisi_output, pokemon_resim_output])
demo.launch(share=True) |