Spaces:
Sleeping
Sleeping
| import requests | |
| from dotenv import load_dotenv | |
| import os | |
| import random | |
| load_dotenv() # Load the environment variables from the .env file | |
| def performSearch(api_url, api_key, query, itemsPerPage,page): | |
| headers = { | |
| 'Authorization': api_key, | |
| # Add any other headers required by the API | |
| } | |
| try: | |
| api_url += f"?query={query}&per_page={itemsPerPage}&page={page}" | |
| response = requests.get(api_url, headers=headers) | |
| response.raise_for_status() | |
| data = response.json() | |
| return data | |
| except requests.exceptions.RequestException as e: | |
| print(f"Error occurred: {e}") | |
| def performQueries(req): | |
| api_url = os.environ.get('PEXELENDPOINT') | |
| api_key = os.environ.get('PEXELSAPI') | |
| results = [] | |
| for i in range(0,len(req['queries'])): | |
| query = " ".join(req['queries'][i]['keywords']) | |
| per_page = req['queries'][i]['num_images'] | |
| if('curPage' in req['queries'][i]): | |
| page = int(req['queries'][i]['curPage']+1) | |
| else: | |
| page = int(req['queries'][i]['page'])+1 | |
| res = performSearch(api_url, api_key, query, per_page, page) | |
| results+=res['photos'] | |
| return results | |
| #except: | |
| # return {"error":"unable to execute query for images"} | |
| #Example usage: | |
| def incrementPages(obj, initialPage): | |
| freqs = {} | |
| for entry in obj['queries']['queries']: | |
| val = freqs.get(entry['id'],0) | |
| freqs.update({entry['id']:val+1}) | |
| for entry in obj['queries']['queries']: | |
| val = freqs.get(entry['id'],False) | |
| if(val): | |
| entry['curPage']=entry['page']+val*initialPage | |
| else: | |
| return {"error":"Error while incrementing query pages"} | |
| return obj |