updated logging, added theming, added settings button
This commit is contained in:
parent
51b2ef43bc
commit
ca15fb7ec5
25 changed files with 384 additions and 62 deletions
47
main.go
47
main.go
|
@ -2,6 +2,7 @@ package main
|
|||
|
||||
import (
|
||||
"fmt"
|
||||
"html/template"
|
||||
"log"
|
||||
"net/http"
|
||||
"strconv"
|
||||
|
@ -13,6 +14,8 @@ type LanguageOption struct {
|
|||
Name string
|
||||
}
|
||||
|
||||
var settings UserSettings
|
||||
|
||||
var languageOptions = []LanguageOption{
|
||||
{Code: "", Name: "Any Language"},
|
||||
{Code: "lang_en", Name: "English"},
|
||||
|
@ -66,27 +69,55 @@ var languageOptions = []LanguageOption{
|
|||
func handleSearch(w http.ResponseWriter, r *http.Request) {
|
||||
query, safe, lang, searchType, page := parseSearchParams(r)
|
||||
|
||||
// Load user settings
|
||||
settings = loadUserSettings(r)
|
||||
|
||||
// Update the theme, safe search, and language based on query parameters or use existing settings
|
||||
theme := r.URL.Query().Get("theme")
|
||||
if theme != "" {
|
||||
settings.Theme = theme
|
||||
saveUserSettings(w, settings)
|
||||
} else if settings.Theme == "" {
|
||||
settings.Theme = "dark" // Default theme
|
||||
}
|
||||
|
||||
if safe != "" {
|
||||
settings.SafeSearch = safe
|
||||
saveUserSettings(w, settings)
|
||||
}
|
||||
|
||||
if lang != "" {
|
||||
settings.Language = lang
|
||||
saveUserSettings(w, settings)
|
||||
}
|
||||
|
||||
// Render the search page template if no query
|
||||
if query == "" {
|
||||
http.ServeFile(w, r, "templates/search.html")
|
||||
tmpl := template.Must(template.ParseFiles("templates/search.html"))
|
||||
tmpl.Execute(w, settings)
|
||||
return
|
||||
}
|
||||
|
||||
settings := loadUserSettings(r)
|
||||
|
||||
// Handle search based on the type
|
||||
switch searchType {
|
||||
case "image":
|
||||
handleImageSearch(w, query, safe, lang, page)
|
||||
handleImageSearch(w, settings, query, safe, lang, page)
|
||||
case "video":
|
||||
handleVideoSearch(w, query, safe, lang, page)
|
||||
handleVideoSearch(w, settings, query, safe, lang, page)
|
||||
case "map":
|
||||
handleMapSearch(w, query, safe)
|
||||
handleMapSearch(w, settings, query, safe)
|
||||
case "forum":
|
||||
handleForumsSearch(w, query, safe, lang, page)
|
||||
handleForumsSearch(w, settings, query, safe, lang, page)
|
||||
case "file":
|
||||
handleFileSearch(w, query, safe, lang, page)
|
||||
handleFileSearch(w, settings, query, safe, lang, page)
|
||||
case "text":
|
||||
fallthrough
|
||||
default:
|
||||
HandleTextSearch(w, query, safe, lang, page)
|
||||
HandleTextSearch(w, settings, query, safe, lang, page)
|
||||
}
|
||||
// This is immeasurably stupid it passes safe and language then it passes settings with safe and lang again
|
||||
}
|
||||
|
||||
func parseSearchParams(r *http.Request) (query, safe, lang, searchType string, page int) {
|
||||
|
@ -139,7 +170,7 @@ func runServer() {
|
|||
config := loadConfig()
|
||||
generateOpenSearchXML(config)
|
||||
|
||||
fmt.Printf("Server is listening on http://localhost:%d\n", config.Port)
|
||||
printMessage("Server is listening on http://localhost:%d", config.Port)
|
||||
log.Fatal(http.ListenAndServe(fmt.Sprintf(":%d", config.Port), nil))
|
||||
|
||||
// Start automatic update checker
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue