mirror of
https://github.com/SoPat712/allstarr.git
synced 2026-02-10 07:58:39 -05:00
Add lyrics completion bar per playlist showing percentage of tracks with cached lyrics
Some checks failed
CI / build-and-test (push) Has been cancelled
Some checks failed
CI / build-and-test (push) Has been cancelled
This commit is contained in:
@@ -486,6 +486,54 @@ public class AdminController : ControllerBase
|
||||
_logger.LogWarning("Playlist {Name} has no JellyfinId configured", config.Name);
|
||||
}
|
||||
|
||||
// Get lyrics completion status
|
||||
try
|
||||
{
|
||||
var tracks = await _playlistFetcher.GetPlaylistTracksAsync(config.Name);
|
||||
if (tracks.Count > 0)
|
||||
{
|
||||
var lyricsWithCount = 0;
|
||||
var lyricsWithoutCount = 0;
|
||||
|
||||
foreach (var track in tracks)
|
||||
{
|
||||
var cacheKey = $"lyrics:{track.PrimaryArtist}:{track.Title}:{track.Album}:{track.DurationMs / 1000}";
|
||||
var existingLyrics = await _cache.GetStringAsync(cacheKey);
|
||||
|
||||
if (!string.IsNullOrEmpty(existingLyrics))
|
||||
{
|
||||
lyricsWithCount++;
|
||||
}
|
||||
else
|
||||
{
|
||||
lyricsWithoutCount++;
|
||||
}
|
||||
}
|
||||
|
||||
playlistInfo["lyricsTotal"] = tracks.Count;
|
||||
playlistInfo["lyricsCached"] = lyricsWithCount;
|
||||
playlistInfo["lyricsMissing"] = lyricsWithoutCount;
|
||||
playlistInfo["lyricsPercentage"] = tracks.Count > 0
|
||||
? (int)Math.Round((double)lyricsWithCount / tracks.Count * 100)
|
||||
: 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
playlistInfo["lyricsTotal"] = 0;
|
||||
playlistInfo["lyricsCached"] = 0;
|
||||
playlistInfo["lyricsMissing"] = 0;
|
||||
playlistInfo["lyricsPercentage"] = 0;
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
_logger.LogWarning(ex, "Failed to get lyrics completion for playlist {Name}", config.Name);
|
||||
playlistInfo["lyricsTotal"] = 0;
|
||||
playlistInfo["lyricsCached"] = 0;
|
||||
playlistInfo["lyricsMissing"] = 0;
|
||||
playlistInfo["lyricsPercentage"] = 0;
|
||||
}
|
||||
|
||||
playlists.Add(playlistInfo);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user