Add UpdateCoversWorker

This commit is contained in:
2025-07-21 12:45:29 +02:00
parent 16c0cde526
commit 9d2dd2eabb
2 changed files with 21 additions and 0 deletions

View File

@@ -36,6 +36,7 @@ public static class Tranga
internal static readonly CleanupMangaCoversWorker CleanupMangaCoversWorker = new(); internal static readonly CleanupMangaCoversWorker CleanupMangaCoversWorker = new();
internal static readonly StartNewChapterDownloadsWorker StartNewChapterDownloadsWorker = new(); internal static readonly StartNewChapterDownloadsWorker StartNewChapterDownloadsWorker = new();
internal static readonly RemoveOldNotificationsWorker RemoveOldNotificationsWorker = new(); internal static readonly RemoveOldNotificationsWorker RemoveOldNotificationsWorker = new();
internal static readonly UpdateCoversWorker UpdateCoversWorker = new();
internal static void StartLogger() internal static void StartLogger()
{ {
@@ -53,6 +54,7 @@ public static class Tranga
AddWorker(CleanupMangaCoversWorker); AddWorker(CleanupMangaCoversWorker);
AddWorker(StartNewChapterDownloadsWorker); AddWorker(StartNewChapterDownloadsWorker);
AddWorker(RemoveOldNotificationsWorker); AddWorker(RemoveOldNotificationsWorker);
AddWorker(UpdateCoversWorker);
} }
internal static bool TryGetMangaConnector(string name, [NotNullWhen(true)]out MangaConnector? mangaConnector) internal static bool TryGetMangaConnector(string name, [NotNullWhen(true)]out MangaConnector? mangaConnector)

View File

@@ -0,0 +1,19 @@
using API.Schema.MangaContext;
namespace API.Workers;
public class UpdateCoversWorker(TimeSpan? interval = null, IEnumerable<BaseWorker>? dependsOn = null)
: BaseWorkerWithContext<MangaContext>(dependsOn), IPeriodic
{
public DateTime LastExecution { get; set; } = DateTime.UnixEpoch;
public TimeSpan Interval { get; set; } = interval ?? TimeSpan.FromHours(6);
protected override BaseWorker[] DoWorkInternal()
{
List<BaseWorker> workers = new();
foreach (MangaConnectorId<Manga> mangaConnectorId in DbContext.MangaConnectorToManga)
workers.Add(new DownloadCoverFromMangaconnectorWorker(mangaConnectorId));
return workers.ToArray();
}
}