fix: reliably deduplicate queued downloads

This commit is contained in:
OpenClaw Agent
2026-09-16 02:23:00 +08:00
parent 0da24cb183
commit f376348b05
+4 -1
View File
@@ -150,10 +150,13 @@ 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 {
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 {
c.JSON(500, gin.H{"error": err.Error()})