diff options
Diffstat (limited to 'main.go')
-rw-r--r-- | main.go | 25 |
1 files changed, 24 insertions, 1 deletions
@@ -136,6 +136,24 @@ func add(w http.ResponseWriter, r *http.Request) { w.Write([]byte("1")) } +func remove(w http.ResponseWriter, r *http.Request) { + q := r.URL.Query() + pid := getpid(q.Get("pid")) + if pid == -1 { + http.Error(w, "invalid pid", http.StatusInternalServerError) + return + } + + sql :="DELETE FROM `song` WHERE `pid` = %d AND yid = '%s'" + sql = fmt.Sprintf(sql, pid, q.Get("yid")) + err := db.Query(sql) + if err != nil { + http.Error(w, err.String(), http.StatusInternalServerError) + return + } + w.Write([]byte("1")) +} + func main() { templates = make(map[string]*template.Template) for _, path := range []string{"p"} { @@ -157,5 +175,10 @@ func main() { http.HandleFunc("/", home) http.HandleFunc("/p/", playlist) http.HandleFunc("/add/", add) - http.ListenAndServe(":8000", nil) + http.HandleFunc("/remove/", remove) + err = http.ListenAndServe(":8000", nil) + if err != nil { + fmt.Println(err) + os.Exit(1) + } } |