mpd: Add support for VFS in add-commands
This commit is contained in:
parent
62ad6d1de2
commit
1b32b56cf0
@ -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):
|
||||
|
||||
Loading…
Reference in New Issue
Block a user