Jellyfin: Handle missing paths

Signed-off-by: Luigi311 <git@luigi311.com>
This commit is contained in:
Luigi311
2023-06-28 16:21:07 -06:00
parent 3fa55cb41b
commit ff2e2deb20

View File

@@ -49,8 +49,11 @@ def get_episode_guids(episode):
# Create a dictionary for the episode with its provider IDs and media sources # Create a dictionary for the episode with its provider IDs and media sources
episode_dict = {k.lower(): v for k, v in episode["ProviderIds"].items()} episode_dict = {k.lower(): v for k, v in episode["ProviderIds"].items()}
episode_dict["title"] = episode["Name"] episode_dict["title"] = episode["Name"]
episode_dict["locations"] = tuple(
[x["Path"].split("/")[-1] for x in episode["MediaSources"]] episode_dict["locations"] = (
tuple([x["Path"].split("/")[-1] for x in ["MediaSources"] if "Path" in x])
if "MediaSources" in episode
else tuple()
) )
episode_dict["status"] = { episode_dict["status"] = {
@@ -238,7 +241,11 @@ class Jellyfin:
k.lower(): v for k, v in show["ProviderIds"].items() k.lower(): v for k, v in show["ProviderIds"].items()
} }
show_guids["title"] = show["Name"] show_guids["title"] = show["Name"]
show_guids["locations"] = tuple([show["Path"].split("/")[-1]]) show_guids["locations"] = (
tuple([show["Path"].split("/")[-1]])
if "Path" in show
else tuple()
)
show_guids = frozenset(show_guids.items()) show_guids = frozenset(show_guids.items())
show_identifiers = { show_identifiers = {
"show_guids": show_guids, "show_guids": show_guids,
@@ -550,6 +557,7 @@ class Jellyfin:
if "MediaSources" in jellyfin_video: if "MediaSources" in jellyfin_video:
for movie_location in jellyfin_video["MediaSources"]: for movie_location in jellyfin_video["MediaSources"]:
if "Path" in movie_location:
if ( if (
contains_nested( contains_nested(
movie_location["Path"].split("/")[-1], movie_location["Path"].split("/")[-1],
@@ -560,7 +568,9 @@ class Jellyfin:
for video in videos: for video in videos:
if ( if (
contains_nested( contains_nested(
movie_location["Path"].split("/")[-1], movie_location["Path"].split("/")[
-1
],
video["locations"], video["locations"],
) )
is not None is not None
@@ -697,9 +707,12 @@ class Jellyfin:
for episode_location in jellyfin_episode[ for episode_location in jellyfin_episode[
"MediaSources" "MediaSources"
]: ]:
if "Path" in episode_location:
if ( if (
contains_nested( contains_nested(
episode_location["Path"].split("/")[-1], episode_location["Path"].split("/")[
-1
],
videos_episodes_ids["locations"], videos_episodes_ids["locations"],
) )
is not None is not None
@@ -707,14 +720,16 @@ class Jellyfin:
for episode in episode_videos: for episode in episode_videos:
if ( if (
contains_nested( contains_nested(
episode_location["Path"].split( episode_location[
"/" "Path"
)[-1], ].split("/")[-1],
episode["locations"], episode["locations"],
) )
is not None is not None
): ):
episode_status = episode["status"] episode_status = episode[
"status"
]
break break
break break