pogo/webserver.go

46 lines
1.2 KiB
Go
Raw Normal View History

package main
import (
"fmt"
"log"
"io/ioutil"
"net/http"
"github.com/gorilla/mux"
)
func RssHandler(w http.ResponseWriter, r *http.Request) {
w.Header().Set("Content-Type", "application/rss+xml")
w.WriteHeader(http.StatusOK)
data, err := ioutil.ReadFile("feed.rss")
if err != nil {
panic(err)
}
w.Header().Set("Content-Length", fmt.Sprint(len(data)))
fmt.Fprint(w, string(data))
}
func HomeHandler(w http.ResponseWriter, r *http.Request) {
data, err := ioutil.ReadFile("assets/index.html")
if err == nil {
w.Write(data)
} else {
w.WriteHeader(404)
w.Write([]byte("404 Something went wrong - " + http.StatusText(404)))
}
}
func DownloadHandler(w http.ResponseWriter, r *http.Request) {
w.Write([]byte("Gorilla!\n"))
}
func main() {
go watch()
r := mux.NewRouter()
r.PathPrefix("/assets/").Handler(http.StripPrefix("/assets/", http.FileServer(http.Dir("assets/static"))))
r.HandleFunc("/", HomeHandler)
r.HandleFunc("/download/{episode}", DownloadHandler)
r.HandleFunc("/rss", RssHandler)
http.Handle("/", r)
log.Fatal(http.ListenAndServe(":8000", r))
}