mirror of
https://github.com/meisnate12/Plex-Meta-Manager
synced 2024-09-20 06:22:07 +00:00
moved convert_from_imdb to config
This commit is contained in:
parent
288fa7ecba
commit
38fba77bce
5 changed files with 68 additions and 117 deletions
|
@ -62,7 +62,7 @@ class AniDBAPI:
|
|||
return anidb_values
|
||||
raise Failed(f"AniDB Error: No valid AniDB IDs in {anidb_list}")
|
||||
|
||||
def get_items(self, method, data, language, status_message=True):
|
||||
def get_items(self, config, method, data, language, status_message=True):
|
||||
pretty = util.pretty_names[method] if method in util.pretty_names else method
|
||||
if status_message:
|
||||
logger.debug(f"Data: {data}")
|
||||
|
@ -80,9 +80,10 @@ class AniDBAPI:
|
|||
movie_ids = []
|
||||
for anidb_id in anime_ids:
|
||||
try:
|
||||
tmdb_id = self.convert_from_imdb(self.convert_anidb_to_imdb(anidb_id))
|
||||
if tmdb_id: movie_ids.append(tmdb_id)
|
||||
else: raise Failed
|
||||
for imdb_id in self.convert_anidb_to_imdb(anidb_id):
|
||||
tmdb_id, _ = config.convert_from_imdb(imdb_id, language)
|
||||
if tmdb_id: movie_ids.append(tmdb_id)
|
||||
else: raise Failed
|
||||
except Failed:
|
||||
try: show_ids.append(self.convert_anidb_to_tvdb(anidb_id))
|
||||
except Failed: logger.error(f"AniDB Error: No TVDb ID or IMDb ID found for AniDB ID: {anidb_id}")
|
||||
|
@ -91,36 +92,3 @@ class AniDBAPI:
|
|||
logger.debug(f"TMDb IDs Found: {movie_ids}")
|
||||
logger.debug(f"TVDb IDs Found: {show_ids}")
|
||||
return movie_ids, show_ids
|
||||
|
||||
def convert_from_imdb(self, imdb_id):
|
||||
output_tmdb_ids = []
|
||||
if not isinstance(imdb_id, list):
|
||||
imdb_id = [imdb_id]
|
||||
|
||||
for imdb in imdb_id:
|
||||
expired = False
|
||||
if self.Cache:
|
||||
tmdb_id, tvdb_id = self.Cache.get_ids_from_imdb(imdb)
|
||||
if not tmdb_id:
|
||||
tmdb_id, expired = self.Cache.get_tmdb_from_imdb(imdb)
|
||||
if expired:
|
||||
tmdb_id = None
|
||||
else:
|
||||
tmdb_id = None
|
||||
from_cache = tmdb_id is not None
|
||||
|
||||
if not tmdb_id and self.TMDb:
|
||||
try: tmdb_id = self.TMDb.convert_imdb_to_tmdb(imdb)
|
||||
except Failed: pass
|
||||
if not tmdb_id and self.Trakt:
|
||||
try: tmdb_id = self.Trakt.convert_imdb_to_tmdb(imdb)
|
||||
except Failed: pass
|
||||
try:
|
||||
if tmdb_id and not from_cache: self.TMDb.get_movie(tmdb_id)
|
||||
except Failed: tmdb_id = None
|
||||
if tmdb_id: output_tmdb_ids.append(tmdb_id)
|
||||
if self.Cache and tmdb_id and expired is not False:
|
||||
self.Cache.update_imdb("movie", expired, imdb, tmdb_id)
|
||||
if len(output_tmdb_ids) == 0: raise Failed(f"AniDB Error: No TMDb ID found for IMDb: {imdb_id}")
|
||||
elif len(output_tmdb_ids) == 1: return output_tmdb_ids[0]
|
||||
else: return output_tmdb_ids
|
||||
|
|
|
@ -644,10 +644,10 @@ class CollectionBuilder:
|
|||
elif "tautulli" in method:
|
||||
items = self.library.Tautulli.get_items(self.library, time_range=value["list_days"], stats_count=value["list_size"], list_type=value["list_type"], stats_count_buffer=value["list_buffer"])
|
||||
items_found += len(items)
|
||||
elif "anidb" in method: items_found += check_map(self.config.AniDB.get_items(method, value, self.library.Plex.language))
|
||||
elif "anidb" in method: items_found += check_map(self.config.AniDB.get_items(self.config, method, value, self.library.Plex.language))
|
||||
elif "mal" in method: items_found += check_map(self.config.MyAnimeList.get_items(method, value))
|
||||
elif "tvdb" in method: items_found += check_map(self.config.TVDb.get_items(method, value, self.library.Plex.language))
|
||||
elif "imdb" in method: items_found += check_map(self.config.IMDb.get_items(method, value, self.library.Plex.language))
|
||||
elif "imdb" in method: items_found += check_map(self.config.IMDb.get_items(self.config, method, value, self.library.Plex.language))
|
||||
elif "tmdb" in method: items_found += check_map(self.config.TMDb.get_items(method, value, self.library.is_movie))
|
||||
elif "trakt" in method: items_found += check_map(self.config.Trakt.get_items(method, value, self.library.is_movie))
|
||||
else: logger.error(f"Collection Error: {method} method not supported")
|
||||
|
|
|
@ -205,7 +205,7 @@ class Config:
|
|||
else:
|
||||
logger.warning("mal attribute not found")
|
||||
|
||||
self.TVDb = TVDbAPI(Cache=self.Cache, TMDb=self.TMDb, Trakt=self.Trakt)
|
||||
self.TVDb = TVDbAPI(self, Cache=self.Cache, TMDb=self.TMDb, Trakt=self.Trakt)
|
||||
self.IMDb = IMDbAPI(Cache=self.Cache, TMDb=self.TMDb, Trakt=self.Trakt, TVDb=self.TVDb) if self.TMDb or self.Trakt else None
|
||||
self.AniDB = AniDBAPI(Cache=self.Cache, TMDb=self.TMDb, Trakt=self.Trakt)
|
||||
|
||||
|
@ -477,6 +477,60 @@ class Config:
|
|||
continue
|
||||
builder.run_collections_again(library, collection_obj, movie_map, show_map)
|
||||
|
||||
def convert_from_imdb(self, imdb_id, language):
|
||||
update_tmdb = False
|
||||
update_tvdb = False
|
||||
if self.Cache:
|
||||
tmdb_id, tvdb_id = self.Cache.get_ids_from_imdb(imdb_id)
|
||||
update_tmdb = False
|
||||
if not tmdb_id:
|
||||
tmdb_id, update_tmdb = self.Cache.get_tmdb_from_imdb(imdb_id)
|
||||
if update_tmdb:
|
||||
tmdb_id = None
|
||||
update_tvdb = False
|
||||
if not tvdb_id:
|
||||
tvdb_id, update_tvdb = self.Cache.get_tvdb_from_imdb(imdb_id)
|
||||
if update_tvdb:
|
||||
tvdb_id = None
|
||||
else:
|
||||
tmdb_id = None
|
||||
tvdb_id = None
|
||||
from_cache = tmdb_id is not None or tvdb_id is not None
|
||||
|
||||
if not tmdb_id and not tvdb_id and self.TMDb:
|
||||
try:
|
||||
tmdb_id = self.TMDb.convert_imdb_to_tmdb(imdb_id)
|
||||
except Failed:
|
||||
pass
|
||||
if not tmdb_id and not tvdb_id and self.TMDb:
|
||||
try:
|
||||
tvdb_id = self.TMDb.convert_imdb_to_tvdb(imdb_id)
|
||||
except Failed:
|
||||
pass
|
||||
if not tmdb_id and not tvdb_id and self.Trakt:
|
||||
try:
|
||||
tmdb_id = self.Trakt.convert_imdb_to_tmdb(imdb_id)
|
||||
except Failed:
|
||||
pass
|
||||
if not tmdb_id and not tvdb_id and self.Trakt:
|
||||
try:
|
||||
tvdb_id = self.Trakt.convert_imdb_to_tvdb(imdb_id)
|
||||
except Failed:
|
||||
pass
|
||||
try:
|
||||
if tmdb_id and not from_cache: self.TMDb.get_movie(tmdb_id)
|
||||
except Failed: tmdb_id = None
|
||||
try:
|
||||
if tvdb_id and not from_cache: self.TVDb.get_series(language, tvdb_id=tvdb_id)
|
||||
except Failed: tvdb_id = None
|
||||
if not tmdb_id and not tvdb_id: raise Failed(f"IMDb Error: No TMDb ID or TVDb ID found for IMDb: {imdb_id}")
|
||||
if self.Cache:
|
||||
if tmdb_id and update_tmdb is not False:
|
||||
self.Cache.update_imdb("movie", update_tmdb, imdb_id, tmdb_id)
|
||||
if tvdb_id and update_tvdb is not False:
|
||||
self.Cache.update_imdb("show", update_tvdb, imdb_id, tvdb_id)
|
||||
return tmdb_id, tvdb_id
|
||||
|
||||
def map_guids(self, library):
|
||||
movie_map = {}
|
||||
show_map = {}
|
||||
|
|
|
@ -52,7 +52,7 @@ class IMDbAPI:
|
|||
def send_request(self, url, header):
|
||||
return html.fromstring(requests.get(url, headers=header).content)
|
||||
|
||||
def get_items(self, method, data, language, status_message=True):
|
||||
def get_items(self, config, method, data, language, status_message=True):
|
||||
pretty = util.pretty_names[method] if method in util.pretty_names else method
|
||||
if status_message:
|
||||
logger.debug(f"Data: {data}")
|
||||
|
@ -61,7 +61,7 @@ class IMDbAPI:
|
|||
if method == "imdb_id":
|
||||
if status_message:
|
||||
logger.info(f"Processing {pretty}: {data}")
|
||||
tmdb_id, tvdb_id = self.convert_from_imdb(data, language)
|
||||
tmdb_id, tvdb_id = config.convert_from_imdb(data, language)
|
||||
if tmdb_id: movie_ids.append(tmdb_id)
|
||||
if tvdb_id: show_ids.append(tvdb_id)
|
||||
elif method == "imdb_list":
|
||||
|
@ -74,7 +74,7 @@ class IMDbAPI:
|
|||
for i, imdb_id in enumerate(imdb_ids, 1):
|
||||
length = util.print_return(length, f"Converting IMDb ID {i}/{total_ids}")
|
||||
try:
|
||||
tmdb_id, tvdb_id = self.convert_from_imdb(imdb_id, language)
|
||||
tmdb_id, tvdb_id = config.convert_from_imdb(imdb_id, language)
|
||||
if tmdb_id: movie_ids.append(tmdb_id)
|
||||
if tvdb_id: show_ids.append(tvdb_id)
|
||||
except Failed as e: logger.warning(e)
|
||||
|
@ -85,49 +85,3 @@ class IMDbAPI:
|
|||
logger.debug(f"TMDb IDs Found: {movie_ids}")
|
||||
logger.debug(f"TVDb IDs Found: {show_ids}")
|
||||
return movie_ids, show_ids
|
||||
|
||||
def convert_from_imdb(self, imdb_id, language):
|
||||
update_tmdb = False
|
||||
update_tvdb = False
|
||||
if self.Cache:
|
||||
tmdb_id, tvdb_id = self.Cache.get_ids_from_imdb(imdb_id)
|
||||
update_tmdb = False
|
||||
if not tmdb_id:
|
||||
tmdb_id, update_tmdb = self.Cache.get_tmdb_from_imdb(imdb_id)
|
||||
if update_tmdb:
|
||||
tmdb_id = None
|
||||
update_tvdb = False
|
||||
if not tvdb_id:
|
||||
tvdb_id, update_tvdb = self.Cache.get_tvdb_from_imdb(imdb_id)
|
||||
if update_tvdb:
|
||||
tvdb_id = None
|
||||
else:
|
||||
tmdb_id = None
|
||||
tvdb_id = None
|
||||
from_cache = tmdb_id is not None or tvdb_id is not None
|
||||
|
||||
if not tmdb_id and not tvdb_id and self.TMDb:
|
||||
try: tmdb_id = self.TMDb.convert_imdb_to_tmdb(imdb_id)
|
||||
except Failed: pass
|
||||
if not tmdb_id and not tvdb_id and self.TMDb:
|
||||
try: tvdb_id = self.TMDb.convert_imdb_to_tvdb(imdb_id)
|
||||
except Failed: pass
|
||||
if not tmdb_id and not tvdb_id and self.Trakt:
|
||||
try: tmdb_id = self.Trakt.convert_imdb_to_tmdb(imdb_id)
|
||||
except Failed: pass
|
||||
if not tmdb_id and not tvdb_id and self.Trakt:
|
||||
try: tvdb_id = self.Trakt.convert_imdb_to_tvdb(imdb_id)
|
||||
except Failed: pass
|
||||
try:
|
||||
if tmdb_id and not from_cache: self.TMDb.get_movie(tmdb_id)
|
||||
except Failed: tmdb_id = None
|
||||
try:
|
||||
if tvdb_id and not from_cache: self.TVDb.get_series(language, tvdb_id=tvdb_id)
|
||||
except Failed: tvdb_id = None
|
||||
if not tmdb_id and not tvdb_id: raise Failed(f"IMDb Error: No TMDb ID or TVDb ID found for IMDb: {imdb_id}")
|
||||
if self.Cache:
|
||||
if tmdb_id and update_tmdb is not False:
|
||||
self.Cache.update_imdb("movie", update_tmdb, imdb_id, tmdb_id)
|
||||
if tvdb_id and update_tvdb is not False:
|
||||
self.Cache.update_imdb("show", update_tvdb, imdb_id, tvdb_id)
|
||||
return tmdb_id, tvdb_id
|
||||
|
|
|
@ -45,7 +45,7 @@ class TVDbObj:
|
|||
if not tmdb_id:
|
||||
results = response.xpath("//*[text()='IMDB']/@href")
|
||||
if len(results) > 0:
|
||||
try: tmdb_id = TVDb.convert_from_imdb(util.get_id_from_imdb_url(results[0]))
|
||||
try: tmdb_id, _ = TVDb.config.convert_from_imdb(util.get_id_from_imdb_url(results[0]))
|
||||
except Failed as e: logger.error(e)
|
||||
self.tmdb_id = tmdb_id
|
||||
self.tvdb_url = tvdb_url
|
||||
|
@ -54,7 +54,8 @@ class TVDbObj:
|
|||
self.TVDb = TVDb
|
||||
|
||||
class TVDbAPI:
|
||||
def __init__(self, Cache=None, TMDb=None, Trakt=None):
|
||||
def __init__(self, config, Cache=None, TMDb=None, Trakt=None):
|
||||
self.config = config
|
||||
self.Cache = Cache
|
||||
self.TMDb = TMDb
|
||||
self.Trakt = Trakt
|
||||
|
@ -140,29 +141,3 @@ class TVDbAPI:
|
|||
logger.debug(f"TMDb IDs Found: {movie_ids}")
|
||||
logger.debug(f"TVDb IDs Found: {show_ids}")
|
||||
return movie_ids, show_ids
|
||||
|
||||
def convert_from_imdb(self, imdb_id):
|
||||
update = False
|
||||
if self.Cache:
|
||||
tmdb_id, tvdb_id = self.Cache.get_ids_from_imdb(imdb_id)
|
||||
if not tmdb_id:
|
||||
tmdb_id, update = self.Cache.get_tmdb_from_imdb(imdb_id)
|
||||
if update:
|
||||
tmdb_id = None
|
||||
else:
|
||||
tmdb_id = None
|
||||
from_cache = tmdb_id is not None
|
||||
|
||||
if not tmdb_id and self.TMDb:
|
||||
try: tmdb_id = self.TMDb.convert_imdb_to_tmdb(imdb_id)
|
||||
except Failed: pass
|
||||
if not tmdb_id and self.Trakt:
|
||||
try: tmdb_id = self.Trakt.convert_imdb_to_tmdb(imdb_id)
|
||||
except Failed: pass
|
||||
try:
|
||||
if tmdb_id and not from_cache: self.TMDb.get_movie(tmdb_id)
|
||||
except Failed: tmdb_id = None
|
||||
if not tmdb_id: raise Failed(f"TVDb Error: No TMDb ID found for IMDb: {imdb_id}")
|
||||
if self.Cache and tmdb_id and update is not False:
|
||||
self.Cache.update_imdb("movie", update, imdb_id, tmdb_id)
|
||||
return tmdb_id
|
||||
|
|
Loading…
Reference in a new issue