This commit is contained in:
cdle
2023-06-04 15:43:38 +08:00
parent bb468b7f28
commit de2d57702d
3 changed files with 163 additions and 73 deletions
-72
View File
@@ -1,14 +1,11 @@
package core
import (
"bytes"
"encoding/base64"
"fmt"
"io/ioutil"
"net/http"
"net/url"
"regexp"
"strconv"
"strings"
"time"
@@ -483,75 +480,6 @@ func (t *TimeJsImpl) Parse(timeStr, layout, locale string) (tt time.Time, err er
return tt, nil
}
type Strings struct {
}
func (sender *Strings) Contains(s, substr string) bool {
return strings.Contains(s, substr)
}
func (sender *Strings) Replace(s string, old string, new string, n int) string {
if n == 0 {
n = -1
}
return strings.Replace(s, old, new, n)
}
func (sender *Strings) ReplaceAll(s string, old string, new string) string {
return strings.ReplaceAll(s, old, new)
}
func (sender *Strings) Split(s string, sep string, n int) []string {
return strings.SplitN(s, sep, n)
}
func (sender *Strings) EncodeQueryString(params map[string]interface{}) string {
var buf bytes.Buffer
for key, value := range params {
if buf.Len() > 0 {
buf.WriteByte('&')
}
buf.WriteString(url.QueryEscape(key))
buf.WriteByte('=')
switch v := value.(type) {
case string:
buf.WriteString(url.QueryEscape(v))
case int:
buf.WriteString(strconv.Itoa(v))
case int64:
buf.WriteString(strconv.Itoa(int(v)))
case int32:
buf.WriteString(strconv.Itoa(int(v)))
case bool:
buf.WriteString(strconv.FormatBool(v))
default:
buf.WriteString(url.QueryEscape(fmt.Sprintf("%v", v)))
}
}
return buf.String()
}
func (sender *Strings) DecodeQueryString(querystring string) map[string]interface{} {
values, err := url.ParseQuery(querystring)
if err != nil {
panic(err)
}
params := make(map[string]interface{})
for key, values := range values {
if len(values) > 0 {
value := values[0]
if intValue, err := strconv.Atoi(value); err == nil {
params[key] = intValue
} else if boolValue, err := strconv.ParseBool(value); err == nil {
params[key] = boolValue
} else {
params[key] = value
}
}
}
return params
}
type Fmt struct {
}