feat: custom-api new func: parseHTML

pull/844/head
Longlone 2025-10-11 12:11:38 +07:00
parent 36995cc964
commit a3d4cadfa2
1 changed files with 11 additions and 2 deletions

@ -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 ""