package controller import ( "context" "net/http" "git.sr.ht/~gabrielgio/midr/db" "git.sr.ht/~gabrielgio/midr/yt" work "git.sr.ht/~sircmpwn/dowork" "github.com/gin-gonic/gin" ) func spawnWorker(link string, output string) { work.Submit(func(ctx context.Context) error { yt.RunYtDlpProcess(link, output) return nil }) } func GetEntries(c *gin.Context) { var entries []db.YdlEntry db.DB.Find(&entries) c.HTML(http.StatusOK, "index", entries) } func GetEntry(c *gin.Context) { var entry db.YdlEntry id := c.Param("id") where := "id = " + id db.DB.Where(where).FirstOrInit(&entry) c.HTML(http.StatusOK, "entry", entry) } func UpdateEntry(c *gin.Context) { var entry db.YdlEntry c.ShouldBind(&entry) db.DB.Save(&entry) c.HTML(http.StatusOK, "entry", entry) } func CreateEntry(c *gin.Context) { var entry db.YdlEntry c.ShouldBind(&entry) db.DB.Create(&entry) spawnWorker(entry.Link, entry.OutputFolder) c.Redirect(http.StatusFound, "/") } func DeleteEntry(c *gin.Context) { var entry db.YdlEntry id := c.Param("id") db.DB.Delete(&entry, id) c.HTML(http.StatusOK, "entry", entry) }