mirror of
https://github.com/SoPat712/allstarr.git
synced 2026-02-09 23:55:10 -05:00
Bypass sync window check on startup to fetch missing tracks immediately
- On startup, if no cache exists, fetch immediately regardless of sync window - Regular background checks still respect sync window timing - Ensures playlists are populated even if app restarts before sync time
This commit is contained in:
@@ -78,10 +78,10 @@ public class SpotifyMissingTracksFetcher : BackgroundService
|
||||
var shouldRunOnStartup = await ShouldRunOnStartupAsync();
|
||||
if (shouldRunOnStartup)
|
||||
{
|
||||
_logger.LogInformation("Running initial fetch on startup");
|
||||
_logger.LogInformation("Running initial fetch on startup (bypassing sync window check)");
|
||||
try
|
||||
{
|
||||
await FetchMissingTracksAsync(stoppingToken);
|
||||
await FetchMissingTracksAsync(stoppingToken, bypassSyncWindowCheck: true);
|
||||
_hasRunOnce = true;
|
||||
}
|
||||
catch (Exception ex)
|
||||
@@ -91,7 +91,7 @@ public class SpotifyMissingTracksFetcher : BackgroundService
|
||||
}
|
||||
else
|
||||
{
|
||||
_logger.LogInformation("Skipping startup fetch - already ran within last 24 hours");
|
||||
_logger.LogInformation("Skipping startup fetch - already have recent cache");
|
||||
_hasRunOnce = true;
|
||||
}
|
||||
}
|
||||
@@ -213,7 +213,7 @@ public class SpotifyMissingTracksFetcher : BackgroundService
|
||||
}
|
||||
}
|
||||
|
||||
private async Task FetchMissingTracksAsync(CancellationToken cancellationToken)
|
||||
private async Task FetchMissingTracksAsync(CancellationToken cancellationToken, bool bypassSyncWindowCheck = false)
|
||||
{
|
||||
var settings = _spotifySettings.Value;
|
||||
var now = DateTime.UtcNow;
|
||||
@@ -222,13 +222,20 @@ public class SpotifyMissingTracksFetcher : BackgroundService
|
||||
.AddMinutes(settings.SyncStartMinute);
|
||||
var syncEnd = syncStart.AddHours(settings.SyncWindowHours);
|
||||
|
||||
// Only run after the sync window has passed
|
||||
if (now < syncEnd)
|
||||
// Only run after the sync window has passed (unless bypassing for startup)
|
||||
if (!bypassSyncWindowCheck && now < syncEnd)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
_logger.LogInformation("Sync window passed, searching last 24 hours for missing tracks...");
|
||||
if (bypassSyncWindowCheck)
|
||||
{
|
||||
_logger.LogInformation("Fetching missing tracks (startup mode, bypassing sync window check)...");
|
||||
}
|
||||
else
|
||||
{
|
||||
_logger.LogInformation("Sync window passed, searching last 24 hours for missing tracks...");
|
||||
}
|
||||
|
||||
foreach (var kvp in _playlistIdToName)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user