search last 24 hours for missing tracks files in manual sync

This commit is contained in:
2026-01-31 19:30:01 -05:00
parent e7f72cd87a
commit 47d59ec0f5

View File

@@ -2003,17 +2003,15 @@ public class JellyfinController : ControllerBase
_logger.LogInformation("Fetching missing tracks for {Playlist} (ID: {Id})", playlistName, playlistId); _logger.LogInformation("Fetching missing tracks for {Playlist} (ID: {Id})", playlistName, playlistId);
// Try to fetch the missing tracks file // Try to fetch the missing tracks file - search last 24 hours
var today = DateTime.UtcNow.Date; var now = DateTime.UtcNow;
var syncStart = today var searchStart = now.AddHours(-24);
.AddHours(_spotifySettings.SyncStartHour)
.AddMinutes(_spotifySettings.SyncStartMinute);
var syncEnd = syncStart.AddHours(_spotifySettings.SyncWindowHours);
var httpClient = new HttpClient(); var httpClient = new HttpClient();
var found = false; var found = false;
for (var time = syncStart; time <= syncEnd; time = time.AddMinutes(5)) // Search every 5 minutes for the last 24 hours
for (var time = searchStart; time <= now; time = time.AddMinutes(5))
{ {
var filename = $"{playlistName}_missing_{time:yyyy-MM-dd_HH-mm}.json"; var filename = $"{playlistName}_missing_{time:yyyy-MM-dd_HH-mm}.json";
var url = $"{_settings.Url}/Viperinius.Plugin.SpotifyImport/MissingTracksFile" + var url = $"{_settings.Url}/Viperinius.Plugin.SpotifyImport/MissingTracksFile" +
@@ -2021,6 +2019,7 @@ public class JellyfinController : ControllerBase
try try
{ {
_logger.LogDebug("Trying {Filename}", filename);
var response = await httpClient.GetAsync(url); var response = await httpClient.GetAsync(url);
if (response.IsSuccessStatusCode) if (response.IsSuccessStatusCode)
{ {
@@ -2038,8 +2037,8 @@ public class JellyfinController : ControllerBase
filename = filename filename = filename
}; };
_logger.LogInformation("✓ Cached {Count} missing tracks for {Playlist}", _logger.LogInformation("✓ Cached {Count} missing tracks for {Playlist} from {Filename}",
tracks.Count, playlistName); tracks.Count, playlistName, filename);
found = true; found = true;
break; break;
} }