Add missing labels and collections from the classes

This commit is contained in:
Hellowlol 2017-07-22 01:07:31 +02:00
parent 145f49808b
commit 5bfa96b49c
4 changed files with 23 additions and 2 deletions

View file

@ -76,6 +76,7 @@ class Artist(Audio):
self.countries = self.findItems(data, media.Country)
self.genres = self.findItems(data, media.Genre)
self.similar = self.findItems(data, media.Similar)
self.collections = self.findItems(data, media.Collection)
def album(self, title):
""" Returns the :class:`~plexapi.audio.Album` that matches the specified title.
@ -163,6 +164,7 @@ class Album(Audio):
self.studio = data.attrib.get('studio')
self.year = utils.cast(int, data.attrib.get('year'))
self.genres = self.findItems(data, media.Genre)
self.collections = self.findItems(data, media.Collection)
def track(self, title):
""" Returns the :class:`~plexapi.audio.Track` that matches the specified title.

View file

@ -354,7 +354,9 @@ class PlexPartialObject(PlexObject):
if not isinstance(items, list):
items = [items]
existing_cols = [t.tag for t in self.collections if t and remove is False]
value = getattr(self, item + 's')
existing_cols = [t.tag for t in value if t and remove is False]
d = tag_helper(tag, existing_cols + items, locked, remove)
self.edit(**d)
self.refresh()
@ -374,7 +376,7 @@ class PlexPartialObject(PlexObject):
self._edit_tags('collection', collections, remove=True)
def addLabel(self, labels):
self._edit_tags('collection', labels)
self._edit_tags('label', labels)
def removeLabel(self, labels):
self._edit_tags('label', labels, remove=True)

View file

@ -124,6 +124,7 @@ class MediaPartStream(PlexObject):
2=:class:`~plexapi.media.AudioStream`, 3=:class:`~plexapi.media.SubtitleStream`).
type (int): Alias for streamType.
"""
def _loadData(self, data):
""" Load attribute values from Plex XML response. """
self._data = data
@ -314,6 +315,7 @@ class MediaTag(PlexObject):
* tagType (int): Tag type ID.
* thumb (str): URL to thumbnail image.
"""
def _loadData(self, data):
""" Load attribute values from Plex XML response. """
self._data = data
@ -349,6 +351,18 @@ class Collection(MediaTag):
FILTER = 'collection'
@utils.registerPlexObject
class Label(MediaTag):
""" Represents a single label media tag.
Attributes:
TAG (str): 'label'
FILTER (str): 'label'
"""
TAG = 'Label'
FILTER = 'label'
@utils.registerPlexObject
class Country(MediaTag):
""" Represents a single Country media tag.

View file

@ -133,6 +133,7 @@ class Movie(Video, Playable):
self.producers = self.findItems(data, media.Producer)
self.roles = self.findItems(data, media.Role)
self.writers = self.findItems(data, media.Writer)
self.labels = self.findItems(data, media.Label)
@property
def actors(self):
@ -473,6 +474,8 @@ class Episode(Video, Playable):
self.directors = self.findItems(data, media.Director)
self.media = self.findItems(data, media.Media)
self.writers = self.findItems(data, media.Writer)
self.labels = self.findItems(data, media.Label)
self.collections = self.findItems(data, media.Collection)
def __repr__(self):
return '<%s>' % ':'.join([p for p in [