Skip to content

Commit 29c8596

Browse files
committed
2 parents c3bd373 + 4b9d635 commit 29c8596

File tree

4 files changed

+23
-60
lines changed

4 files changed

+23
-60
lines changed

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
调用 AI 回复对话
55
## ascii2d
66
ascii2d 搜图
7+
## bilibili
8+
bilibili卡片解析
79
## danbooru
810
DeepDanbooru 二次元图片标签识别
911
## nsfw

aireply/aireply_test.go

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
package aireply
2+
3+
import "testing"
4+
5+
func TestAireply(t *testing.T) {
6+
qyk := NewAIReply("青云客")
7+
t.Log("青云客测试:", qyk.Talk("你好", "椛椛"))
8+
xa := NewAIReply("小爱")
9+
t.Log("小爱测试:", xa.Talk("小米是垃圾", "椛椛"))
10+
}

aireply/qingyunke.go

Lines changed: 6 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,6 @@ package aireply
22

33
import (
44
"fmt"
5-
"io/ioutil"
6-
"net/http"
75
"net/url"
86
"regexp"
97
"strings"
@@ -17,7 +15,7 @@ import (
1715
type QYKReply struct{}
1816

1917
const (
20-
qykURL = "http://api.qingyunke.com/api.php?key=free&appid=0&msg=%s"
18+
qykURL = "http://api.qingyunke.com/api.php?key=free&appid=0&msg=%v"
2119
qykBotName = "菲菲"
2220
)
2321

@@ -32,28 +30,12 @@ func (*QYKReply) String() string {
3230
// Talk 取得带 CQ 码的回复消息
3331
func (*QYKReply) Talk(msg, nickname string) string {
3432
msg = strings.ReplaceAll(msg, nickname, qykBotName)
35-
3633
u := fmt.Sprintf(qykURL, url.QueryEscape(msg))
37-
client := &http.Client{}
38-
req, err := http.NewRequest("GET", u, nil)
39-
if err != nil {
40-
return "ERROR:" + err.Error()
41-
}
42-
// 自定义Header
43-
req.Header.Set("User-Agent", web.RandUA())
44-
req.Header.Set("Connection", "keep-alive")
45-
req.Header.Set("Host", "api.qingyunke.com")
46-
resp, err := client.Do(req)
47-
if err != nil {
48-
return "ERROR:" + err.Error()
49-
}
50-
defer resp.Body.Close()
51-
bytes, err := ioutil.ReadAll(resp.Body)
34+
data, err := web.RequestDataWith(web.NewDefaultClient(), u, "GET", "", web.RandUA())
5235
if err != nil {
5336
return "ERROR:" + err.Error()
5437
}
55-
56-
replystr := gjson.Get(binary.BytesToString(bytes), "content").String()
38+
replystr := gjson.Get(binary.BytesToString(data), "content").String()
5739
replystr = strings.ReplaceAll(replystr, "{face:", "[CQ:face,id=")
5840
replystr = strings.ReplaceAll(replystr, "{br}", "\n")
5941
replystr = strings.ReplaceAll(replystr, "}", "]")
@@ -67,26 +49,11 @@ func (*QYKReply) TalkPlain(msg, nickname string) string {
6749
msg = strings.ReplaceAll(msg, nickname, qykBotName)
6850

6951
u := fmt.Sprintf(qykURL, url.QueryEscape(msg))
70-
client := &http.Client{}
71-
req, err := http.NewRequest("GET", u, nil)
72-
if err != nil {
73-
return "ERROR: " + err.Error()
74-
}
75-
// 自定义Header
76-
req.Header.Set("User-Agent", web.RandUA())
77-
req.Header.Set("Connection", "keep-alive")
78-
req.Header.Set("Host", "api.qingyunke.com")
79-
resp, err := client.Do(req)
52+
data, err := web.RequestDataWith(web.NewDefaultClient(), u, "GET", "", web.RandUA())
8053
if err != nil {
81-
return "ERROR: " + err.Error()
82-
}
83-
defer resp.Body.Close()
84-
bytes, err := ioutil.ReadAll(resp.Body)
85-
if err != nil {
86-
return "ERROR: " + err.Error()
54+
return "ERROR:" + err.Error()
8755
}
88-
89-
replystr := gjson.Get(binary.BytesToString(bytes), "content").String()
56+
replystr := gjson.Get(binary.BytesToString(data), "content").String()
9057
replystr = qykMatchFace.ReplaceAllLiteralString(replystr, "")
9158
replystr = strings.ReplaceAll(replystr, "{br}", "\n")
9259
replystr = strings.ReplaceAll(replystr, qykBotName, nickname)

aireply/xiaoai.go

Lines changed: 5 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -2,20 +2,19 @@ package aireply
22

33
import (
44
"fmt"
5-
"io/ioutil"
6-
"net/http"
75
"net/url"
86
"strings"
97

108
"github.com/FloatTech/zbputils/binary"
119
"github.com/FloatTech/zbputils/web"
10+
"github.com/tidwall/gjson"
1211
)
1312

1413
// XiaoAiReply 小爱回复类
1514
type XiaoAiReply struct{}
1615

1716
const (
18-
xiaoaiURL = "http://81.70.100.130/api/xiaoai.php?msg=%s&n=text"
17+
xiaoaiURL = "https://yang520.ltd/api/xiaoai.php?msg=%v"
1918
xiaoaiBotName = "小爱"
2019
)
2120

@@ -26,27 +25,12 @@ func (*XiaoAiReply) String() string {
2625
// TalkPlain 取得回复消息
2726
func (*XiaoAiReply) TalkPlain(msg, nickname string) string {
2827
msg = strings.ReplaceAll(msg, nickname, xiaoaiBotName)
29-
3028
u := fmt.Sprintf(xiaoaiURL, url.QueryEscape(msg))
31-
client := &http.Client{}
32-
req, err := http.NewRequest("GET", u, nil)
33-
if err != nil {
34-
return "ERROR: " + err.Error()
35-
}
36-
// 自定义Header
37-
req.Header.Set("User-Agent", web.RandUA())
38-
req.Header.Set("Connection", "keep-alive")
39-
req.Header.Set("Host", "81.70.100.130")
40-
resp, err := client.Do(req)
41-
if err != nil {
42-
return "ERROR: " + err.Error()
43-
}
44-
defer resp.Body.Close()
45-
bytes, err := ioutil.ReadAll(resp.Body)
29+
data, err := web.RequestDataWith(web.NewDefaultClient(), u, "GET", "", web.RandUA())
4630
if err != nil {
47-
return "ERROR: " + err.Error()
31+
return "ERROR:" + err.Error()
4832
}
49-
replystr := binary.BytesToString(bytes)
33+
replystr := gjson.Get(binary.BytesToString(data), "text").String()
5034
textReply := strings.ReplaceAll(replystr, xiaoaiBotName, nickname)
5135
if textReply == "" {
5236
textReply = nickname + "听不懂你的话了, 能再说一遍吗"

0 commit comments

Comments
 (0)