88from plexapi .mixins import (
99 AdvancedSettingsMixin , SplitMergeMixin , UnmatchMatchMixin , ExtrasMixin , HubsMixin , PlayedUnplayedMixin , RatingMixin ,
1010 ArtUrlMixin , ArtMixin , BannerMixin , PosterUrlMixin , PosterMixin , ThemeUrlMixin , ThemeMixin ,
11- ContentRatingMixin , OriginallyAvailableMixin , OriginalTitleMixin , SortTitleMixin , StudioMixin ,
11+ ContentRatingMixin , EditionTitleMixin , OriginallyAvailableMixin , OriginalTitleMixin , SortTitleMixin , StudioMixin ,
1212 SummaryMixin , TaglineMixin , TitleMixin ,
1313 CollectionMixin , CountryMixin , DirectorMixin , GenreMixin , LabelMixin , ProducerMixin , WriterMixin ,
1414 WatchlistMixin
@@ -291,7 +291,7 @@ class Movie(
291291 Video , Playable ,
292292 AdvancedSettingsMixin , SplitMergeMixin , UnmatchMatchMixin , ExtrasMixin , HubsMixin , RatingMixin ,
293293 ArtMixin , PosterMixin , ThemeMixin ,
294- ContentRatingMixin , OriginallyAvailableMixin , OriginalTitleMixin , SortTitleMixin , StudioMixin ,
294+ ContentRatingMixin , EditionTitleMixin , OriginallyAvailableMixin , OriginalTitleMixin , SortTitleMixin , StudioMixin ,
295295 SummaryMixin , TaglineMixin , TitleMixin ,
296296 CollectionMixin , CountryMixin , DirectorMixin , GenreMixin , LabelMixin , ProducerMixin , WriterMixin ,
297297 WatchlistMixin
@@ -310,6 +310,7 @@ class Movie(
310310 countries (List<:class:`~plexapi.media.Country`>): List of countries objects.
311311 directors (List<:class:`~plexapi.media.Director`>): List of director objects.
312312 duration (int): Duration of the movie in milliseconds.
313+ editionTitle (str): The edition title of the movie (e.g. Director's Cut, Extended Edition, etc.).
313314 genres (List<:class:`~plexapi.media.Genre`>): List of genre objects.
314315 guids (List<:class:`~plexapi.media.Guid`>): List of guid objects.
315316 labels (List<:class:`~plexapi.media.Label`>): List of label objects.
@@ -350,6 +351,7 @@ def _loadData(self, data):
350351 self .countries = self .findItems (data , media .Country )
351352 self .directors = self .findItems (data , media .Director )
352353 self .duration = utils .cast (int , data .attrib .get ('duration' ))
354+ self .editionTitle = data .attrib .get ('editionTitle' )
353355 self .genres = self .findItems (data , media .Genre )
354356 self .guids = self .findItems (data , media .Guid )
355357 self .labels = self .findItems (data , media .Label )
@@ -400,6 +402,16 @@ def reviews(self):
400402 data = self ._server .query (self ._details_key )
401403 return self .findItems (data , media .Review , rtag = 'Video' )
402404
405+ def editions (self ):
406+ """ Returns a list of :class:`~plexapi.video.Movie` objects
407+ for other editions of the same movie.
408+ """
409+ filters = {
410+ 'guid' : self .guid ,
411+ 'id!' : self .ratingKey
412+ }
413+ return self .section ().search (filters = filters )
414+
403415
404416@utils .registerPlexObject
405417class Show (
0 commit comments