Add playlist parsing from env var and debug logging for Spotify feature

This commit is contained in:
2026-01-31 17:00:16 -05:00
parent 2c3ef5c360
commit 5f9451f5b4
2 changed files with 32 additions and 3 deletions

View File

@@ -108,8 +108,28 @@ builder.Services.Configure<SquidWTFSettings>(
builder.Configuration.GetSection("SquidWTF")); builder.Configuration.GetSection("SquidWTF"));
builder.Services.Configure<RedisSettings>( builder.Services.Configure<RedisSettings>(
builder.Configuration.GetSection("Redis")); builder.Configuration.GetSection("Redis"));
builder.Services.Configure<SpotifyImportSettings>( // Configure Spotify Import settings with custom playlist parsing from env var
builder.Configuration.GetSection("SpotifyImport")); builder.Services.Configure<SpotifyImportSettings>(options =>
{
builder.Configuration.GetSection("SpotifyImport").Bind(options);
// Parse SPOTIFY_IMPORT_PLAYLISTS env var (comma-separated) into Playlists array
var playlistsEnv = builder.Configuration.GetValue<string>("SpotifyImport:Playlists");
if (!string.IsNullOrWhiteSpace(playlistsEnv) && options.Playlists.Count == 0)
{
options.Playlists = playlistsEnv
.Split(',', StringSplitOptions.RemoveEmptyEntries)
.Select(name => name.Trim())
.Where(name => !string.IsNullOrEmpty(name))
.Select(name => new SpotifyPlaylistConfig
{
Name = name,
SpotifyName = name,
Enabled = true
})
.ToList();
}
});
// Get shared settings from the active backend config // Get shared settings from the active backend config
MusicService musicService; MusicService musicService;

View File

@@ -31,6 +31,8 @@ public class SpotifyMissingTracksFetcher : BackgroundService
protected override async Task ExecuteAsync(CancellationToken stoppingToken) protected override async Task ExecuteAsync(CancellationToken stoppingToken)
{ {
_logger.LogInformation("SpotifyMissingTracksFetcher: Starting up...");
if (!_spotifySettings.Value.Enabled) if (!_spotifySettings.Value.Enabled)
{ {
_logger.LogInformation("Spotify playlist injection is disabled"); _logger.LogInformation("Spotify playlist injection is disabled");
@@ -46,7 +48,14 @@ public class SpotifyMissingTracksFetcher : BackgroundService
return; return;
} }
_logger.LogInformation("Spotify missing tracks fetcher started"); _logger.LogInformation("Spotify missing tracks fetcher started - monitoring {Count} playlists",
_spotifySettings.Value.Playlists.Count);
foreach (var playlist in _spotifySettings.Value.Playlists)
{
_logger.LogInformation(" - {Name} (SpotifyName: {SpotifyName}, Enabled: {Enabled})",
playlist.Name, playlist.SpotifyName, playlist.Enabled);
}
// Run once on startup if we haven't run in the last 24 hours // Run once on startup if we haven't run in the last 24 hours
if (!_hasRunOnce) if (!_hasRunOnce)