movies-app / functions.py
tmzh
initial commit
6660737
raw
history blame
3.25 kB
import requests
import os
BASE_URL = "https://api.themoviedb.org/3"
API_KEY = os.environ['TMDB_API_KEY']
def query_tmdb(endpoint, params={}):
headers = {
"accept": "application/json",
"Authorization": f"Bearer {API_KEY}"
}
response = requests.get(endpoint, headers=headers, params=params)
return response.json()
def discover_movie(certification=None, certification_gte=None, certification_lte=None,
certification_country=None, include_adult=False, include_video=False,
language="en-US", page=1, primary_release_year=None,
primary_release_date_gte=None, primary_release_date_lte=None,
region=None, release_date_gte=None, release_date_lte=None,
sort_by="popularity.desc", vote_average_gte=None, vote_average_lte=None):
endpoint = f"{BASE_URL}/discover/movie"
params = {
'include_adult': include_adult,
'include_video': include_video,
'language': language,
'page': page,
'sort_by': sort_by
}
# Add optional parameters if they're provided
if certification:
params['certification'] = certification
if certification_gte:
params['certification.gte'] = certification_gte
if certification_lte:
params['certification.lte'] = certification_lte
if certification_country:
params['certification_country'] = certification_country
if primary_release_year:
params['primary_release_year'] = primary_release_year
if primary_release_date_gte:
params['primary_release_date.gte'] = primary_release_date_gte
if primary_release_date_lte:
params['primary_release_date.lte'] = primary_release_date_lte
if region:
params['region'] = region
if release_date_gte:
params['release_date.gte'] = release_date_gte
if release_date_lte:
params['release_date.lte'] = release_date_lte
if vote_average_gte:
params['vote_average.gte'] = vote_average_gte
if vote_average_lte:
params['vote_average.lte'] = vote_average_lte
response = query_tmdb(endpoint, params=params)
return response
def get_movie_details(movie_id, append_to_response=None):
endpoint = f"{BASE_URL}/movie/{movie_id}"
params = {}
response = query_tmdb(endpoint, params=params)
return response
def search_person(query, include_adult=False, language="en-US", page=1):
endpoint = f"{BASE_URL}/search/person"
params = {
'query': query,
'include_adult': include_adult,
'language': language,
'page': page
}
response = query_tmdb(endpoint, params=params)
return response
def get_person_details(person_id, language="en-US", append_to_response=None):
endpoint = f"{BASE_URL}/person/{person_id}"
params = {
'language': language
}
if append_to_response:
params['append_to_response'] = append_to_response
response = query_tmdb(endpoint, params=params)
return response
def get_movie_genres(language="en-US"):
endpoint = f"{BASE_URL}/genre/movie/list"
params = {
'language': language
}
response = query_tmdb(endpoint, params=params)
return response