From 578deb0e913275b83688e413423118078e920adc Mon Sep 17 00:00:00 2001 From: Mark Wooding Date: Mon, 22 Jun 2020 15:39:46 +0100 Subject: [PATCH] bin/disorder-notify: Hoist `get_now_playing' above `format_now_playing'. --- bin/disorder-notify | 29 +++++++++++++++++------------ 1 file changed, 17 insertions(+), 12 deletions(-) diff --git a/bin/disorder-notify b/bin/disorder-notify index 91278f0..78c3e8e 100755 --- a/bin/disorder-notify +++ b/bin/disorder-notify @@ -158,18 +158,6 @@ sub fmt_duration ($) { return sprintf "%d:%02d", int $n/60, $n%60; } -sub format_now_playing (\%) { - my ($info) = @_; - exists $info->{track} or return "Nothing."; - my $r = "$info->{artist}: ‘$info->{title}’"; - $r .= ", from ‘$info->{album}’" if $info->{album}; - exists $info->{sofar} && exists $info->{length} and - $r .= sprintf " (%s/%s)", - fmt_duration $info->{sofar}, fmt_duration $info->{length}; - $r .= "\n(chosen by $info->{submitter})" if exists $info->{submitter}; - return $r; -} - sub get_now_playing ($) { my ($sk) = @_; my $r = send_command $sk, "playing"; @@ -181,6 +169,23 @@ sub get_now_playing ($) { return \%info; } +sub format_now_playing (;\%) { + my ($info) = @_; + unless (defined $info) { + my $sk = configured_connection; + $info = get_now_playing $sk; + close $sk; + } + exists $info->{track} or return "Nothing."; + my $r = "$info->{artist}: ‘$info->{title}’"; + $r .= ", from ‘$info->{album}’" if $info->{album}; + exists $info->{sofar} && exists $info->{length} and + $r .= sprintf " (%s/%s)", + fmt_duration $info->{sofar}, fmt_duration $info->{length}; + $r .= "\n(chosen by $info->{submitter})" if exists $info->{submitter}; + return $r; +} + sub watch_and_notify0 ($) { my ($now_playing) = @_; -- 2.11.0