add TV episode importing
This commit is contained in:
parent
191c3b3374
commit
b5bbe3ae08
1 changed files with 49 additions and 6 deletions
|
@ -124,6 +124,9 @@ def add_item_to_log(item_id, media_type, log) -> None:
|
||||||
|
|
||||||
logger.info(f"Processing {item_id}…")
|
logger.info(f"Processing {item_id}…")
|
||||||
|
|
||||||
|
item = None
|
||||||
|
log_to_delete = None
|
||||||
|
if "tv-episodes" != media_type:
|
||||||
item, log_to_delete = check_for_existing(item_id, media_type, log)
|
item, log_to_delete = check_for_existing(item_id, media_type, log)
|
||||||
|
|
||||||
if item is None:
|
if item is None:
|
||||||
|
@ -193,7 +196,7 @@ def import_by_id(import_id, media_type) -> dict:
|
||||||
return import_from_tmdb_by_id(import_id, media_type)
|
return import_from_tmdb_by_id(import_id, media_type)
|
||||||
|
|
||||||
if media_type in ["tv-episodes"]:
|
if media_type in ["tv-episodes"]:
|
||||||
return # import_from_tvdb_by_id(import_id, media_type)
|
return import_from_tmdb_by_imdb_id(import_id, media_type)
|
||||||
|
|
||||||
if media_type in ["books"]:
|
if media_type in ["books"]:
|
||||||
return import_from_openlibrary_by_id(
|
return import_from_openlibrary_by_id(
|
||||||
|
@ -201,9 +204,52 @@ def import_by_id(import_id, media_type) -> dict:
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
def import_from_tmdb_by_id(tmdb_id, media_type) -> dict:
|
def import_from_tmdb_by_imdb_id(imdb_id, media_type) -> dict:
|
||||||
"""Retrieve a film, TV show or TV episode from TMDB using an IMDB ID"""
|
"""Retrieve a film, TV show or TV episode from TMDB using an IMDB ID"""
|
||||||
|
|
||||||
|
api_url = f"https://api.themoviedb.org/3/find/{imdb_id}"
|
||||||
|
|
||||||
|
# Sending API request
|
||||||
|
response = requests.get(
|
||||||
|
api_url,
|
||||||
|
headers={"Authorization": f"Bearer {TMDB_API_KEY}"},
|
||||||
|
params={"external_source": "imdb_id"},
|
||||||
|
timeout=15
|
||||||
|
)
|
||||||
|
|
||||||
|
# Process the response
|
||||||
|
if 200 == response.status_code:
|
||||||
|
logger.debug(response.status_code)
|
||||||
|
|
||||||
|
elif 429 == response.status_code:
|
||||||
|
time.sleep(2)
|
||||||
|
return import_from_tmdb_by_imdb_id(imdb_id, media_type)
|
||||||
|
|
||||||
|
else:
|
||||||
|
raise Exception(f"Error {response.status_code}: {response.text}")
|
||||||
|
|
||||||
|
key = ""
|
||||||
|
if "tv-episodes" == media_type:
|
||||||
|
key = "tv_episode_results"
|
||||||
|
elif "tv-series" == media_type:
|
||||||
|
key = "tv_results"
|
||||||
|
elif "films" == media_type:
|
||||||
|
key = "movie_results"
|
||||||
|
|
||||||
|
response_data = json.loads(response.text)[key][0]
|
||||||
|
if response_data == None:
|
||||||
|
raise Exception(f"Nothing found for IMDB ID {imdb_id}!")
|
||||||
|
|
||||||
|
# Modify the returned result to add additional data
|
||||||
|
return cleanup_result(response_data, media_type)
|
||||||
|
|
||||||
|
|
||||||
|
def import_from_tmdb_by_id(tmdb_id, media_type) -> dict:
|
||||||
|
"""Retrieve a film, TV show or TV episode from TMDB using an TMDB ID"""
|
||||||
|
|
||||||
|
if "tv-episodes" == media_type:
|
||||||
|
raise Exception("TV Episodes are TODO!")
|
||||||
|
|
||||||
api_path = "movie" if "films" == media_type else "tv"
|
api_path = "movie" if "films" == media_type else "tv"
|
||||||
api_url = f"https://api.themoviedb.org/3/{api_path}/{tmdb_id}"
|
api_url = f"https://api.themoviedb.org/3/{api_path}/{tmdb_id}"
|
||||||
|
|
||||||
|
@ -223,9 +269,6 @@ def import_from_tmdb_by_id(tmdb_id, media_type) -> dict:
|
||||||
else:
|
else:
|
||||||
raise Exception(f"Error {response.status_code}: {response.text}")
|
raise Exception(f"Error {response.status_code}: {response.text}")
|
||||||
|
|
||||||
if "tv-episodes" == media_type:
|
|
||||||
raise Exception("TV Episodes are TODO!")
|
|
||||||
|
|
||||||
response_data = json.loads(response.text)
|
response_data = json.loads(response.text)
|
||||||
|
|
||||||
# Modify the returned result to add additional data
|
# Modify the returned result to add additional data
|
||||||
|
|
Loading…
Reference in a new issue