63 lines
1.4 KiB
Python
63 lines
1.4 KiB
Python
import requests
|
|
|
|
url = "https://api.unsplash.com/photos/"
|
|
|
|
def query_api(key, page):
|
|
"""
|
|
Llama a la api de unsplash para obtener 20 fotos
|
|
en orden de popularidad
|
|
"""
|
|
data = {
|
|
'client_id': key,
|
|
'per_page': 20,
|
|
'page': page,
|
|
'order_by': 'popular',
|
|
}
|
|
|
|
response = requests.get(url, params=data)
|
|
return response.json()
|
|
|
|
def simplify_data(photos):
|
|
"""
|
|
Simplifica las informacion que entrega en las fotos
|
|
para tener solo lo mas basico necesario
|
|
|
|
el titulo alternativo de la foto, los links mas importantes
|
|
de la foto y los creditos al autor
|
|
"""
|
|
simple = []
|
|
|
|
for photo in photos:
|
|
first_name = photo['user'].get('first_name')
|
|
last_name = photo['user'].get('last_name')
|
|
|
|
if last_name is None:
|
|
last_name = ''
|
|
|
|
full_name = ' '.join([first_name, last_name])
|
|
|
|
simple.append({
|
|
'alt': photo['alt_description'],
|
|
'urls': {
|
|
'full': photo['urls']['full'],
|
|
'small': photo['urls']['small'],
|
|
},
|
|
'credit': {
|
|
'name': full_name,
|
|
'url': photo['user']['links']['html']
|
|
}
|
|
})
|
|
|
|
return simple
|
|
|
|
def get(key, page):
|
|
"""
|
|
Junta todo bien bonito para enviarlo alq ue llame la api
|
|
"""
|
|
photos = query_api(key, page)
|
|
simple = simplify_data(photos)
|
|
return {'results': simple}
|
|
|
|
|
|
|