movies-app / functions.py
tmzh
different system message for reasoning vs tool use chains
90d520c
raw
history blame contribute delete
No virus
1.98 kB
import json
import requests
import os
import logging
BASE_URL = "https://api.themoviedb.org/3"
API_KEY = os.environ['TMDB_API_KEY']
# Set up logging
logging.basicConfig(level=logging.INFO)
def query_tmdb(endpoint, params={}):
headers = {
"accept": "application/json",
"Authorization": f"Bearer {API_KEY}"
}
response = requests.get(endpoint, headers=headers, params=params)
# Log the response
logging.debug(
f"Response from {endpoint}:\n{json.dumps(response.json(), indent=4)}")
return response.json()
def discover_movie(include_adult=False, include_video=False, language="en-US", page=1, sort_by="popularity.desc", **kwargs):
endpoint = f"{BASE_URL}/discover/movie"
params = {}
for key, value in kwargs.items():
if value is not None:
params[key] = value
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