mpd: Add support for VFS in add-commands

This commit is contained in:
Thomas Adamcik 2014-01-14 00:31:45 +01:00
parent 62ad6d1de2
commit 1b32b56cf0

View File

@ -22,10 +22,32 @@ def add(context, uri):
"""
if not uri:
return
tl_tracks = context.core.tracklist.add(uri=uri).get()
if not tl_tracks:
if tl_tracks:
return
if not uri.startswith('/'):
uri = '/%s' % uri
browse_futures = [context.core.library.browse(uri)]
lookup_futures = []
while browse_futures:
for ref in browse_futures.pop().get():
if ref.type == ref.DIRECTORY:
browse_futures.append(context.core.library.browse(ref.uri))
else:
lookup_futures.append(context.core.library.lookup(ref.uri))
tracks = []
for future in lookup_futures:
tracks.extend(future.get())
if not tracks:
raise MpdNoExistError('directory or file not found', command='add')
context.core.tracklist.add(tracks=tracks)
@handle_request(r'addid\ "(?P<uri>[^"]*)"(\ "(?P<songpos>\d+)")*$')
def addid(context, uri, songpos=None):