Skip to content

Commit 1e7cca3

Browse files
committed
[160] Improve episode equality logic
Also match by absolute number matches
1 parent 829c9b7 commit 1e7cca3

File tree

2 files changed

+28
-4
lines changed

2 files changed

+28
-4
lines changed

modules/EpisodeInfo2.py

Lines changed: 27 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -175,16 +175,40 @@ def __eq__(self, other: 'EpisodeInfo | PlexEpisode') -> bool:
175175
)
176176

177177
# ID matches are immediate equality
178-
for id_attr in ('emby_id', 'imdb_id', 'jellyfin_id', 'tmdb_id',
179-
'tvdb_id', 'tvrage_id'):
178+
for id_attr in (
179+
'emby_id',
180+
'imdb_id',
181+
'jellyfin_id',
182+
'tmdb_id',
183+
'tvdb_id',
184+
'tvrage_id'
185+
):
180186
if (getattr(self, id_attr) is not None
181187
and getattr(self, id_attr) == getattr(other, id_attr)):
182188
return True
183189

184190
# Require title match for index equality
185191
return (
192+
# Season number match
186193
self.season_number == other.season_number
187-
and self.episode_number == other.episode_number
194+
and (
195+
# Episode number match
196+
self.episode_number == other.episode_number
197+
or (
198+
# Both have absolute numbers that match
199+
(
200+
self.absolute_number is not None
201+
and other.absolute_number is not None
202+
and self.absolute_number == other.absolute_number
203+
)
204+
# One has absolute number that matches the others episode
205+
or (
206+
self.absolute_number == other.episode_number
207+
or self.episode_number == other.absolute_number
208+
)
209+
)
210+
)
211+
# And title match
188212
and self.full_title.matches(other.full_title)
189213
)
190214

modules/ref/version_webui

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
v2.0-alpha.13.0-webui159
1+
v2.0-alpha.13.0-webui160

0 commit comments

Comments
 (0)