local: Update library interface
- Add track iterator for use in scanner - Update lookup to only return a single track
This commit is contained in:
parent
d93d3e6fcd
commit
ff57439995
@ -63,6 +63,14 @@ class Library(object):
|
||||
"""
|
||||
return 0
|
||||
|
||||
def tracks(self):
|
||||
"""
|
||||
Iterator over all tracks.
|
||||
|
||||
:rtype: :class:`mopidy.models.Track` iterator
|
||||
"""
|
||||
raise NotImplementedError
|
||||
|
||||
def add(self, track):
|
||||
"""
|
||||
Add the given track to library.
|
||||
@ -99,7 +107,7 @@ class Library(object):
|
||||
|
||||
:param uri: track URI
|
||||
:type uri: string
|
||||
:rtype: list of :class:`mopidy.models.Track`
|
||||
:rtype: :class:`mopidy.models.Track`
|
||||
"""
|
||||
raise NotImplementedError
|
||||
|
||||
|
||||
@ -56,6 +56,9 @@ class JsonLibrary(local.Library):
|
||||
self._tracks = dict((t.uri, t) for t in library.get('tracks', []))
|
||||
return len(self._tracks)
|
||||
|
||||
def tracks(self):
|
||||
return self._tracks.itervalues()
|
||||
|
||||
def add(self, track):
|
||||
self._tracks[track.uri] = track
|
||||
|
||||
@ -67,10 +70,9 @@ class JsonLibrary(local.Library):
|
||||
|
||||
def lookup(self, uri):
|
||||
try:
|
||||
return [self._tracks[uri]]
|
||||
return self._tracks[uri]
|
||||
except KeyError:
|
||||
logger.debug('Failed to lookup %r', uri)
|
||||
return []
|
||||
return None
|
||||
|
||||
def search(self, query=None, uris=None, exact=False):
|
||||
tracks = self._tracks.values()
|
||||
|
||||
@ -24,7 +24,11 @@ class LocalLibraryProvider(base.BaseLibraryProvider):
|
||||
def lookup(self, uri):
|
||||
if not self._library:
|
||||
return []
|
||||
return self._library.lookup(uri)
|
||||
track = self._library.lookup(uri)
|
||||
if not uri:
|
||||
logger.debug('Failed to lookup %r', uri)
|
||||
return []
|
||||
return [track]
|
||||
|
||||
def find_exact(self, query=None, uris=None):
|
||||
if not self._library:
|
||||
|
||||
Loading…
Reference in New Issue
Block a user