diff --git a/plextraktsync/media/MediaFactory.py b/plextraktsync/media/MediaFactory.py index 7c1851488d..5a70a2e0d3 100644 --- a/plextraktsync/media/MediaFactory.py +++ b/plextraktsync/media/MediaFactory.py @@ -62,6 +62,10 @@ def resolve_guid(self, guid: PlexGuid, show: Media = None): try: if show: + if guid.is_special: + self.logger.warning(f"Skipping Special: {guid.title_link}", extra={"markup": True}) + return None + tm = self.trakt.find_episode_guid(guid, show.seasons) else: tm = self.trakt.find_by_guid(guid) diff --git a/plextraktsync/plex/PlexGuid.py b/plextraktsync/plex/PlexGuid.py index 598fa43aa3..0c14f52fd3 100644 --- a/plextraktsync/plex/PlexGuid.py +++ b/plextraktsync/plex/PlexGuid.py @@ -77,6 +77,13 @@ def unsupported(self): """Known providers that can't be synced""" return self.provider in ["youtube", "xmltv"] + @property + def is_special(self): + if self.media_type != "episodes": + raise ValueError("is_special is not valid for non-episodes") + + return self.pm.season_number == 0 + @cached_property def show_id(self): if not self.is_episode: