X-Git-Url: https://git.distorted.org.uk/~mdw/profile/blobdiff_plain/a367c2fe3a46d3e07313d756b7ef5e0bec84fcf3..675455c2159ddadcc96a04b470d9516d54bd7fe7:/bin/disorder-notify diff --git a/bin/disorder-notify b/bin/disorder-notify index 780aadc..e801d3d 100755 --- a/bin/disorder-notify +++ b/bin/disorder-notify @@ -3,6 +3,9 @@ sub notify ($$) { my ($head, $body) = @_; + $body =~ s:\&:&:g; + $body =~ s:\<:<:g; + $body =~ s:\>:>:g; my $kid = fork; defined $kid or return; if (!$kid) { @@ -48,6 +51,8 @@ sub now_playing (;$) { for (;;) { open my $log, "-|", "disorder", "log"; + my $startp = 1; + my $stateinfo = undef; LINE: while (<$log>) { chomp; my @f = (); @@ -76,7 +81,11 @@ for (;;) { push @f, $t if defined $t; my $what = $f[1]; - if ($what eq "state") { + if ($what eq "volume" && $startp) { + $startp = 0; + notify "DisOrder state", "Connected: $startinfo"; + now_playing; + } elsif ($what eq "state") { my $st = $f[2]; my $msg; my $np = 0; @@ -87,9 +96,15 @@ for (;;) { elsif ($st eq "pause") { $msg = "paused"; } elsif ($st eq "resume") { $msg = "playing"; $np = 1; } else { next LINE; } - notify "DisOrder state", ucfirst $msg; - now_playing if $np; + if (!$startp) { + notify "DisOrder state", ucfirst $msg; + now_playing if $np; + } else { + if (defined $startinfo) { $startinfo .= "; " . $msg; } + else { $startinfo = $msg; } } + } elsif ($what eq "scratched") { + notify "DisOrder state", "Scratched playing track"; } elsif ($what eq "playing") { now_playing $f[2]; }