From 324609cf70e2e8cfcf74b7d22ddd45407eb103dd Mon Sep 17 00:00:00 2001 From: Julian Hurst Date: Thu, 15 Oct 2020 17:48:20 +0200 Subject: Add error template and favicon support --- grimtube.go | 36 +++++++++++++++++++++++------------- templates/error.html | 7 +++++++ 2 files changed, 30 insertions(+), 13 deletions(-) create mode 100644 templates/error.html diff --git a/grimtube.go b/grimtube.go index a48e00e..9851c8d 100644 --- a/grimtube.go +++ b/grimtube.go @@ -25,10 +25,9 @@ func serve(w http.ResponseWriter, templatePath string, data interface{}) { panic(err) } else { if err := t.Execute(w, data); err != nil { - log.Fatal(err) + log.Println(err) } } - //log.Println(err) } func index(w http.ResponseWriter, r *http.Request) { @@ -56,17 +55,24 @@ func search(w http.ResponseWriter, r *http.Request) { items, err := ytparser.Search(term, page) if err != nil { log.Println(err) + data := struct { + Error error + }{ + err, + } + serve(w, "templates/error.html", data) + } else { + data := struct { + Items []ytparser.Item + Term string + Page int + }{ + items, + term, + page, + } + serve(w, "templates/search.html", data) } - data := struct { - Items []ytparser.Item - Term string - Page int - }{ - items, - term, - page, - } - serve(w, "templates/search.html", data) default: } } @@ -81,13 +87,17 @@ func embed(w http.ResponseWriter, r *http.Request) { } } +func favicon(w http.ResponseWriter, r *http.Request) { + http.ServeFile(w, r, "favicon.ico") +} + func main() { fs := http.FileServer(http.Dir("static")) http.Handle("/static/", http.StripPrefix("/static/", fs)) + http.HandleFunc("/favicon.ico", favicon) http.HandleFunc("/", index) http.HandleFunc("/search", search) http.HandleFunc("/embed", embed) - log.Fatal(http.ListenAndServe(":8080", nil)) } diff --git a/templates/error.html b/templates/error.html new file mode 100644 index 0000000..202e53a --- /dev/null +++ b/templates/error.html @@ -0,0 +1,7 @@ +{{define "title"}}Index{{end}} +{{define "content"}} +
+

Error: {{.Error}}

+

Please try refreshing

+
+{{end}} -- cgit v1.2.3