From: Mark Wooding Date: Sat, 21 Jul 2018 14:13:38 +0000 (+0100) Subject: bin/disorder-notify: Lift out the `now playing' machinery. X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~mdw/git/profile/commitdiff_plain/f1b1fa59c64071df6bb74a3446ebf1fbbd54bea6?ds=sidebyside bin/disorder-notify: Lift out the `now playing' machinery. --- diff --git a/bin/disorder-notify b/bin/disorder-notify index 3f6823c..d36db9a 100755 --- a/bin/disorder-notify +++ b/bin/disorder-notify @@ -27,6 +27,20 @@ sub cmd (@) { else { return "??? multiple lines"; } } +sub now_playing ($) { + my ($track) = @_; + my %p; + for my $p ("artist", "album", "title") + { $p{$p} = cmd "part", $track, "display", $p; } + if ($p{artist} =~ /^[A-Z]$/) + { $p{artist} = $p{album}; $p{album} = undef; } + elsif ($p{artist} eq "share" && $p{album} eq "disorder") + { next LINE; } + my $r = "$p{artist}: ‘$p{title}’"; + if (defined $p{album}) { $r .= ", from ‘$p{album}’"; } + notify "DisOrder: now playing", $r; +} + for (;;) { open my $log, "-|", "disorder", "log"; LINE: while (<$log>) { @@ -73,17 +87,7 @@ for (;;) { notify "DisOrder state", "Resuming"; } } elsif ($what eq "playing") { - my $track = $f[2]; - my %p; - for my $p ("artist", "album", "title") - { $p{$p} = cmd "part", $track, "display", $p; } - if ($p{artist} =~ /^[A-Z]$/) - { $p{artist} = $p{album}; $p{album} = undef; } - elsif ($p{artist} eq "share" && $p{album} eq "disorder") - { next LINE; } - my $r = "$p{artist}: ‘$p{title}’"; - if (defined $p{album}) { $r .= ", from ‘$p{album}’"; } - notify "Now playing", $r; + now_playing $f[2]; } } close $log;