]> git.ktnx.net Git - mpd-feeder.git/blobdiff - lib/App/MPD/Feeder.pm
adjust some log priorities
[mpd-feeder.git] / lib / App / MPD / Feeder.pm
index c951c70e8dc6134a7cbdda903042445e43f17d9f..c1938d90f3fd2658fad2bd39d32e24251520fb3c 100644 (file)
@@ -5,7 +5,6 @@ class App::MPD::Feeder;
 
 use App::MPD::Feeder::DB;
 use App::MPD::Feeder::Options;
-use App::MPD::Feeder::WorkQueue;
 use DBD::Pg;
 use DBI;
 use Getopt::Long;
@@ -91,6 +90,8 @@ method init_mpd {
         }
     );
 
+    my $loop = $mpd->loop;
+
     my $int_signal_handler = sub {
         state $signal_count = 0;
         $signal_count++;
@@ -103,12 +104,12 @@ method init_mpd {
 
         $log->debug("Signal received. Stopping loop");
         $quit_requested = 1;
-        $mpd->loop->stop('quit');
+        $loop->stop('quit');
         $self->break_idle;
     };
 
     for (qw(TERM INT)) {
-        $mpd->loop->add(
+        $loop->add(
             IO::Async::Signal->new(
                 name       => $_,
                 on_receipt => $int_signal_handler,
@@ -116,19 +117,19 @@ method init_mpd {
         );
     }
 
-    $mpd->loop->add(
+    $loop->add(
         IO::Async::Signal->new(
             name       => 'HUP',
             on_receipt => sub {
                 $log->debug("SIGHUP received. Scheduling reload");
                 $reload_requested = 1;
-                $mpd->loop->stop('reload');
+                $loop->stop('reload');
                 $self->break_idle;
             },
         )
     );
 
-    $mpd->loop->add(
+    $loop->add(
         IO::Async::Signal->new(
             name       => 'USR1',
             on_receipt => sub {
@@ -229,7 +230,7 @@ method queue_songs( $num = undef ) {
         );
     }
 
-    $log->info("About to add $num songs to the playlist");
+    $log->debug("About to add $num songs to the playlist");
 
     my @paths;
     for my $song (@list) {
@@ -238,7 +239,7 @@ method queue_songs( $num = undef ) {
         push @paths, $path;
     }
 
-    $log->debug( "Adding " . join( ', ', map {"«$_»"} @paths ) );
+    $log->info( "Adding " . join( ', ', map {"«$_»"} @paths ) );
 
     # MPD needs raw bytes
     utf8::encode($_) for @paths;
@@ -258,7 +259,7 @@ method queue_songs( $num = undef ) {
 }
 
 method reexec {
-    $log->notice("disconnecting and re-starting");
+    $log->info("disconnecting and re-starting");
     $db->disconnect;
     undef $mpd;
 
@@ -344,23 +345,25 @@ method pulse {
 
     $log->trace('got out of idle');
 
-    if ( $idler->is_done ) {
-        my $result = $idler->get;
-        undef $idler;
-        if ( ref $result and $result->{changed} ) {
-            my $changed = $result->{changed};
-            $changed = [$changed] unless ref $changed;
+    if ($idler) {
+        if ( $idler->is_done ) {
+            my $result = $idler->get;
+            undef $idler;
+            if ( ref $result and $result->{changed} ) {
+                my $changed = $result->{changed};
+                $changed = [$changed] unless ref $changed;
 
-            $mpd->emit($_) for @$changed;
+                $mpd->emit($_) for @$changed;
+            }
+        }
+        elsif ( $idler->is_cancelled ) {
+            $log->trace("idle was cancelled");
+            undef $idler;
+        }
+        elsif ( $idler->is_failed ) {
+            $log->warn("idle failed: ".$idler->failure);
+            undef $idler;
         }
-    }
-    elsif ( $idler->is_cancelled ) {
-        $log->trace("idle was cancelled");
-        undef $idler;
-    }
-    elsif ( $idler->is_failed ) {
-        $log->warn("idle failed: ".$idler->failure);
-        undef $idler;
     }
 
     $mpd->loop->stop;
@@ -371,12 +374,15 @@ method run_loop {
 
     $self->init_mpd;
 
-    $mpd->loop->add(
+    my $loop = $mpd->loop;
+
+    $loop->add(
         IO::Async::Timer::Periodic->new(
             interval => 60,
             on_tick  => sub {
                 if (!$mpd_connected) {
                     $log->trace("Not connected to MPD. Skipping alive check.");
+                    $loop->stop('disconnected');
                     return;
                 }