mirror of
https://github.com/GopeedLab/gopeed.git
synced 2026-11-13 03:43:41 +00:00
fix: extension task missing fields (#850)
This commit is contained in:
1 file changed
+9
-13
@@ -702,38 +702,34 @@ type OnDoneContext struct {
|
|||||||
Task *Task `json:"task"`
|
Task *Task `json:"task"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ExtensionTask is a wrapper of Task, it's used to interact with extension scripts.
|
||||||
|
// Avoid extension scripts modifying task directly, use ExtensionTask to encapsulate task,
|
||||||
|
// only some fields can be modified, such as request info.
|
||||||
type ExtensionTask struct {
|
type ExtensionTask struct {
|
||||||
download *Downloader
|
download *Downloader
|
||||||
task *Task
|
|
||||||
|
|
||||||
Meta *ExtensionTaskMeta `json:"meta"`
|
*Task
|
||||||
}
|
|
||||||
|
|
||||||
// ExtensionTaskMeta restricts extension scripts to only modify request info
|
|
||||||
type ExtensionTaskMeta struct {
|
|
||||||
Req *base.Request `json:"req"`
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewExtensionTask(download *Downloader, task *Task) *ExtensionTask {
|
func NewExtensionTask(download *Downloader, task *Task) *ExtensionTask {
|
||||||
|
// restricts extension scripts to only modify request info
|
||||||
newTask := task.clone()
|
newTask := task.clone()
|
||||||
|
newTask.Meta.Req = task.Meta.Req
|
||||||
return &ExtensionTask{
|
return &ExtensionTask{
|
||||||
task: newTask,
|
|
||||||
download: download,
|
download: download,
|
||||||
Meta: &ExtensionTaskMeta{
|
Task: newTask,
|
||||||
Req: task.Meta.Req,
|
|
||||||
},
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (t *ExtensionTask) Continue() error {
|
func (t *ExtensionTask) Continue() error {
|
||||||
return t.download.Continue(&TaskFilter{
|
return t.download.Continue(&TaskFilter{
|
||||||
IDs: []string{t.task.ID},
|
IDs: []string{t.ID},
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
func (t *ExtensionTask) Pause() error {
|
func (t *ExtensionTask) Pause() error {
|
||||||
return t.download.Pause(&TaskFilter{
|
return t.download.Pause(&TaskFilter{
|
||||||
IDs: []string{t.task.ID},
|
IDs: []string{t.ID},
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user