From f376348b05b46568232b1ec7b1601634a748d8cd Mon Sep 17 00:00:00 2001 From: OpenClaw Agent Date: Wed, 16 Sep 2026 02:23:00 +0800 Subject: [PATCH] fix: reliably deduplicate queued downloads --- main.go | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/main.go b/main.go index b92afbd..99137da 100644 --- a/main.go +++ b/main.go @@ -150,9 +150,12 @@ func (a *App) addTask(c *gin.Context) { in.Quality = a.cfg.DefaultQuality } var existing Task - if a.db.Where("source = ? AND rid = ? AND quality = ? AND status IN ?", in.Source, in.RID, in.Quality, []string{"pending", "resolving", "downloading", "uploading", "done"}).First(&existing).Error == nil { - c.JSON(200, existing) - return + err := a.db.Where("source = ? AND rid = ? AND quality = ?", in.Source, in.RID, in.Quality).Order("id desc").First(&existing).Error + if err == nil { + if existing.Status != "error" { + c.JSON(200, existing) + return + } } t := Task{Source: in.Source, RID: in.RID, Title: in.Title, Artist: in.Artist, Album: in.Album, Pic: in.Pic, Quality: in.Quality, Status: "pending"} if err := a.db.Create(&t).Error; err != nil {