+FTS5 Rebuild

This commit is contained in:
Simon Martens
2026-01-30 16:22:19 +01:00
parent 52fecc0d05
commit 82c3c9c1e3
17 changed files with 1475 additions and 174 deletions

View File

@@ -0,0 +1,78 @@
package controllers
import (
"encoding/json"
"strings"
"github.com/Theodor-Springmann-Stiftung/musenalm/helpers/functions"
"github.com/pocketbase/pocketbase/tools/types"
)
func parseSettingString(value any) (string, bool) {
switch v := value.(type) {
case string:
return strings.TrimSpace(v), true
case []byte:
if len(v) == 0 {
return "", false
}
var parsed string
if err := json.Unmarshal(v, &parsed); err == nil {
return strings.TrimSpace(parsed), true
}
return strings.TrimSpace(string(v)), true
case json.RawMessage:
if len(v) == 0 {
return "", false
}
var parsed string
if err := json.Unmarshal(v, &parsed); err == nil {
return strings.TrimSpace(parsed), true
}
return strings.TrimSpace(string(v)), true
default:
return "", false
}
}
func formatSettingDateTime(value any) (string, bool) {
if value == nil {
return "", false
}
if dt, err := types.ParseDateTime(value); err == nil && !dt.IsZero() {
return functions.GermanShortDateTime(dt), true
}
if raw, ok := parseSettingString(value); ok {
clean := strings.Trim(raw, "\"")
if dt, err := types.ParseDateTime(clean); err == nil && !dt.IsZero() {
return functions.GermanShortDateTime(dt), true
}
if clean != "" {
return clean, true
}
}
return "", false
}
func parseSettingDateTime(value any) (types.DateTime, bool) {
if value == nil {
return types.DateTime{}, false
}
if dt, err := types.ParseDateTime(value); err == nil && !dt.IsZero() {
return dt, true
}
if raw, ok := parseSettingString(value); ok {
clean := strings.Trim(raw, "\"")
if dt, err := types.ParseDateTime(clean); err == nil && !dt.IsZero() {
return dt, true
}
}
return types.DateTime{}, false
}
func formatSettingGermanDateTime(value any) (string, bool) {
if dt, ok := parseSettingDateTime(value); ok {
return functions.GermanDate(dt) + " " + functions.GermanTime(dt), true
}
return "", false
}