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