diff --git a/API/MangaConnectors/MangaDex.cs b/API/MangaConnectors/MangaDex.cs index 47c30d5..01e0d88 100644 --- a/API/MangaConnectors/MangaDex.cs +++ b/API/MangaConnectors/MangaDex.cs @@ -324,7 +324,7 @@ public class MangaDex : MangaConnector { string? id = jToken.Value("id"); JToken? attributes = jToken["attributes"]; - string? chapterStr = attributes?.Value("chapter"); + string? chapterStr = attributes?.Value("chapter") ?? "0"; string? volumeStr = attributes?.Value("volume"); int? volumeNumber = null; string? title = attributes?.Value("title"); diff --git a/API/Workers/BaseWorker.cs b/API/Workers/BaseWorker.cs index b75d23b..58a2d5b 100644 --- a/API/Workers/BaseWorker.cs +++ b/API/Workers/BaseWorker.cs @@ -73,24 +73,23 @@ public abstract class BaseWorker : Identifiable { // Start the worker Log.Debug($"Checking {this}"); - this._cancellationTokenSource = new(TimeSpan.FromMinutes(10)); - this.State = WorkerExecutionState.Waiting; + _cancellationTokenSource = new(TimeSpan.FromMinutes(10)); + State = WorkerExecutionState.Waiting; // Wait for dependencies, start them if necessary BaseWorker[] missingDependenciesThatNeedStarting = MissingDependencies.Where(d => d.State < WorkerExecutionState.Waiting).ToArray(); if(missingDependenciesThatNeedStarting.Any()) - return new Task(() => missingDependenciesThatNeedStarting); + return new (() => missingDependenciesThatNeedStarting); if (MissingDependencies.Any()) - return new Task(WaitForDependencies); + return new (WaitForDependencies); // Run the actual work Log.Info($"Running {this}"); DateTime startTime = DateTime.UtcNow; - Task task = new Task(() => DoWorkInternal().Result); + State = WorkerExecutionState.Running; + Task task = DoWorkInternal(); task.GetAwaiter().OnCompleted(Finish(startTime, callback)); - this.State = WorkerExecutionState.Running; - task.Start(); return task; }