FREE APIS: https://github.com/public-apis/public-apis
# UVOD
## Delovanje dictionary
```python=
import requests
import pprint #pretty print - naredi lepši print dictionaryjev
#dictionary
dict = {"Ime" : "Maša",
"Starost" : 17,
"Zaposlen" : False,
"Siblings" : ["Ančka", "Teja"]
}
print(dict["Ime"], dict["Siblings"][1], dict["Zaposlen"])
print(dict.get("Ime2", 0)) #če tega imena v dict ni, izpiše dano vrednost(0)
```

---------------------------------------------------------------
## Klic random api - karte
API: https://deckofcardsapi.com/
```python=
import requests
import pprint
url = "https://deckofcardsapi.com/api/deck/new/shuffle/?deck_count=1"
#klic api: karte
call = requests.get(url).json()
print(call["deck_id"])
```

---
## klic api - openweather
API: https://openweathermap.org/api
```python=
import requests
import pprint
api_key = "5f5c8f523ca2bf8d20d9babb8676c5f4"
# 46.23280523059815, 14.367835593838434 - kordinate
payload = {"lat" : 46.23280523059815,
"lon" : 14.367835593838434,
"appid" : api_key
}
base_url = "https://api.openweathermap.org/data/2.5/weather"
#base urlju dodamo še določene parametre, da pridemo do podatkov
call = requests.get(base_url, params = payload)
json = call.json()
print(call.url)
print(json)
```

---------------------------------------------------------------
## napaka, če kličes dictionary, ki je v seznamu

### Pogled podnebja v tvojem kraju
API: https://api.openweathermap.org
```python=
import requests
import pprint
api_key = "5f5c8f523ca2bf8d20d9babb8676c5f4"
# 46.23280523059815, 14.367835593838434 - kordinate(Kranj)
payload = {"lat" : 46.23280523059815,
"lon" : 14.367835593838434,
"units" : "metric",
"lang" : "SL",
"appid" : api_key
}
sezMest = []
base_url = "https://api.openweathermap.org/data/2.5/weather"
call = requests.get(base_url, params = payload)
json = call.json()
print(json["weather"][0]["description"])
```

---------------------------------------------------------------
## najvišja temperatura od nekaterih mest
Mesta: Ljubljana, Maribor, Koper, Bled,Celje
API: https://api.openweathermap.org
```python=
import requests
import pprint #pretty print
#sezMest = [mesto, lan, lot]
sezMest = [["Ljubljana", 46.056946, 14.505751], ["Maribor", 46.554650, 15.645881], ["Koper", 45.548059, 13.730188], ["Bled", 46.361618, 14.095287], ["Celje", 46.23092, 15.26044]]
api_key = "5f5c8f523ca2bf8d20d9babb8676c5f4"
def najvisja_temperatura(vsa_mesta, api):
base_url = "https://api.openweathermap.org/data/2.5/weather"
max = float("-inf") #-infinity
#min = float("inf") infinity
for mesto in sezMest:
# posamezno gre čez mesta
payload = {"lat" : mesto[1],
"lon" : mesto[2],
"units" : "metric",
"lang" : "SL",
"appid" : api_key
}
call = requests.get(base_url, params = payload).json()
#pogleda, če je temperatura višja od najvišje
if call["main"]["temp"] > max:
max = call["main"]["temp"]
#poišče mesto z najvišjo temperaturo
for mesto in sezMest:
payload = {"lat" : mesto[1],
"lon" : mesto[2],
"units" : "metric",
"lang" : "SL",
"appid" : api_key
}
call = requests.get(base_url, params = payload).json()
if call["main"]["temp"] == max:
return mesto[0]
print(najvisja_temperatura(sezMest, api_key))
```

---------------------------------------------------------------
## send sms api
```python=
import requests
import pprint #pretty print
url = 'http://www.smsapi.si/poslji-sms'
payload = {"un" : "masa_zvan",
"ps" : "ddf4fb48da8298dae3ac0c49ff9931abb2ef22a6aa",
"from": "031480333",
"to" : "040837950",
"m" : "Helooooo api sms dela",
"cc" : "386"
}
k = requests.get(url, params = payload)
print(k.text)
```
# VAJE
## Vaja 1:
Navodilo: Za vsako število od 1 do 100 s pomočjo API-ja izpiši matematično in trivia dejstvo.
Poskusi urediti pregleden izpis.
API: http://numbersapi.com/
```python=
import requests
# zanka, ki gre od 1-100
for st in range(1, 101):
print(requests.get(f"http://numbersapi.com/{st}/trivia").text)
```

----------------------------------------------------------
## Klici food api
API: https://spoonacular.com/food-api/docs
### random recepie
```python=
import requests
import pprint
apikey = "9db7752df12545b5b1380261af14a1ae"
base_url = "https://api.spoonacular.com/recipes/random"
params = {
"limitLicense": True,
"number": 2,
"apiKey": apikey
}
call = requests.get(base_url, params=params).json()
recipes = call["recipes"]
#okoli po seznamu receptov
for st in range(params["number"]):
pprint.pprint(recipes[st]) #prikazovanje receptov
print("------------------------------------------------")
```

---
### zamenjava za dolocene sestavine
```python=
import requests
import pprint
apikey = "9db7752df12545b5b1380261af14a1ae"
base_url = "https://api.spoonacular.com/food/ingredients/substitutes"
params = {"ingredientName" : "butter",
"apiKey" : apikey
}
call = requests.get(base_url, params=params).json()
pprint.pprint(call)
```

