Skip to content

Commit ba913e5

Browse files
author
Touchstone64
committed
Extract includeGuids inclusion for parent/child searches into a mixin
1 parent 997f9e9 commit ba913e5

2 files changed

Lines changed: 23 additions & 4 deletions

File tree

plexapi/mixins/__init__.py

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929
from .split_merge import SplitMergeMixin
3030
from .unmatch_match import UnmatchMatchMixin
3131
from .watchlist import WatchlistMixin
32-
32+
from .tv_parent_child import TvParentChildMixin
3333

3434
class MovieEditMixins(
3535
ArtLockMixin, PosterLockMixin, ThemeLockMixin,
@@ -140,23 +140,26 @@ class ShowMixins(
140140
AdvancedSettingsMixin, SplitMergeMixin, UnmatchMatchMixin, ExtrasMixin, HubsMixin, RatingMixin,
141141
ArtMixin, LogoMixin, PosterMixin, SquareArtMixin, ThemeMixin,
142142
ShowEditMixins,
143-
WatchlistMixin
143+
WatchlistMixin,
144+
TvParentChildMixin
144145
):
145146
pass
146147

147148

148149
class SeasonMixins(
149150
AdvancedSettingsMixin, ExtrasMixin, RatingMixin,
150151
ArtMixin, LogoMixin, PosterMixin, SquareArtMixin, ThemeUrlMixin,
151-
SeasonEditMixins
152+
SeasonEditMixins,
153+
TvParentChildMixin
152154
):
153155
pass
154156

155157

156158
class EpisodeMixins(
157159
ExtrasMixin, RatingMixin,
158160
ArtMixin, LogoMixin, PosterMixin, SquareArtMixin, ThemeUrlMixin,
159-
EpisodeEditMixins
161+
EpisodeEditMixins,
162+
TvParentChildMixin
160163
):
161164
pass
162165

plexapi/mixins/tv_parent_child.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
from plexapi import utils
2+
3+
class TvParentChildMixin:
4+
""" Mixin for Plex objects that have parent/child relationships (episode/season/show). """
5+
6+
def _buildRelationKey(self, key, **kwargs):
7+
""" Returns a key suitable for fetching parent/child TV items """
8+
args = {}
9+
10+
args['includeGuids'] = int(bool(kwargs.pop('includeGuids', True)))
11+
for name, value in list(kwargs.items()):
12+
args[name] = value
13+
14+
params = utils.joinArgs(args).lstrip('?')
15+
16+
return f"{key}?{params}"

0 commit comments

Comments
 (0)