diff --git a/internal/offline_download/aria2/aria2.go b/internal/offline_download/aria2/aria2.go index ea6404a6..d22b32f9 100644 --- a/internal/offline_download/aria2/aria2.go +++ b/internal/offline_download/aria2/aria2.go @@ -3,10 +3,11 @@ package aria2 import ( "context" "fmt" - "github.com/alist-org/alist/v3/internal/errs" "strconv" "time" + "github.com/alist-org/alist/v3/internal/errs" + "github.com/alist-org/alist/v3/internal/conf" "github.com/alist-org/alist/v3/internal/model" "github.com/alist-org/alist/v3/internal/offline_download/tool" diff --git a/internal/offline_download/tool/download.go b/internal/offline_download/tool/download.go index 975530e7..f0a5d5d4 100644 --- a/internal/offline_download/tool/download.go +++ b/internal/offline_download/tool/download.go @@ -2,13 +2,14 @@ package tool import ( "fmt" + "time" + "github.com/alist-org/alist/v3/internal/conf" "github.com/alist-org/alist/v3/internal/errs" "github.com/alist-org/alist/v3/internal/setting" "github.com/pkg/errors" log "github.com/sirupsen/logrus" "github.com/xhofe/tache" - "time" ) type DownloadTask struct { diff --git a/server/handles/task.go b/server/handles/task.go index 9c9486b9..a8b4d21b 100644 --- a/server/handles/task.go +++ b/server/handles/task.go @@ -1,6 +1,8 @@ package handles import ( + "math" + "github.com/alist-org/alist/v3/internal/fs" "github.com/alist-org/alist/v3/internal/offline_download/tool" "github.com/alist-org/alist/v3/pkg/utils" @@ -23,12 +25,17 @@ func getTaskInfo[T tache.TaskWithInfo](task T) TaskInfo { if task.GetErr() != nil { errMsg = task.GetErr().Error() } + progress := task.GetProgress() + // if progress is NaN, set it to 100 + if math.IsNaN(progress) { + progress = 100 + } return TaskInfo{ ID: task.GetID(), Name: task.GetName(), State: task.GetState(), Status: task.GetStatus(), - Progress: task.GetProgress(), + Progress: progress, Error: errMsg, } }