Skip to content

Commit

Permalink
更换百度一下为百度百科 (#627)
Browse files Browse the repository at this point in the history
  • Loading branch information
lianhong2758 committed Mar 20, 2023
1 parent 86b87c2 commit 1734f1f
Show file tree
Hide file tree
Showing 2 changed files with 42 additions and 18 deletions.
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -436,11 +436,11 @@ print("run[CQ:image,file="+j["img"]+"]")

</details>
<details>
<summary>百度一下</summary>
<summary>百度百科</summary>

`import _ "github.com/FloatTech/ZeroBot-Plugin/plugin/baidu"`

- [x] 百度下[xxx]
- [x] 百度/百科[xxx]

</details>
<details>
Expand Down
56 changes: 40 additions & 16 deletions plugin/baidu/search.go
Original file line number Diff line number Diff line change
@@ -1,27 +1,51 @@
// Package baidu 百度一下
// Package baidu 百度百科
package baidu

import (
"net/url"
"encoding/json"
"fmt"

"github.com/FloatTech/floatbox/web"
ctrl "github.com/FloatTech/zbpctrl"
"github.com/FloatTech/zbputils/control"
zero "github.com/wdvxdr1123/ZeroBot"
"github.com/wdvxdr1123/ZeroBot/message"
)

ctrl "github.com/FloatTech/zbpctrl"
"github.com/FloatTech/zbputils/control"
"github.com/FloatTech/zbputils/ctxext"
const (
api = "https://api.a20safe.com/api.php?api=21&key=7d06a110e9e20a684e02934549db1d3d&text=%s" // api地址
)

func init() {
control.Register("baidu", &ctrl.Options[*zero.Ctx]{
type result struct {
Code int `json:"code"`
Msg string `json:"msg"`
Data []struct {
Content string `json:"content"`
} `json:"data"`
}

func init() { // 主函数
en := control.Register("baidu", &ctrl.Options[*zero.Ctx]{
DisableOnDefault: false,
Brief: "不会百度吗",
Help: "- 百度下[xxx]",
}).OnPrefix("百度下").SetBlock(true).Limit(ctxext.LimitByGroup).
Handle(func(ctx *zero.Ctx) {
txt := ctx.State["args"].(string)
if txt != "" {
ctx.SendChain(message.Text("https://buhuibaidu.me/?s=" + url.QueryEscape(txt)))
}
})
Help: "百度百科\n" +
"- 百度/百科[关键字]",
})
en.OnRegex(`^[百度|百科]\s*(.+)$`).SetBlock(true).Handle(func(ctx *zero.Ctx) {
es, err := web.GetData(fmt.Sprintf(api, ctx.State["regex_matched"].([]string)[1])) // 将网站返回结果赋值
if err != nil {
ctx.SendChain(message.Text("出现错误捏:", err))
return
}
var r result // r数组
err = json.Unmarshal(es, &r) // 填api返回结果,struct地址
if err != nil {
ctx.SendChain(message.Text("出现错误捏:", err))
return
}
if r.Code == 0 && len(r.Data) > 0 {
ctx.SendChain(message.Text(r.Data[0].Content)) // 输出提取后的结果
} else {
ctx.SendChain(message.Text("API访问错误"))
}
})
}

0 comments on commit 1734f1f

Please sign in to comment.