diff options
| author | Julian Hurst <julian.hurst92@gmail.com> | 2020-10-14 18:19:00 +0200 |
|---|---|---|
| committer | Julian Hurst <julian.hurst92@gmail.com> | 2020-10-14 18:19:00 +0200 |
| commit | 8891eea532102b58a23a71a491be2c3f151720b5 (patch) | |
| tree | de9e577df2b2ff9c0072fda07b90d1884088b7c9 /grimtube.go | |
| download | grimtube-8891eea532102b58a23a71a491be2c3f151720b5.tar.gz | |
Initial commit
Diffstat (limited to 'grimtube.go')
| -rw-r--r-- | grimtube.go | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/grimtube.go b/grimtube.go new file mode 100644 index 0000000..6751543 --- /dev/null +++ b/grimtube.go @@ -0,0 +1,80 @@ +package main + +import ( + "text/template" + "net/http" + //"io" + "log" + "strconv" + "path" + + "grimtube/ytparser" +) + +func serve(w http.ResponseWriter, templatePath string, data interface{}) { + funcMap := template.FuncMap { + "inc": func(i int) int { + return i + 1 + }, + "dec": func(i int) int { + return i - 1 + }, + } + base := path.Base(templatePath) + log.Println(base) + t, err := template.New("base.html").Funcs(funcMap).ParseFiles("templates/base.html", templatePath) + if err != nil { + panic(err) + } else { + if err := t.Execute(w, data); err != nil { + log.Fatal(err) + } + } + //log.Println(err) +} + +func index(w http.ResponseWriter, r *http.Request) { + serve(w, "templates/index.html", nil) +} + +func search(w http.ResponseWriter, r *http.Request) { + switch r.Method { + case "GET": + query := r.URL.Query() + term := query.Get("term") + sPage := query.Get("page") + var page int + if sPage == "" { + page = 0 + } else { + p, err := strconv.Atoi(sPage) + if err != nil { + page = 0 + } else { + page = p + } + } + items := ytparser.Search(term, page) + data := struct { + Items []ytparser.Item + Term string + Page int + }{ + items, + term, + page, + } + serve(w, "templates/search.html", data) + default: + } +} + +func main() { + fs := http.FileServer(http.Dir("static")) + http.Handle("/static/", http.StripPrefix("/static/", fs)) + http.HandleFunc("/", index) + http.HandleFunc("/search", search) + + + log.Fatal(http.ListenAndServe(":8080", nil)) +} |
