Skip to content

nsxdevx/nsxbot

Repository files navigation

NsxBot OneBot Framework

nsxbot

Go Reference Badge License qq group

简介

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)
}

参考

About

NsxBot 是一个使用 Go (Golang) 语言编写,基于 OneBot11 协议的聊天机器人框架。

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages