MCPcopy Create free account
hub / github.com/krau/SaveAny-Bot / CreateTask

Method CreateTask

api/factory.go:40–68  ·  view source on GitHub ↗

CreateTask 创建任务

(req *CreateTaskRequest)

Source from the content-addressed store, hash-verified

38
39// CreateTask 创建任务
40func (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
70func (f *TaskFactory) registerAndEnqueueTask(task core.Executable, taskType tasktype.TaskType, storageName, path, webhook string) error {
71 taskID := task.TaskID()

Callers 2

CreateTaskHandlerMethod · 0.80

Calls 8

createDirectLinksTaskMethod · 0.95
createYTDLPTaskMethod · 0.95
createAria2TaskMethod · 0.95
createParsedTaskMethod · 0.95
createTGFilesTaskMethod · 0.95
createTPHPicsTaskMethod · 0.95
createTransferTaskMethod · 0.95
StringMethod · 0.45

Tested by 1