43 lines
904 B
Python
43 lines
904 B
Python
# Copyright (c) 2021, Frappe Technologies Pvt. Ltd. and Contributors
|
|
# See license.txt
|
|
|
|
import frappe
|
|
|
|
base_url = "https://api.unsplash.com"
|
|
|
|
|
|
def get_by_keyword(keyword):
|
|
data = make_unsplash_request(f"/search/photos?query={keyword}")
|
|
return data.get("results")
|
|
|
|
|
|
def get_list():
|
|
return make_unsplash_request("/photos")
|
|
|
|
|
|
def get_random(params=None):
|
|
query_string = ""
|
|
for key, value in params.items():
|
|
query_string += f"{key}={value}&"
|
|
return make_unsplash_request(f"/photos/random?{query_string}")
|
|
|
|
|
|
def make_unsplash_request(path):
|
|
unsplash_access_key = frappe.db.get_single_value("LMS Settings", "unsplash_access_key")
|
|
if not unsplash_access_key:
|
|
return
|
|
|
|
import requests
|
|
|
|
url = f"{base_url}{path}"
|
|
res = requests.get(
|
|
url,
|
|
headers={
|
|
"Accept-Version": "v1",
|
|
"Authorization": f"Client-ID {unsplash_access_key}",
|
|
},
|
|
)
|
|
res.raise_for_status()
|
|
data = res.json()
|
|
return data
|