From c14a472f704355b665f53214df67522e162c9613 Mon Sep 17 00:00:00 2001 From: Julian Hurst Date: Sun, 10 Jan 2021 00:32:50 +0100 Subject: Add search order and video length --- go.mod | 2 +- go.sum | 4 ++++ grimtube.go | 13 +++++++++++-- templates/search.html | 14 ++++++++++++-- 4 files changed, 28 insertions(+), 5 deletions(-) diff --git a/go.mod b/go.mod index ee57324..a4e664c 100644 --- a/go.mod +++ b/go.mod @@ -2,4 +2,4 @@ module grimtube go 1.15 -require git.sr.ht/~ark/ytparser v0.0.0-20201019100927-5f211df7cfbb +require git.sr.ht/~ark/ytparser v0.0.0-20210109223427-f650ebfaf23d diff --git a/go.sum b/go.sum index c84bdcb..3a3e316 100644 --- a/go.sum +++ b/go.sum @@ -1,2 +1,6 @@ git.sr.ht/~ark/ytparser v0.0.0-20201019100927-5f211df7cfbb h1:cl79Gq9gc7XrfYh42k7FHngRT0oh1u+GgH1DTot/cYQ= git.sr.ht/~ark/ytparser v0.0.0-20201019100927-5f211df7cfbb/go.mod h1:/LVNTXoOf1dnQ85TQK3Osw8KK7POmeeqBQUoXivfIPI= +git.sr.ht/~ark/ytparser v0.0.0-20201202094202-6118566d444e h1:qvd2vpytLzgL+htVvk6hOa9o0TesHH7UYBg9K1CZp1I= +git.sr.ht/~ark/ytparser v0.0.0-20201202094202-6118566d444e/go.mod h1:/LVNTXoOf1dnQ85TQK3Osw8KK7POmeeqBQUoXivfIPI= +git.sr.ht/~ark/ytparser v0.0.0-20210109223427-f650ebfaf23d h1:b4fisCeY0QXQcHec9NuPAzE7W8fhmi2TPtO4a3G92M0= +git.sr.ht/~ark/ytparser v0.0.0-20210109223427-f650ebfaf23d/go.mod h1:/LVNTXoOf1dnQ85TQK3Osw8KK7POmeeqBQUoXivfIPI= diff --git a/grimtube.go b/grimtube.go index 17de1b6..8c27490 100644 --- a/grimtube.go +++ b/grimtube.go @@ -17,6 +17,10 @@ func getLangs() []string { return []string{"en", "fr", "de", "ja", "ru"} } +func getOrders() []string { + return []string{"relevance", "date", "views", "rating"} +} + func serve(w http.ResponseWriter, templatePath string, data interface{}) { funcMap := template.FuncMap { "inc": func(i int) int { @@ -52,6 +56,7 @@ func search(w http.ResponseWriter, r *http.Request) { term := query.Get("term") sPage := query.Get("page") lang := query.Get("lang") + order := query.Get("order") var page int if sPage == "" { page = 0 @@ -63,8 +68,8 @@ func search(w http.ResponseWriter, r *http.Request) { page = p } } - log.Printf("searching: %s, page: %d, lang: %s\n", term, page, lang) - items, err := ytparser.Search(term, page, lang) + log.Printf("searching: %s, page: %d, lang: %s, order: %s\n", term, page, lang, order) + items, err := ytparser.Search(term, page, lang, order) if err != nil { log.Println(err) data := struct { @@ -80,12 +85,16 @@ func search(w http.ResponseWriter, r *http.Request) { Page int Lang string Langs []string + Order string + Orders []string }{ items, term, page, lang, getLangs(), + order, + getOrders(), } serve(w, "templates/search.html", data) } diff --git a/templates/search.html b/templates/search.html index c0cdb76..dc9318a 100644 --- a/templates/search.html +++ b/templates/search.html @@ -1,7 +1,7 @@ {{define "title"}}Search{{end}} {{define "content"}}
- + +
{{range .Items}} @@ -21,10 +30,11 @@ {{end}} -- cgit v1.2.3

{{.Title}}

Comments

+

{{.LengthText}}

{{.Published}}

- {{.ChannelTitle}} +

{{.ChannelTitle}}