createDirectLinksTask 创建直链下载任务
(taskID string, createdAt time.Time, req *CreateTaskRequest, stor storage.Storage)
| 87 | |
| 88 | // createDirectLinksTask 创建直链下载任务 |
| 89 | func (f *TaskFactory) createDirectLinksTask(taskID string, createdAt time.Time, req *CreateTaskRequest, stor storage.Storage) (*CreateTaskResponse, error) { |
| 90 | var params DirectLinksParams |
| 91 | if err := json.Unmarshal(req.Params, ¶ms); err != nil { |
| 92 | return nil, fmt.Errorf("invalid params: %w", err) |
| 93 | } |
| 94 | |
| 95 | if len(params.URLs) == 0 { |
| 96 | return nil, fmt.Errorf("no URLs provided") |
| 97 | } |
| 98 | |
| 99 | task := directlinks.NewTask(taskID, f.ctx, params.URLs, stor, req.Path, nil) |
| 100 | |
| 101 | err := f.registerAndEnqueueTask(task, tasktype.TaskTypeDirectlinks, req.Storage, req.Path, req.Webhook) |
| 102 | if err != nil { |
| 103 | return nil, err |
| 104 | } |
| 105 | |
| 106 | return &CreateTaskResponse{ |
| 107 | TaskID: taskID, |
| 108 | Type: tasktype.TaskTypeDirectlinks, |
| 109 | Status: TaskStatusQueued, |
| 110 | CreatedAt: createdAt, |
| 111 | }, nil |
| 112 | } |
| 113 | |
| 114 | // createYTDLPTask 创建 yt-dlp 任务 |
| 115 | func (f *TaskFactory) createYTDLPTask(taskID string, createdAt time.Time, req *CreateTaskRequest, stor storage.Storage) (*CreateTaskResponse, error) { |
no test coverage detected