using API.Schema.MangaContext; using Microsoft.EntityFrameworkCore; namespace API.Workers; /// /// Creates Jobs to update available Chapters for all Manga that are marked for Download /// public class CheckForNewChaptersWorker(TimeSpan? interval = null, IEnumerable? dependsOn = null) : BaseWorkerWithContext(dependsOn), IPeriodic { public DateTime LastExecution { get; set; } = DateTime.UnixEpoch; public TimeSpan Interval { get; set; } = interval??TimeSpan.FromMinutes(60); protected override async Task DoWorkInternal() { Log.Debug("Checking for new chapters..."); List> connectorIdsManga = await DbContext.MangaConnectorToManga .Include(id => id.Obj) .Where(id => id.UseForDownload) .ToListAsync(CancellationToken); Log.Debug($"Creating {connectorIdsManga.Count} update jobs..."); List newWorkers = connectorIdsManga.Select(id => new RetrieveMangaChaptersFromMangaconnectorWorker(id, Tranga.Settings.DownloadLanguage)) .ToList(); return newWorkers.ToArray(); } }