From 9d2dd2eabb9e8bceab7418a94cb6af88aa245097 Mon Sep 17 00:00:00 2001 From: glax Date: Mon, 21 Jul 2025 12:45:29 +0200 Subject: [PATCH] Add UpdateCoversWorker --- API/Tranga.cs | 2 ++ .../PeriodicWorkers/UpdateCoversWorker.cs | 19 +++++++++++++++++++ 2 files changed, 21 insertions(+) create mode 100644 API/Workers/PeriodicWorkers/UpdateCoversWorker.cs diff --git a/API/Tranga.cs b/API/Tranga.cs index eb8764c..1fae851 100644 --- a/API/Tranga.cs +++ b/API/Tranga.cs @@ -36,6 +36,7 @@ public static class Tranga internal static readonly CleanupMangaCoversWorker CleanupMangaCoversWorker = new(); internal static readonly StartNewChapterDownloadsWorker StartNewChapterDownloadsWorker = new(); internal static readonly RemoveOldNotificationsWorker RemoveOldNotificationsWorker = new(); + internal static readonly UpdateCoversWorker UpdateCoversWorker = new(); internal static void StartLogger() { @@ -53,6 +54,7 @@ public static class Tranga AddWorker(CleanupMangaCoversWorker); AddWorker(StartNewChapterDownloadsWorker); AddWorker(RemoveOldNotificationsWorker); + AddWorker(UpdateCoversWorker); } internal static bool TryGetMangaConnector(string name, [NotNullWhen(true)]out MangaConnector? mangaConnector) diff --git a/API/Workers/PeriodicWorkers/UpdateCoversWorker.cs b/API/Workers/PeriodicWorkers/UpdateCoversWorker.cs new file mode 100644 index 0000000..e872a87 --- /dev/null +++ b/API/Workers/PeriodicWorkers/UpdateCoversWorker.cs @@ -0,0 +1,19 @@ +using API.Schema.MangaContext; + +namespace API.Workers; + +public class UpdateCoversWorker(TimeSpan? interval = null, IEnumerable? dependsOn = null) + : BaseWorkerWithContext(dependsOn), IPeriodic +{ + + public DateTime LastExecution { get; set; } = DateTime.UnixEpoch; + public TimeSpan Interval { get; set; } = interval ?? TimeSpan.FromHours(6); + + protected override BaseWorker[] DoWorkInternal() + { + List workers = new(); + foreach (MangaConnectorId mangaConnectorId in DbContext.MangaConnectorToManga) + workers.Add(new DownloadCoverFromMangaconnectorWorker(mangaConnectorId)); + return workers.ToArray(); + } +} \ No newline at end of file