NsxBot 是一个使用 Go 语言编写,基于 OneBot 11 协议的聊天机器人框架。
提供类似Web框架风格的API,如果你是一个Go Web开发者,那么你可以非常方便的使用NsxBot。
- http,websocket 协议支持
- 支持多客户端统一处理
- 泛型支持,远离any
- 中间件支持
- 过滤器支持
- 事件分组监听
- 自由组合与可扩展性
go get -u github.com/nsxdevx/nsxbot
示例:
package main
import (
"context"
"os"
"strconv"
"github.com/nsxdevx/nsxbot"
"github.com/nsxdevx/nsxbot/driver"
"github.com/nsxdevx/nsxbot/event"
"github.com/nsxdevx/nsxbot/schema"
)
func main() {
driver := driver.NewDriverHttp(":8080", "http://localhost:4000")
bot := nsxbot.Default(driver)
pvt := nsxbot.OnEvent[event.PrivateMessage](bot)
adminuin, _ := strconv.ParseInt(os.Getenv("ADMIN_UIN"), 10, 64)
pvt.Handle(func(ctx *nsxbot.Context[event.PrivateMessage]) {
msg := ctx.Msg
text, err := msg.TextFirst()
if err != nil {
ctx.Log.Error("Error parsing message", "error", err)
return
}
ctx.Log.Info("Private Message", "message", text.Text)
msg.Reply(ctx, text.Text)
var msgchain schema.MeaasgeChain
ctx.SendPvtMsg(ctx, adminuin, msgchain.Text("收到回复了吗?").Br().Face("4"))
})
ctx, cancel := context.WithCancel(context.Background())
defer cancel()
// Run
bot.Run(ctx)
}