summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--go.mod2
-rw-r--r--go.sum4
-rw-r--r--grimtube.go13
-rw-r--r--templates/search.html14
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"}}
<form action="/search" method="get">
- <input id="term" name="term" type="text" placeholder="search" required>
+ <input id="term" name="term" type="search" placeholder="search" value="{{.Term}}" autocomplete="on" required>
<select id="lang" name="lang">
{{range .Langs}}
{{if eq . $.Lang}}
@@ -11,6 +11,15 @@
{{end}}
{{end}}
</select>
+ <select id="order" name="order">
+ {{range .Orders}}
+ {{if eq . $.Order}}
+ <option selected>{{.}}</option>
+ {{else}}
+ <option>{{.}}</option>
+ {{end}}
+ {{end}}
+ </select>
</form>
<table>
{{range .Items}}
@@ -21,10 +30,11 @@
<td>
<p><a href="/embed?id={{.Id}}">{{.Title}}</a></p>
<p class="comments"><a href="{{.Url}}">Comments</a></p>
+ <p class="length">{{.LengthText}}</p>
<p class="published">{{.Published}}</p>
</td>
<td>
- <a href="{{.ChannelUrl}}"><span>{{.ChannelTitle}}</span></a>
+ <p><a href="{{.ChannelUrl}}"><span>{{.ChannelTitle}}</span></a></p>
</td>
</tr>
{{end}}