aboutsummaryrefslogtreecommitdiff
path: root/lib/Vlc/Client.rakumod
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Vlc/Client.rakumod')
-rw-r--r--lib/Vlc/Client.rakumod18
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);
}
}