/* admin.go * * Here is where all the neccesary functions for managing episodes * live, e.g adding removing etc. */ package main import ( "net/http" "fmt" "strings" "io/ioutil" "io" "os" // ioOS? ) // Write custom CSS to disk or send it back to the client if GET func CustomCss(w http.ResponseWriter, r *http.Request) { if r.Method == "POST" { r.ParseMultipartForm(32 << 20) css := strings.Join(r.Form["css"], "") filename := "custom.css" err := ioutil.WriteFile("./assets/static/" + filename, []byte(css), 0644) if err != nil { w.Write([]byte("")) panic(err) } else { w.Write([]byte("")) } } else { css,err := ioutil.ReadFile("./assets/static/custom.css") if err != nil { panic (err) } else { w.Write(css) } } } func CreateEpisode(w http.ResponseWriter, r *http.Request) { if r.Method == "POST" { r.ParseMultipartForm(32 << 20) // Build filename for episode date := strings.Join(r.Form["date"], "") title := strings.Join(r.Form["title"], "") name := fmt.Sprintf("%v_%v", date, title) filename := name + ".mp3" shownotes := name + "_SHOWNOTES.md" fmt.Println(name) description := strings.Join(r.Form["description"], "") fmt.Println(description) // Finish building filenames err := ioutil.WriteFile("./podcasts/" + shownotes, []byte(description), 0644) if err != nil { w.Write([]byte("")) fmt.Println(err) } file, handler, err := r.FormFile("file") if err != nil { w.Write([]byte("")) fmt.Println(err) return } defer file.Close() fmt.Fprintf(w, "%v", handler.Header) f, err := os.OpenFile("./podcasts/"+filename, os.O_WRONLY|os.O_CREATE, 0666) if err != nil { w.Write([]byte("")) fmt.Println(err) return } defer f.Close() io.Copy(f, file) w.Write([]byte("")) } } func RemoveEpisode(w http.ResponseWriter, r *http.Request) { // Episode should be the full MP3 filename // Remove MP3 first r.ParseMultipartForm(32 << 20) episode := strings.Join(r.Form["episode"],"") os.Remove(episode) sn := strings.Replace(episode, ".mp3", "_SHOWNOTES.md", 2) os.Remove(sn) } func EditConfig(w http.ResponseWriter, r *http.Request) { if r.Method == "POST" { r.ParseMultipartForm(32 << 20) } if r.Method == "GET" { } }