diff options
Diffstat (limited to 'lib/Vlc/Client.rakumod')
-rw-r--r-- | lib/Vlc/Client.rakumod | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/lib/Vlc/Client.rakumod b/lib/Vlc/Client.rakumod index 8951c60..0860df4 100644 --- a/lib/Vlc/Client.rakumod +++ b/lib/Vlc/Client.rakumod @@ -49,6 +49,22 @@ class Vlc::Client { method status() { my $res = await self!call-vlc('status.xml'); my XML::Document $status = await $res.body; - return Promise.kept({:status(xml-to-hash($status.root))}) + return Promise.kept(xml-to-hash($status.root)); + } + + method playlist() { + my $res = await self!call-vlc('playlist.xml'); + my XML::Document $playlist = await $res.body; + my @playlist-items = $playlist.elements() + .grep(*.attribs<name> eq 'Playlist').first + .elements().map( + -> $leaf { + %( + $leaf.attribs<name id duration uri>:p.Slip, + current => $leaf.attribs<current>:exists, + ) + }, + ); + return Promise.kept(@playlist-items); } } |