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)