diff --git a/internal/aria2/monitor.go b/internal/aria2/monitor.go index 202a8b93..2a617e43 100644 --- a/internal/aria2/monitor.go +++ b/internal/aria2/monitor.go @@ -105,7 +105,14 @@ func (m *Monitor) Update() (bool, error) { return true, errors.WithMessage(err, "failed to transfer file") case "error": return true, errors.Errorf("failed to download %s, error: %s", m.tsk.ID, info.ErrorMessage) - case "active", "waiting", "paused": + case "active": + m.tsk.SetStatus("aria2: " + info.Status) + if info.Seeder == "true" { + err := m.Complete() + return true, errors.WithMessage(err, "failed to transfer file") + } + return false, nil + case "waiting", "paused": m.tsk.SetStatus("aria2: " + info.Status) return false, nil case "removed":