From 7fd56531fee9c107f92c12fb56280e42791504fd Mon Sep 17 00:00:00 2001 From: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com> Date: Fri, 5 Mar 2021 17:53:14 -0800 Subject: [PATCH 1/5] Add advanced setting attributes to movie --- plexapi/video.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/plexapi/video.py b/plexapi/video.py index e215a2f65..4fa4238ad 100644 --- a/plexapi/video.py +++ b/plexapi/video.py @@ -267,6 +267,8 @@ class Movie(Video, Playable, ArtMixin, PosterMixin, SplitMergeMixin, UnmatchMatc genres (List<:class:`~plexapi.media.Genre`>): List of genre objects. guids (List<:class:`~plexapi.media.Guid`>): List of guid objects. labels (List<:class:`~plexapi.media.Label`>): List of label objects. + languageOverride (str): Setting that indicates if a languge is used to override metadata + (eg. en-CA, None = Library default). media (List<:class:`~plexapi.media.Media`>): List of media objects. originallyAvailableAt (datetime): Datetime the movie was released. originalTitle (str): Original title, often the foreign title (転々; 엽기적인 그녀). @@ -278,6 +280,8 @@ class Movie(Video, Playable, ArtMixin, PosterMixin, SplitMergeMixin, UnmatchMatc similar (List<:class:`~plexapi.media.Similar`>): List of Similar objects. studio (str): Studio that created movie (Di Bonaventura Pictures; 21 Laps Entertainment). tagline (str): Movie tag line (Back 2 Work; Who says men can't change?). + useOriginalTitle (int): Setting that indicates if the original title is used for the movie + (-1 = Library default, 0 = No, 1 = Yes). userRating (float): User rating (2.0; 8.0). viewOffset (int): View offset in milliseconds. writers (List<:class:`~plexapi.media.Writer`>): List of writers objects. @@ -303,6 +307,7 @@ def _loadData(self, data): self.genres = self.findItems(data, media.Genre) self.guids = self.findItems(data, media.Guid) self.labels = self.findItems(data, media.Label) + self.languageOverride = data.attrib.get('languageOverride') self.media = self.findItems(data, media.Media) self.originallyAvailableAt = utils.toDatetime(data.attrib.get('originallyAvailableAt'), '%Y-%m-%d') self.originalTitle = data.attrib.get('originalTitle') @@ -314,6 +319,7 @@ def _loadData(self, data): self.similar = self.findItems(data, media.Similar) self.studio = data.attrib.get('studio') self.tagline = data.attrib.get('tagline') + self.useOriginalTitle = utils.cast(int, data.attrib.get('useOriginalTitle', '-1')) self.userRating = utils.cast(float, data.attrib.get('userRating')) self.viewOffset = utils.cast(int, data.attrib.get('viewOffset', 0)) self.writers = self.findItems(data, media.Writer) From 1721449c600f4c9a07d930fee85333cee5e1ac0e Mon Sep 17 00:00:00 2001 From: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com> Date: Fri, 5 Mar 2021 17:53:28 -0800 Subject: [PATCH 2/5] Add advanced setting attributes to artist --- plexapi/audio.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/plexapi/audio.py b/plexapi/audio.py index caecfbe7c..9031ef8a3 100644 --- a/plexapi/audio.py +++ b/plexapi/audio.py @@ -121,6 +121,8 @@ class Artist(Audio, ArtMixin, PosterMixin, SplitMergeMixin, UnmatchMatchMixin, Attributes: TAG (str): 'Directory' TYPE (str): 'artist' + albumSort (int): Setting that indicates how albums are sorted for the artist + (-1 = Library default, 0 = Newest first, 1 = Oldest first, 2 = By name). collections (List<:class:`~plexapi.media.Collection`>): List of collection objects. countries (List<:class:`~plexapi.media.Country`>): List country objects. genres (List<:class:`~plexapi.media.Genre`>): List of genre objects. @@ -135,6 +137,7 @@ class Artist(Audio, ArtMixin, PosterMixin, SplitMergeMixin, UnmatchMatchMixin, def _loadData(self, data): """ Load attribute values from Plex XML response. """ Audio._loadData(self, data) + self.albumSort = utils.cast(int, self.data.attrib.get('albumSort', '-1')) self.collections = self.findItems(data, media.Collection) self.countries = self.findItems(data, media.Country) self.genres = self.findItems(data, media.Genre) From d731cf988e597df929b2c1352f5dbfa6619de2c7 Mon Sep 17 00:00:00 2001 From: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com> Date: Fri, 5 Mar 2021 18:02:03 -0800 Subject: [PATCH 3/5] Update tests for movie advanced setting attributes --- tests/test_video.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tests/test_video.py b/tests/test_video.py index 1573dafcf..7809bfe13 100644 --- a/tests/test_video.py +++ b/tests/test_video.py @@ -185,6 +185,7 @@ def test_video_Movie_attrs(movies): assert movie.guid == "plex://movie/5d776846880197001ec967c6" assert utils.is_metadata(movie._initpath) assert utils.is_metadata(movie.key) + assert movie.languageOverride is None assert utils.is_datetime(movie.lastViewedAt) assert int(movie.librarySectionID) >= 1 assert movie.listType == "video" @@ -206,6 +207,7 @@ def test_video_Movie_attrs(movies): assert not movie.transcodeSessions assert movie.type == "movie" assert movie.updatedAt > datetime(2017, 1, 1) + assert movie.useOriginalTitle == -1 assert movie.userRating is None assert movie.viewCount == 0 assert utils.is_int(movie.viewOffset, gte=0) From 2004c7989a8fcb3344fe92637caa9755bd3fbf68 Mon Sep 17 00:00:00 2001 From: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com> Date: Fri, 5 Mar 2021 18:02:20 -0800 Subject: [PATCH 4/5] Update tests for artist advanced setting attributes --- tests/test_audio.py | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/test_audio.py b/tests/test_audio.py index d6a0d24bf..74a841a2f 100644 --- a/tests/test_audio.py +++ b/tests/test_audio.py @@ -6,6 +6,7 @@ def test_audio_Artist_attr(artist): artist.reload() assert utils.is_datetime(artist.addedAt) + assert artist.albumSort == -1 if artist.art: assert utils.is_art(artist.art) if artist.countries: From 72445cf5a722e76f160efe73533119f18479899e Mon Sep 17 00:00:00 2001 From: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com> Date: Fri, 5 Mar 2021 18:20:41 -0800 Subject: [PATCH 5/5] Fix artist albumSort attribute --- plexapi/audio.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plexapi/audio.py b/plexapi/audio.py index 9031ef8a3..d76f7f1c5 100644 --- a/plexapi/audio.py +++ b/plexapi/audio.py @@ -137,7 +137,7 @@ class Artist(Audio, ArtMixin, PosterMixin, SplitMergeMixin, UnmatchMatchMixin, def _loadData(self, data): """ Load attribute values from Plex XML response. """ Audio._loadData(self, data) - self.albumSort = utils.cast(int, self.data.attrib.get('albumSort', '-1')) + self.albumSort = utils.cast(int, data.attrib.get('albumSort', '-1')) self.collections = self.findItems(data, media.Collection) self.countries = self.findItems(data, media.Country) self.genres = self.findItems(data, media.Genre)