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 {