fix language/safe search gui

This commit is contained in:
partisan 2024-08-13 16:38:02 +02:00
parent 8fece91f75
commit 6b3373f7d6
13 changed files with 748 additions and 694 deletions

114
user-settings.go Normal file → Executable file
View file

@ -1,54 +1,60 @@
package main
import "net/http"
type UserSettings struct {
Theme string
Language string
SafeSearch string
}
func loadUserSettings(r *http.Request) UserSettings {
var settings UserSettings
// Load theme
if cookie, err := r.Cookie("theme"); err == nil {
settings.Theme = cookie.Value
} else {
settings.Theme = "dark" // Default theme
}
// Load language
if cookie, err := r.Cookie("language"); err == nil {
settings.Language = cookie.Value
} else {
settings.Language = "en" // Default language
}
// Load safe search
if cookie, err := r.Cookie("safe"); err == nil {
settings.SafeSearch = cookie.Value
} else {
settings.SafeSearch = "" // Default safe search off
}
return settings
}
func saveUserSettings(w http.ResponseWriter, settings UserSettings) {
http.SetCookie(w, &http.Cookie{
Name: "theme",
Value: settings.Theme,
Path: "/",
})
http.SetCookie(w, &http.Cookie{
Name: "language",
Value: settings.Language,
Path: "/",
})
http.SetCookie(w, &http.Cookie{
Name: "safe",
Value: settings.SafeSearch,
Path: "/",
})
}
package main
import "net/http"
type UserSettings struct {
Theme string
Language string
SafeSearch string
}
func loadUserSettings(r *http.Request) UserSettings {
var settings UserSettings
// Load theme
if cookie, err := r.Cookie("theme"); err == nil {
settings.Theme = cookie.Value
} else {
settings.Theme = "dark" // Default theme
}
// Load language
if cookie, err := r.Cookie("language"); err == nil {
settings.Language = cookie.Value
} else {
settings.Language = "en" // Default language
}
// Load safe search
if cookie, err := r.Cookie("safe"); err == nil {
settings.SafeSearch = cookie.Value
} else {
settings.SafeSearch = "" // Default safe search off
}
return settings
}
func saveUserSettings(w http.ResponseWriter, settings UserSettings) {
http.SetCookie(w, &http.Cookie{
Name: "theme",
Value: settings.Theme,
Path: "/",
Secure: true, // Ensure cookie is sent over HTTPS only
SameSite: http.SameSiteNoneMode, // Set SameSite to None
})
http.SetCookie(w, &http.Cookie{
Name: "language",
Value: settings.Language,
Path: "/",
Secure: true, // Ensure cookie is sent over HTTPS only
SameSite: http.SameSiteNoneMode, // Set SameSite to None
})
http.SetCookie(w, &http.Cookie{
Name: "safe",
Value: settings.SafeSearch,
Path: "/",
Secure: true, // Ensure cookie is sent over HTTPS only
SameSite: http.SameSiteNoneMode, // Set SameSite to None
})
}