perf: optimize createTask by moving GetCurrentFolder outside loop
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
+10
-5
@@ -28,6 +28,14 @@ func createTask(w http.ResponseWriter, r *http.Request) {
|
|||||||
}
|
}
|
||||||
db := util.MustGetDB()
|
db := util.MustGetDB()
|
||||||
defer db.Close()
|
defer db.Close()
|
||||||
|
|
||||||
|
// 预先获取下载目录,避免循环中重复查询
|
||||||
|
folder, err := util.GetCurrentFolder(db)
|
||||||
|
if err != nil {
|
||||||
|
util.Res{Success: false, Message: fmt.Sprintf("获取下载目录失败: %v", err)}.Write(w)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
for _, item := range body {
|
for _, item := range body {
|
||||||
if !util.CheckBvidFormat(item.Bvid) {
|
if !util.CheckBvidFormat(item.Bvid) {
|
||||||
util.Res{Success: false, Message: "bvid 格式错误"}.Write(w)
|
util.Res{Success: false, Message: "bvid 格式错误"}.Write(w)
|
||||||
@@ -35,6 +43,7 @@ func createTask(w http.ResponseWriter, r *http.Request) {
|
|||||||
}
|
}
|
||||||
if item.Cover == "" || item.Title == "" || item.Owner == "" {
|
if item.Cover == "" || item.Title == "" || item.Owner == "" {
|
||||||
util.Res{Success: false, Message: "参数错误"}.Write(w)
|
util.Res{Success: false, Message: "参数错误"}.Write(w)
|
||||||
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
if !util.IsValidURL(item.Cover) {
|
if !util.IsValidURL(item.Cover) {
|
||||||
@@ -53,12 +62,8 @@ func createTask(w http.ResponseWriter, r *http.Request) {
|
|||||||
util.Res{Success: false, Message: "清晰度代码错误"}.Write(w)
|
util.Res{Success: false, Message: "清晰度代码错误"}.Write(w)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
item.Folder, err = util.GetCurrentFolder(db)
|
item.Folder = folder
|
||||||
item.Status = "waiting"
|
item.Status = "waiting"
|
||||||
if err != nil {
|
|
||||||
util.Res{Success: false, Message: fmt.Sprintf("util.GetCurrentFolder: %v.", err)}.Write(w)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
_task := task.Task{TaskInDB: item}
|
_task := task.Task{TaskInDB: item}
|
||||||
_task.Title = util.FilterFileName(_task.Title)
|
_task.Title = util.FilterFileName(_task.Title)
|
||||||
err = _task.Create(db)
|
err = _task.Create(db)
|
||||||
|
|||||||
Reference in New Issue
Block a user