55 lines
1.3 KiB
Go
55 lines
1.3 KiB
Go
package snowluma_test
|
|
|
|
import (
|
|
"context"
|
|
"os"
|
|
"os/signal"
|
|
|
|
snowluma "gitea.doicat.com/bot/snowluma"
|
|
)
|
|
|
|
// 完整示例:配置连接、注册事件与命令,阻塞运行直到收到中断信号。
|
|
func Example() {
|
|
bot := snowluma.New().
|
|
SetToken("your-token").
|
|
SetForwardWS("ws://127.0.0.1:3001")
|
|
// 可叠加其他通信方式:
|
|
// bot.SetReverseWS(":8080")
|
|
// bot.SetHTTPAPI("http://127.0.0.1:3000")
|
|
// bot.SetHTTPReport(":8081")
|
|
|
|
// 文本命令
|
|
bot.OnCommand("/ping", func(c *snowluma.Context, args []string) {
|
|
c.ReplyText("pong!")
|
|
})
|
|
|
|
// 群里 @机器人 就复读
|
|
bot.OnGroupMessage(func(c *snowluma.Context) {
|
|
if c.HasAtMe() && !c.IsSelfMessage() {
|
|
c.ReplyText("收到: " + c.PlainText())
|
|
}
|
|
})
|
|
|
|
// 进群欢迎
|
|
bot.OnNoticeType("group_increase", func(c *snowluma.Context) {
|
|
c.SendGroupMsg(nil, c.Event.Notice.GroupID, snowluma.Text("欢迎新人~"))
|
|
})
|
|
|
|
// 被戳就戳回去
|
|
bot.OnNoticeType("notify", func(c *snowluma.Context) {
|
|
n := c.Event.Notice
|
|
if n.SubType == "poke" && n.TargetID == c.SelfID() {
|
|
c.SendPoke(nil, n.GroupID, n.UserID)
|
|
}
|
|
})
|
|
|
|
// 好友/群请求自动同意
|
|
bot.OnRequest(func(c *snowluma.Context) {
|
|
c.Approve()
|
|
})
|
|
|
|
ctx, stop := signal.NotifyContext(context.Background(), os.Interrupt)
|
|
defer stop()
|
|
bot.Run(ctx)
|
|
}
|