Skip to content

Commit 284a577

Browse files
authored
Add genres attribute to Track (#1318)
* Add genres attribute to Track * Test track genres * Add GenreMixin to Tracks * Add test for editing track genre
1 parent b831aae commit 284a577

3 files changed

Lines changed: 5 additions & 1 deletion

File tree

plexapi/audio.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -427,6 +427,7 @@ class Track(
427427
chapterSource (str): Unknown
428428
collections (List<:class:`~plexapi.media.Collection`>): List of collection objects.
429429
duration (int): Length of the track in milliseconds.
430+
genres (List<:class:`~plexapi.media.Genre`>): List of genre objects.
430431
grandparentArt (str): URL to album artist artwork (/library/metadata/<grandparentRatingKey>/art/<artid>).
431432
grandparentGuid (str): Plex GUID for the album artist (plex://artist/5d07bcb0403c64029053ac4c).
432433
grandparentKey (str): API URL of the album artist (/library/metadata/<grandparentRatingKey>).
@@ -463,6 +464,7 @@ def _loadData(self, data):
463464
self.chapterSource = data.attrib.get('chapterSource')
464465
self.collections = self.findItems(data, media.Collection)
465466
self.duration = utils.cast(int, data.attrib.get('duration'))
467+
self.genres = self.findItems(data, media.Genre)
466468
self.grandparentArt = data.attrib.get('grandparentArt')
467469
self.grandparentGuid = data.attrib.get('grandparentGuid')
468470
self.grandparentKey = data.attrib.get('grandparentKey')

plexapi/mixins.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1196,7 +1196,7 @@ class AlbumEditMixins(
11961196
class TrackEditMixins(
11971197
ArtLockMixin, PosterLockMixin, ThemeLockMixin,
11981198
AddedAtMixin, TitleMixin, TrackArtistMixin, TrackNumberMixin, TrackDiscNumberMixin, UserRatingMixin,
1199-
CollectionMixin, LabelMixin, MoodMixin
1199+
CollectionMixin, GenreMixin, LabelMixin, MoodMixin
12001200
):
12011201
pass
12021202

tests/test_audio.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -278,6 +278,7 @@ def test_audio_Track_attrs(album):
278278
assert utils.is_art(track.art)
279279
assert track.chapterSource is None
280280
assert utils.is_int(track.duration)
281+
assert track.genres == []
281282
if track.grandparentArt:
282283
assert utils.is_art(track.grandparentArt)
283284
assert utils.is_metadata(track.grandparentKey)
@@ -422,6 +423,7 @@ def test_audio_Track_mixins_fields(track):
422423

423424
def test_audio_Track_mixins_tags(track):
424425
test_mixins.edit_collection(track)
426+
test_mixins.edit_genre(track)
425427
test_mixins.edit_label(track)
426428
test_mixins.edit_mood(track)
427429

0 commit comments

Comments
 (0)