mirror of
https://github.com/C9Glax/tranga.git
synced 2025-07-04 09:54:16 +02:00
Add default Tranga-Workers
This commit is contained in:
@ -2,6 +2,7 @@
|
|||||||
using API.Schema.MangaContext;
|
using API.Schema.MangaContext;
|
||||||
using API.Schema.MangaContext.MetadataFetchers;
|
using API.Schema.MangaContext.MetadataFetchers;
|
||||||
using API.Workers;
|
using API.Workers;
|
||||||
|
using API.Workers.MaintenanceWorkers;
|
||||||
using log4net;
|
using log4net;
|
||||||
using log4net.Config;
|
using log4net.Config;
|
||||||
using Microsoft.EntityFrameworkCore;
|
using Microsoft.EntityFrameworkCore;
|
||||||
@ -24,12 +25,26 @@ public static class Tranga
|
|||||||
private static readonly ILog Log = LogManager.GetLogger(typeof(Tranga));
|
private static readonly ILog Log = LogManager.GetLogger(typeof(Tranga));
|
||||||
internal static readonly MetadataFetcher[] MetadataFetchers = [new MyAnimeList()];
|
internal static readonly MetadataFetcher[] MetadataFetchers = [new MyAnimeList()];
|
||||||
internal static TrangaSettings Settings = TrangaSettings.Load();
|
internal static TrangaSettings Settings = TrangaSettings.Load();
|
||||||
|
|
||||||
|
internal static readonly UpdateMetadataWorker UpdateMetadataWorker = new ();
|
||||||
|
internal static readonly SendNotificationsWorker SendNotificationsWorker = new();
|
||||||
|
internal static readonly UpdateChaptersDownloadedWorker UpdateChaptersDownloadedWorker = new();
|
||||||
|
internal static readonly CheckForNewChaptersWorker CheckForNewChaptersWorker = new();
|
||||||
|
internal static readonly CleanupMangaCoversWorker CleanupMangaCoversWorker = new();
|
||||||
|
internal static readonly StartNewChapterDownloadsWorker StartNewChapterDownloadsWorker = new();
|
||||||
|
|
||||||
internal static void StartLogger()
|
internal static void StartLogger()
|
||||||
{
|
{
|
||||||
BasicConfigurator.Configure();
|
BasicConfigurator.Configure();
|
||||||
Log.Info("Logger Configured.");
|
Log.Info("Logger Configured.");
|
||||||
Log.Info(TRANGA);
|
Log.Info(TRANGA);
|
||||||
|
|
||||||
|
AddWorker(UpdateMetadataWorker);
|
||||||
|
AddWorker(SendNotificationsWorker);
|
||||||
|
AddWorker(UpdateChaptersDownloadedWorker);
|
||||||
|
AddWorker(CheckForNewChaptersWorker);
|
||||||
|
AddWorker(CleanupMangaCoversWorker);
|
||||||
|
AddWorker(StartNewChapterDownloadsWorker);
|
||||||
}
|
}
|
||||||
|
|
||||||
internal static HashSet<BaseWorker> AllWorkers { get; private set; } = new ();
|
internal static HashSet<BaseWorker> AllWorkers { get; private set; } = new ();
|
||||||
|
@ -5,7 +5,7 @@ namespace API.Workers;
|
|||||||
public class CheckForNewChaptersWorker(TimeSpan? interval = null, IEnumerable<BaseWorker>? dependsOn = null)
|
public class CheckForNewChaptersWorker(TimeSpan? interval = null, IEnumerable<BaseWorker>? dependsOn = null)
|
||||||
: BaseWorkerWithContext<MangaContext>(dependsOn), IPeriodic
|
: BaseWorkerWithContext<MangaContext>(dependsOn), IPeriodic
|
||||||
{
|
{
|
||||||
public DateTime LastExecution { get; set; } = DateTime.UtcNow;
|
public DateTime LastExecution { get; set; } = DateTime.UnixEpoch;
|
||||||
public TimeSpan Interval { get; set; } = interval??TimeSpan.FromMinutes(60);
|
public TimeSpan Interval { get; set; } = interval??TimeSpan.FromMinutes(60);
|
||||||
|
|
||||||
protected override BaseWorker[] DoWorkInternal()
|
protected override BaseWorker[] DoWorkInternal()
|
||||||
|
@ -4,8 +4,8 @@ namespace API.Workers.MaintenanceWorkers;
|
|||||||
|
|
||||||
public class CleanupMangaCoversWorker(TimeSpan? interval = null, IEnumerable<BaseWorker>? dependsOn = null) : BaseWorkerWithContext<MangaContext>(dependsOn), IPeriodic
|
public class CleanupMangaCoversWorker(TimeSpan? interval = null, IEnumerable<BaseWorker>? dependsOn = null) : BaseWorkerWithContext<MangaContext>(dependsOn), IPeriodic
|
||||||
{
|
{
|
||||||
public DateTime LastExecution { get; set; } = DateTime.UtcNow;
|
public DateTime LastExecution { get; set; } = DateTime.UnixEpoch;
|
||||||
public TimeSpan Interval { get; set; } = interval??TimeSpan.FromMinutes(60);
|
public TimeSpan Interval { get; set; } = interval ?? TimeSpan.FromHours(24);
|
||||||
|
|
||||||
protected override BaseWorker[] DoWorkInternal()
|
protected override BaseWorker[] DoWorkInternal()
|
||||||
{
|
{
|
||||||
|
@ -6,7 +6,7 @@ namespace API.Workers;
|
|||||||
public class SendNotificationsWorker(TimeSpan? interval = null, IEnumerable<BaseWorker>? dependsOn = null)
|
public class SendNotificationsWorker(TimeSpan? interval = null, IEnumerable<BaseWorker>? dependsOn = null)
|
||||||
: BaseWorkerWithContext<NotificationsContext>(dependsOn), IPeriodic
|
: BaseWorkerWithContext<NotificationsContext>(dependsOn), IPeriodic
|
||||||
{
|
{
|
||||||
public DateTime LastExecution { get; set; } = DateTime.UtcNow;
|
public DateTime LastExecution { get; set; } = DateTime.UnixEpoch;
|
||||||
public TimeSpan Interval { get; set; } = interval??TimeSpan.FromMinutes(1);
|
public TimeSpan Interval { get; set; } = interval??TimeSpan.FromMinutes(1);
|
||||||
protected override BaseWorker[] DoWorkInternal()
|
protected override BaseWorker[] DoWorkInternal()
|
||||||
{
|
{
|
||||||
|
@ -6,7 +6,7 @@ public class StartNewChapterDownloadsWorker(TimeSpan? interval = null, IEnumerab
|
|||||||
: BaseWorkerWithContext<MangaContext>(dependsOn), IPeriodic
|
: BaseWorkerWithContext<MangaContext>(dependsOn), IPeriodic
|
||||||
{
|
{
|
||||||
|
|
||||||
public DateTime LastExecution { get; set; } = DateTime.UtcNow;
|
public DateTime LastExecution { get; set; } = DateTime.UnixEpoch;
|
||||||
public TimeSpan Interval { get; set; } = interval ?? TimeSpan.FromMinutes(120);
|
public TimeSpan Interval { get; set; } = interval ?? TimeSpan.FromMinutes(120);
|
||||||
protected override BaseWorker[] DoWorkInternal()
|
protected override BaseWorker[] DoWorkInternal()
|
||||||
{
|
{
|
||||||
|
@ -1,21 +1,17 @@
|
|||||||
using API.Schema.MangaContext;
|
using API.Schema.MangaContext;
|
||||||
namespace API.Workers;
|
namespace API.Workers;
|
||||||
|
|
||||||
public class UpdateChaptersDownloadedWorker(Manga manga, TimeSpan? interval = null, IEnumerable<BaseWorker>? dependsOn = null)
|
public class UpdateChaptersDownloadedWorker(TimeSpan? interval = null, IEnumerable<BaseWorker>? dependsOn = null)
|
||||||
: BaseWorkerWithContext<MangaContext>(dependsOn), IPeriodic
|
: BaseWorkerWithContext<MangaContext>(dependsOn), IPeriodic
|
||||||
{
|
{
|
||||||
public DateTime LastExecution { get; set; } = DateTime.UtcNow;
|
public DateTime LastExecution { get; set; } = DateTime.UnixEpoch;
|
||||||
public TimeSpan Interval { get; set; } = interval??TimeSpan.FromMinutes(60);
|
public TimeSpan Interval { get; set; } = interval??TimeSpan.FromMinutes(60);
|
||||||
protected override BaseWorker[] DoWorkInternal()
|
protected override BaseWorker[] DoWorkInternal()
|
||||||
{
|
{
|
||||||
foreach (Chapter mangaChapter in manga.Chapters)
|
foreach (Chapter dbContextChapter in DbContext.Chapters)
|
||||||
{
|
dbContextChapter.Downloaded = dbContextChapter.CheckDownloaded();
|
||||||
mangaChapter.Downloaded = mangaChapter.CheckDownloaded();
|
|
||||||
}
|
|
||||||
|
|
||||||
DbContext.Sync();
|
DbContext.Sync();
|
||||||
return [];
|
return [];
|
||||||
}
|
}
|
||||||
|
|
||||||
public override string ToString() => $"{base.ToString()} {manga}";
|
|
||||||
}
|
}
|
@ -8,7 +8,7 @@ public class UpdateMetadataWorker(TimeSpan? interval = null, IEnumerable<BaseWor
|
|||||||
: BaseWorkerWithContext<MangaContext>(dependsOn), IPeriodic
|
: BaseWorkerWithContext<MangaContext>(dependsOn), IPeriodic
|
||||||
{
|
{
|
||||||
|
|
||||||
public DateTime LastExecution { get; set; } = DateTime.UtcNow;
|
public DateTime LastExecution { get; set; } = DateTime.UnixEpoch;
|
||||||
public TimeSpan Interval { get; set; } = interval ?? TimeSpan.FromHours(12);
|
public TimeSpan Interval { get; set; } = interval ?? TimeSpan.FromHours(12);
|
||||||
|
|
||||||
protected override BaseWorker[] DoWorkInternal()
|
protected override BaseWorker[] DoWorkInternal()
|
||||||
|
Reference in New Issue
Block a user