diff --git a/Tranga/TaskManager.cs b/Tranga/TaskManager.cs index 717aa58..02b3661 100644 --- a/Tranga/TaskManager.cs +++ b/Tranga/TaskManager.cs @@ -88,6 +88,21 @@ public class TaskManager _runningTasks[timedOutTask].Cancel(); timedOutTask.state = TrangaTask.ExecutionState.Failed; } + + foreach (TrangaTask finishedTask in _allTasks + .Where(taskQuery => taskQuery.state is TrangaTask.ExecutionState.Success).ToArray()) + { + if(finishedTask is DownloadChapterTask) + { + DeleteTask(finishedTask); + finishedTask.state = TrangaTask.ExecutionState.Success; + } + else + { + finishedTask.state = TrangaTask.ExecutionState.Waiting; + this._runningTasks.Remove(finishedTask); + } + } foreach (TrangaTask failedTask in _allTasks.Where(taskQuery => taskQuery.state is TrangaTask.ExecutionState.Failed).ToArray()) diff --git a/Tranga/TrangaTask.cs b/Tranga/TrangaTask.cs index 4ba5b70..8c03b5a 100644 --- a/Tranga/TrangaTask.cs +++ b/Tranga/TrangaTask.cs @@ -100,10 +100,7 @@ public abstract class TrangaTask if ((int)statusCode >= 200 && (int)statusCode < 300) { this.lastExecuted = DateTime.Now; - if(this is DownloadChapterTask) - this.state = ExecutionState.Success; - else - this.state = ExecutionState.Waiting; + this.state = ExecutionState.Success; } else {