------------------------------------------
### pretvorba iz gram v cups
```python=
import requests
import pprint
apikey = "9db7752df12545b5b1380261af14a1ae"
base_url = "https://api.spoonacular.com/recipes/convert"
params = {"ingredientName" : "flour",
"sourceAmount" : 1,
"sourceUnit" : "grams",
"targetUnit" : "cups",
"apiKey" : apikey
}
call = requests.get(base_url, params=params).json()
pprint.pprint(call["answer"])
```

------------------------------
### sestavina v carbonari
```python=
import requests
import pprint
apikey = "9db7752df12545b5b1380261af14a1ae"
base_url = "https://api.spoonacular.com/recipes/guessNutrition"
params = {"title" : "Carbonara",
"apiKey" : apikey
}
call = requests.get(base_url, params=params).json()
pprint.pprint(call["carbs"])
```

-------------------------------------
### vina, ki pašejo zravn zrezka
```python=
import requests
import pprint
apikey = "9db7752df12545b5b1380261af14a1ae"
base_url = "https://api.spoonacular.com/food/wine/pairing"
params = {"food" : "steak",
"apiKey" : apikey
}
call = requests.get(base_url, params=params).json()
pprint.pprint(call["pairedWines"])
```

## VAJE
1. Seznam vseh sposobnosti poljubnega Pokémona (Uporaba Pokémon API)
2. Iskanje aktivnosti glede na kriterije (Uporaba Bored API)
3. Odkrivanje dejstev o sadju (Uporaba Trefle API)
4. Sledenje Mednarodni vesoljski postaji
├── 4.1 Sledenje lokaciji MVP
└── 4.2 Kako daleč je MVP od mene zdaj? (Zahteva vnos vaše lokacije)
└── Vnesite vašo lokacijo (Zemljepisna širina, Zemljepisna dolžina): [Vnos uporabnika]
5. Prevedite slovensko besedo skozi N prevodov in nazaj v slovenščino
## Navodila
1. **Seznam vseh sposobnosti izbranega Pokemona (Pokémon API):**
Pridobi vse sposobnosti izbranega Pokemona iz Pokémon API-ja. Uporabite API: https://pokeapi.co.
Skripta naj nato izvleče in prikaže seznam sposobnosti, ki jih Pikachu poseduje.
```python=
import requests
import pprint
pokemon = input("Vnesi pokemona: ")
base_url = f"https://pokeapi.co/api/v2/pokemon/{pokemon}"
payload = {
pokemon: pokemon,
}
call = requests.get(base_url).json()
for s in call["abilities"]:
pprint.pprint(s["ability"]["name"])
```

---
2. **Iskanje aktivnosti glede na kriterije (Bored API):**
Ustvarite funkcijo, ki bo sprejela parametre, kot so cena, število ljudi in število aktivnosti, ter uporabila Bored API za iskanje primernih aktivnosti. Uporabite naslovno točko: http://www.boredapi.com. Skripta naj pošlje zahteve na Bored API s podanimi parametri in vrne seznam predlaganih aktivnosti.
```python=
import requests
import pprint
def bored_api(cena, st_ljudi, st_aktivnosti):
base_url = f"https://www.boredapi.com/api/activity"
payload = {
"maxprice": cena,
"participants": st_ljudi,
}
for st in range(st_aktivnosti):
call = requests.get(base_url, params=payload).json()
pprint.pprint(call.get("activity", "Nič ne najdem!"))
cena = int(input("cena: "))
ljudje = int(input("st_ljudi: "))
aktivnosti = int(input("st_aktivnosti: "))
bored_api(cena, ljudje, aktivnosti)
```

---
3. **Odkrivanje dejstev o sadju (Trefle API):**
Napišite skripto, ki omogoča vnos imena sadja in izvedbo iskanja petih zanimivih dejstev o njem prek Trefle API-ja. Uporabite naslovno točko: https://trefle.io. Skripta naj razčleni odgovor API-ja in izvleče informacije, kot so znanstveno ime, družina, rod in druge zanimive podrobnosti. Nato izpiši še 5 poljubnih dejstev o sadju.
```python=
import requests
import pprint
def fruit_api(name):
api = "Qdxddwe4MM3WZgX3pf8YC77RBqqUwGZ5F7Qf74itG-Y"
base_url = "https://trefle.io/api/v1/species/search"
payload = {
"token" : api,
"q" : name
}
call = requests.get(base_url, params = payload).json()
data = call["data"][0]
print(data["common_name"])
print(data["family"])
print(data["scientific_name"])
print(data["genus"])
print(data["image_url"])
name = input("Ime sadja: ")
fruit_api(name)
```
---
4. **Sledenje MVP (Mednarodna vesoljska postaja):**
1. Sledenje lokaciji MVP:
Izpiši trenutno lokacijo MVP.
1. Razdalja do MVP:
Vnesite svojo trenutno lokacijo (zemljepisno širino in dolžino) in izračunajte razdaljo med vašo lokacijo in trenutno lokacijo MVP.
**po spletu poišči kako izračunamo razdaljo med dvema koordinatama**
```python=
```
---
5. **Prevedite slovensko besedo skozi N prevodov in nazaj v slovenščino:**
Ta naloga vključuje večkratno prevajanje slovenske besede in nato povratno prevajanje v slovenščino. Omogočite uporabniku, da določi število prevodov (N) in vpiše besedo za prevajanje. Skripta naj prevede besedo skozi N prevodov (naključnih jezikov) in jo nato ponovno prevede v slovenščino za končni rezultat. Uporabi poljuen API
**implementacija čez katere jezike gre prevod je poljubna.**
```python=
```