From e4408c52bbca0ffe4fe1b061605387670ec78897 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elan=20Ruusam=C3=A4e?= Date: Tue, 25 Oct 2022 01:22:34 +0300 Subject: [PATCH] Add show property to PlexLibraryItem --- plextraktsync/plex_api.py | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/plextraktsync/plex_api.py b/plextraktsync/plex_api.py index 180fc6938f5..2ffeb671fce 100644 --- a/plextraktsync/plex_api.py +++ b/plextraktsync/plex_api.py @@ -152,9 +152,17 @@ def audio_codecs(self): class PlexLibraryItem: - def __init__(self, item: Union[Movie, Show, Episode], plex: PlexApi = None): + def __init__(self, + item: Union[Movie, Show, Episode], + show: Optional[Show] = None, + plex: PlexApi = None, + ): self.item = item self.plex = plex + if show and self.is_episode: + self._show = show + else: + self._show = None @cached_property def is_episode(self): @@ -164,6 +172,16 @@ def is_episode(self): def is_legacy_agent(self): return not self.item.guid.startswith("plex://") + @property + def show(self): + return self._show + + @show.setter + def show(self, show: Show): + if not self.is_episode: + raise RuntimeError("show property can only be set to episodes") + self._show = show + @nocache @retry() def get_guids(self):