diff options
Diffstat (limited to 'handlers.go')
-rw-r--r-- | handlers.go | 102 |
1 files changed, 102 insertions, 0 deletions
diff --git a/handlers.go b/handlers.go new file mode 100644 index 0000000..9728fcc --- /dev/null +++ b/handlers.go @@ -0,0 +1,102 @@ +package main + +import ( + "github.com/gorilla/mux" + "net/http" +) + +func index(w http.ResponseWriter, req *http.Request) { + _ = req.URL.Path + p := Page{ + Title: "Home", + } + + err := tmpl.ExecuteTemplate(w, "home.gohtml", p) + check(err, w) + +} + +func movieHandler(w http.ResponseWriter, req *http.Request) { + p := Page{ + Title: "Movies", + MediaTitleAndLink: movies, + } + + err := tmpl.ExecuteTemplate(w, "movieIndex.gohtml", p) + check(err, w) + +} + +func showsHandler(w http.ResponseWriter, req *http.Request) { + vars := mux.Vars(req) + var p Page + var title string + if vars["show"] == "" { + var m = map[string]string{} + + for show := range shows { + m[show] = "/shows/" + show + } + + p = Page{ + Title: "Shows", + MediaTitleAndLink: m, + } + + } else if vars["season"] == "" { + var m = map[string]string{} + + for season := range shows[vars["show"]] { + if season == vars["show"] { + continue + } + m[season] = "/shows/" + vars["show"] + "/" + season + } + + title = vars["show"] + + p = Page{ + Title: title, + MediaTitleAndLink: m, + } + + } else if vars["episode"] == "" { + var m = map[string]string{} + + for episode := range shows[vars["show"]][vars["season"]] { + m[episode] = "/view/" + vars["show"] + "/" + vars["season"] + "/" + episode + } + + title = vars["show"] + " | " + vars["season"] + + p = Page{ + Title: title, + MediaTitleAndLink: m, + } + } + + err := tmpl.ExecuteTemplate(w, "movieIndex.gohtml", p) + check(err, w) +} + +func movieViewerHandler(w http.ResponseWriter, req *http.Request) { + var url, title string + vars := mux.Vars(req) + + if vars["season"] == "" { + url = "/files/movies/" + vars["movieOrShow"] + title = vars["movieOrShow"] + } else { + url = "/files/shows/" + vars["movieOrShow"] + "/" + vars["season"] + "/" + vars["episode"] + title = vars["movieOrShow"] + } + + p := Page{ + Title: title, + MediaSrc: url, + } + + err := tmpl.ExecuteTemplate(w, "viewer.gohtml", p) + check(err, w) + +}
\ No newline at end of file |