def lookup(self, uri): '''Lookup the given URIs. Return type: list of mopidy.models.Track ''' logger.info("Lookup Plex uri '%s'", uri) parts = uri.split(':') if uri.startswith('plex:artist:'): # get all tracks for artist item_id = parts[2] plex_uri = '/library/metadata/{}/allLeaves'.format(item_id) elif uri.startswith('plex:album:'): # get all tracks for album item_id = parts[2] plex_uri = '/library/metadata/{}/children'.format(item_id) elif uri.startswith('plex:track:'): # get track item_id = parts[2] plex_uri = '/library/metadata/{}'.format(item_id) ret = [] for item in self.plex.query(plex_uri): plextrack = plexutils.buildItem(self.plex, item, '/library/metadata/{}'.format(item.attrib['ratingKey'])) ret.append(wrap_track(plextrack, self.backend.plex_uri)) return ret
def _safe_builditems(self, data): items = [] for elem in data: try: items.append(utils.buildItem(self.server, elem, '/hubs')) except Exception as err: logging.warn('Failed %s to build %s; Error: %s' % (self.type, self.title, err)) return items
def __init__(self, server, data, initpath): self.server = server self.initpath = initpath self.identifier = data.attrib.get('identifier') self.mediaTagPrefix = data.attrib.get('mediaTagPrefix') self.mediaTagVersion = data.attrib.get('mediaTagVersion') self.playQueueID = data.attrib.get('playQueueID') self.playQueueSelectedItemID = data.attrib.get('playQueueSelectedItemID') self.playQueueSelectedItemOffset = data.attrib.get('playQueueSelectedItemOffset') self.playQueueTotalCount = data.attrib.get('playQueueTotalCount') self.playQueueVersion = data.attrib.get('playQueueVersion') self.items = [utils.buildItem(server, elem, initpath) for elem in data]
def __init__(self, server, data, initpath): self.server = server self.initpath = initpath self.identifier = data.attrib.get('identifier') self.mediaTagPrefix = data.attrib.get('mediaTagPrefix') self.mediaTagVersion = data.attrib.get('mediaTagVersion') self.playQueueID = data.attrib.get('playQueueID') self.playQueueSelectedItemID = data.attrib.get( 'playQueueSelectedItemID') self.playQueueSelectedItemOffset = data.attrib.get( 'playQueueSelectedItemOffset') self.playQueueTotalCount = data.attrib.get('playQueueTotalCount') self.playQueueVersion = data.attrib.get('playQueueVersion') self.items = [utils.buildItem(server, elem, initpath) for elem in data]