add TV episode importing
This commit is contained in:
parent
191c3b3374
commit
b5bbe3ae08
1 changed files with 49 additions and 6 deletions
|
@ -124,7 +124,10 @@ def add_item_to_log(item_id, media_type, log) -> None:
|
|||
|
||||
logger.info(f"Processing {item_id}…")
|
||||
|
||||
item, log_to_delete = check_for_existing(item_id, media_type, log)
|
||||
item = None
|
||||
log_to_delete = None
|
||||
if "tv-episodes" != media_type:
|
||||
item, log_to_delete = check_for_existing(item_id, media_type, log)
|
||||
|
||||
if item is None:
|
||||
item = import_by_id(item_id, media_type)
|
||||
|
@ -193,7 +196,7 @@ def import_by_id(import_id, media_type) -> dict:
|
|||
return import_from_tmdb_by_id(import_id, media_type)
|
||||
|
||||
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"]:
|
||||
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"""
|
||||
|
||||
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_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:
|
||||
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)
|
||||
|
||||
# Modify the returned result to add additional data
|
||||
|
|
Loading…
Reference in a new issue