From a3d4cadfa2f70f9b03f7b669e791fc7ec05c98b0 Mon Sep 17 00:00:00 2001 From: Longlone Date: Sat, 11 Oct 2025 12:11:38 +0800 Subject: [PATCH] feat: custom-api new func: parseHTML --- internal/glance/widget-custom-api.go | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) 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 ""