added lang support to all html templates and cleaned up template rendering
This commit is contained in:
parent
5dd3114e2d
commit
d9d0301548
18 changed files with 645 additions and 410 deletions
61
forums.go
61
forums.go
|
@ -3,7 +3,6 @@ package main
|
|||
import (
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"html/template"
|
||||
"log"
|
||||
"math"
|
||||
"net/http"
|
||||
|
@ -99,48 +98,34 @@ func PerformRedditSearch(query string, safe string, page int) ([]ForumSearchResu
|
|||
}
|
||||
|
||||
func handleForumsSearch(w http.ResponseWriter, settings UserSettings, query string, page int) {
|
||||
// Start measuring the time for fetching results
|
||||
startTime := time.Now()
|
||||
|
||||
// Perform the forum search
|
||||
results, err := PerformRedditSearch(query, settings.SafeSearch, page)
|
||||
if err != nil || len(results) == 0 { // 0 == 0 to force search by other node
|
||||
if err != nil || len(results) == 0 {
|
||||
log.Printf("No results from primary search, trying other nodes")
|
||||
results = tryOtherNodesForForumSearch(query, settings.SafeSearch, settings.SearchLanguage, page)
|
||||
}
|
||||
|
||||
data := struct {
|
||||
Query string
|
||||
Results []ForumSearchResult
|
||||
Page int
|
||||
HasPrevPage bool
|
||||
HasNextPage bool
|
||||
LanguageOptions []LanguageOption
|
||||
CurrentLang string
|
||||
Theme string
|
||||
Safe string
|
||||
IsThemeDark bool
|
||||
}{
|
||||
Query: query,
|
||||
Results: results,
|
||||
Page: page,
|
||||
HasPrevPage: page > 1,
|
||||
HasNextPage: len(results) == 25,
|
||||
LanguageOptions: languageOptions,
|
||||
CurrentLang: settings.SearchLanguage,
|
||||
Theme: settings.Theme,
|
||||
Safe: settings.SafeSearch,
|
||||
IsThemeDark: settings.IsThemeDark,
|
||||
// Measure the elapsed time for fetching results
|
||||
elapsedTime := time.Since(startTime)
|
||||
|
||||
// Prepare the data to pass to the template
|
||||
data := map[string]interface{}{
|
||||
"Query": query,
|
||||
"Results": results,
|
||||
"Page": page,
|
||||
"Fetched": fmt.Sprintf("%.2f %s", elapsedTime.Seconds(), Translate("seconds")), // Time for fetching results
|
||||
"HasPrevPage": page > 1,
|
||||
"HasNextPage": len(results) == 25, // Assuming 25 results per page
|
||||
"LanguageOptions": languageOptions,
|
||||
"CurrentLang": settings.SearchLanguage,
|
||||
"Theme": settings.Theme,
|
||||
"Safe": settings.SafeSearch,
|
||||
"IsThemeDark": settings.IsThemeDark,
|
||||
}
|
||||
|
||||
funcMap := template.FuncMap{
|
||||
"sub": func(a, b int) int { return a - b },
|
||||
"add": func(a, b int) int { return a + b },
|
||||
}
|
||||
|
||||
tmpl, err := template.New("forums.html").Funcs(funcMap).ParseFiles("templates/forums.html")
|
||||
if err != nil {
|
||||
http.Error(w, fmt.Sprintf("Error loading template: %v", err), http.StatusInternalServerError)
|
||||
return
|
||||
}
|
||||
|
||||
if err := tmpl.Execute(w, data); err != nil {
|
||||
http.Error(w, fmt.Sprintf("Error rendering template: %v", err), http.StatusInternalServerError)
|
||||
}
|
||||
// Render the template without measuring the time
|
||||
renderTemplate(w, "forums.html", data)
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue