This commit is contained in:
cdle
2023-06-03 08:33:33 +08:00
parent 0b7fc5f12a
commit a83dcb0157
3 changed files with 58 additions and 8 deletions
+1 -1
View File
@@ -16,7 +16,7 @@
### 安装
在 [releases](https://github.com/cdle/sillyplus/releases) 中找到合适自己系统版本的程序运行带 `-t` 可以开启终端机器人,直接与程序进行交互。
在 [releases](https://github.com/cdle/sillyGirl/releases) 中找到合适自己系统版本的程序运行带 `-t` 可以开启终端机器人,直接与程序进行交互。
```shell
./sillyplus -t
+7 -7
View File
@@ -416,13 +416,13 @@ func initPlugin(data string, uuid string) (*common.Function, error) {
var running func() bool
f := &common.Function{
Handle: func(s common.Sender) interface{} {
// defer func() {
// err := recover()
// if err != nil {
// console.Error("脚本错误:", err)
// s.Reply(fmt.Sprint(err))
// }
// }()
defer func() {
err := recover()
if err != nil {
console.Error("脚本错误:", err)
s.Reply(fmt.Sprint(err))
}
}()
if err2 != nil {
panic(err2)
}
+50
View File
@@ -1,11 +1,14 @@
package core
import (
"bytes"
"encoding/base64"
"fmt"
"io/ioutil"
"net/http"
"net/url"
"regexp"
"strconv"
"strings"
"time"
@@ -502,6 +505,53 @@ 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 {
}