diff --git a/API/Tranga.cs b/API/Tranga.cs index 1f21362..f1114c1 100644 --- a/API/Tranga.cs +++ b/API/Tranga.cs @@ -145,6 +145,12 @@ public static class Tranga private static Action AfterWork(BaseWorker worker, Action? callback = null) => () => { Log.Debug($"AfterWork {worker}"); + if (RunningWorkers.TryGetValue(worker, out Task? task)) + { + BaseWorker[] newWorkers = task.Result; + Log.Debug($"Resulted in {newWorkers.Length} new Workers."); + AddWorkers(newWorkers); + } RunningWorkers.Remove(worker, out _); callback?.Invoke(); }; diff --git a/API/Workers/PeriodicWorkers/StartNewChapterDownloadsWorker.cs b/API/Workers/PeriodicWorkers/StartNewChapterDownloadsWorker.cs index 3c88781..e02c04b 100644 --- a/API/Workers/PeriodicWorkers/StartNewChapterDownloadsWorker.cs +++ b/API/Workers/PeriodicWorkers/StartNewChapterDownloadsWorker.cs @@ -14,12 +14,16 @@ public class StartNewChapterDownloadsWorker(TimeSpan? interval = null, IEnumerab public TimeSpan Interval { get; set; } = interval ?? TimeSpan.FromMinutes(1); protected override async Task DoWorkInternal() { + Log.Debug("Checking for missing chapters..."); + // Get missing chapters List> missingChapters = await DbContext.MangaConnectorToChapter .Include(id => id.Obj) .Where(id => id.Obj.Downloaded == false && id.UseForDownload) .ToListAsync(CancellationToken); + Log.Debug($"Found {missingChapters.Count} missing downloads."); + // Create new jobs List newWorkers = missingChapters.Select(mcId => new DownloadChapterFromMangaconnectorWorker(mcId)).ToList();