summaryrefslogtreecommitdiffstats
path: root/clerk
diff options
context:
space:
mode:
Diffstat (limited to 'clerk')
-rwxr-xr-xclerk27
1 files changed, 16 insertions, 11 deletions
diff --git a/clerk b/clerk
index 452715f..7123008 100755
--- a/clerk
+++ b/clerk
@@ -21,7 +21,7 @@ use HTTP::Date;
use IPC::Run qw( timeout start );
use List::Util qw(any);
use Net::MPD;
-use POSIX;
+use POSIX qw(tzset);
use autodie;
my $self="$Bin/$Script";
@@ -274,20 +274,26 @@ sub do_action {
$mpd->{socket}->close;
if ($context eq "playlist") {
if ($in eq "Save current Queue\n") {
- my $now = time();
- my $filename = strftime('%Y-%m-%dT%H:%M:%SZ', gmtime($now)), "\n";
+ tzset();
+ my $filename = localtime();
$mpd->save($filename);
} else {
- my @action_items = ("Add\n", "Replace\n");
+ my @action_items = ("Add\n", "Replace\n", "Delete\n");
$action = backend_call(\@action_items);
if ($action eq "Replace\n") {
$mpd->clear();
- }
- chomp $in;
- $mpd->load("$in");
- if ($action eq "Replace\n") {
+ chomp $in;
+ $mpd->load("$in");
$mpd->play();
}
+ elsif ($action eq "Add\n") {
+ chomp $in;
+ $mpd->load("$in");
+ }
+ elsif ($action eq "Delete\n") {
+ chomp $in;
+ $mpd->rm("$in");
+ }
}
} elsif ($context eq "tracks") {
my @action_items = ("Add\n", "Replace\n");
@@ -310,10 +316,9 @@ sub do_action {
}
sub list_playlists {
- my @playlists = $mpd->list_playlists();
- my $output = formatted_playlists(\@playlists);
-
for (;;) {
+ my @playlists = $mpd->list_playlists();
+ my $output = formatted_playlists(\@playlists);
my $out = backend_call($output);
do_action($out, "playlist", "ignore");
}