-
Notifications
You must be signed in to change notification settings - Fork 2k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
86b87c2
commit 1734f1f
Showing
2 changed files
with
42 additions
and
18 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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访问错误")) | ||
} | ||
}) | ||
} |