diff --git a/internal/glance/widget-custom-api.go b/internal/glance/widget-custom-api.go index eeb61c8..185192e 100644 --- a/internal/glance/widget-custom-api.go +++ b/internal/glance/widget-custom-api.go @@ -18,6 +18,7 @@ import ( "sync" "time" + "github.com/PuerkitoBio/goquery" "github.com/tidwall/gjson" ) @@ -480,7 +481,7 @@ var customAPITemplateFuncs = func() template.FuncMap { "toFloat": func(a any) float64 { switch a := a.(type) { case int: - return float64(a) + return float64(a) case float64: return a case string: @@ -504,7 +505,7 @@ var customAPITemplateFuncs = func() template.FuncMap { case int: return a case float64: - return int(a) + return int(a) case string: v, err := strconv.ParseInt(a, 10, 64) if err != nil { @@ -597,6 +598,14 @@ var customAPITemplateFuncs = func() template.FuncMap { return getCachedRegexp(pattern).ReplaceAllString(s, replacement) }, + "parseHTML": func(body string) *goquery.Document { + doc, err := goquery.NewDocumentFromReader(strings.NewReader(body)) + if err != nil { + return nil + } + + return doc + }, "findMatch": func(pattern, s string) string { if s == "" { return ""