]> git.ktnx.net Git - mpd-feeder.git/commitdiff
show counts of available songs/albums/artist
authorDamyan Ivanov <dmn@debian.org>
Thu, 11 Nov 2021 20:12:03 +0000 (20:12 +0000)
committerDamyan Ivanov <dmn@debian.org>
Thu, 11 Nov 2021 20:12:03 +0000 (20:12 +0000)
for now in log_level=debug

bin/mpd-feeder

index 8644dde79e4b6addcbceaf71695e20f204c38f02..04da38fc457f5ee42068944122fad25e2bff4cc8 100755 (executable)
@@ -357,6 +357,93 @@ SQL
         }
         undef $sth;
 
+        if (scalar(@result) == $num and  $log->is_debug) {
+            $sql =~ s/^SELECT .+$/SELECT COUNT(DISTINCT s.path)/m;
+            $sql =~ s/^ORDER BY .+$//m;
+            $sql =~ s/^LIMIT .+$//m;
+            $log->debug($sql);
+            my $sth = $db->prepare_cached($sql);
+            pop @params;
+            $sth->execute(@params);
+            my $count = ($sth->fetchrow_array)[0];
+            $sth->finish;
+
+            $sth = $db->prepare_cached('SELECT COUNT(*) FROM songs');
+            $sth->execute;
+            my $total = ($sth->fetchrow_array)[0];
+            $log->debug(
+                sprintf(
+                    "Number of songs meeting the criteria: %d out of total %d (%5.2f%%)",
+                    $count, $total, 100.0 * $count / $total
+                )
+            );
+            $sth->finish;
+
+            $sql = <<SQL;
+SELECT COUNT(*)
+FROM songs s
+WHERE (s.last_queued IS NULL OR s.last_queued < CURRENT_TIMESTAMP - (? || ' seconds')::interval)
+UNION
+SELECT COUNT(*)
+FROM songs
+SQL
+            $sth = $db->prepare_cached($sql);
+            $sth->execute($opt->min_song_interval);
+            $count = ($sth->fetchrow_array)[0];
+            $total = ($sth->fetchrow_array)[0];
+            $sth->finish;
+
+            $log->debug(
+                sprintf(
+                    "Number of songs not queued soon: %d out of total %d (%5.2f%%)",
+                    $count, $total, 100.0 * $count / $total
+                )
+            );
+            $sth->finish;
+
+            $sql = <<SQL;
+SELECT COUNT(*)
+FROM artists ar
+WHERE (ar.last_queued IS NULL OR ar.last_queued < CURRENT_TIMESTAMP - (? || ' seconds')::interval)
+UNION
+SELECT COUNT(*)
+FROM artists
+SQL
+            $sth = $db->prepare_cached($sql);
+            $sth->execute($opt->min_artist_interval);
+            $count = ($sth->fetchrow_array)[0];
+            $total = ($sth->fetchrow_array)[0];
+            $log->debug(
+                sprintf(
+                    "Number of artists not queued soon: %d out of total %d (%5.2f%%)",
+                    $count, $total, 100.0 * $count / $total
+                )
+            );
+            $sth->finish;
+
+            $sql = <<SQL;
+SELECT COUNT(*)
+FROM albums al
+WHERE (al.last_queued IS NULL OR al.last_queued < CURRENT_TIMESTAMP - (? || ' seconds')::interval)
+UNION
+SELECT COUNT(*)
+FROM albums
+SQL
+            $sth = $db->prepare_cached($sql);
+            $sth->execute($opt->min_album_interval);
+            $count = ($sth->fetchrow_array)[0];
+            $total = ($sth->fetchrow_array)[0];
+            $log->debug(
+                sprintf(
+                    "Number of albums not queued soon: %d out of total %d (%5.2f%%)",
+                    $count, $total, 100.0 * $count / $total
+                )
+            );
+            $sth->finish;
+
+            undef $sth;
+        }
+
         return @result;
     }