CreateTask 创建任务
(req *CreateTaskRequest)
| 38 | |
| 39 | // CreateTask 创建任务 |
| 40 | func (f *TaskFactory) CreateTask(req *CreateTaskRequest) (*CreateTaskResponse, error) { |
| 41 | // 验证存储 |
| 42 | stor, ok := storage.Storages[req.Storage] |
| 43 | if !ok { |
| 44 | return nil, fmt.Errorf("storage not found: %s", req.Storage) |
| 45 | } |
| 46 | |
| 47 | taskID := xid.New().String() |
| 48 | createdAt := time.Now() |
| 49 | |
| 50 | switch req.Type { |
| 51 | case tasktype.TaskTypeDirectlinks: |
| 52 | return f.createDirectLinksTask(taskID, createdAt, req, stor) |
| 53 | case tasktype.TaskTypeYtdlp: |
| 54 | return f.createYTDLPTask(taskID, createdAt, req, stor) |
| 55 | case tasktype.TaskTypeAria2: |
| 56 | return f.createAria2Task(taskID, createdAt, req, stor) |
| 57 | case tasktype.TaskTypeParseditem: |
| 58 | return f.createParsedTask(taskID, createdAt, req, stor) |
| 59 | case tasktype.TaskTypeTgfiles: |
| 60 | return f.createTGFilesTask(taskID, createdAt, req, stor) |
| 61 | case tasktype.TaskTypeTphpics: |
| 62 | return f.createTPHPicsTask(taskID, createdAt, req, stor) |
| 63 | case tasktype.TaskTypeTransfer: |
| 64 | return f.createTransferTask(taskID, createdAt, req) |
| 65 | default: |
| 66 | return nil, fmt.Errorf("unsupported task type: %s", req.Type) |
| 67 | } |
| 68 | } |
| 69 | |
| 70 | func (f *TaskFactory) registerAndEnqueueTask(task core.Executable, taskType tasktype.TaskType, storageName, path, webhook string) error { |
| 71 | taskID := task.TaskID() |