Skip to content

fumiama/NanoBot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

c22d818 · Nov 22, 2023

History

99 Commits
Oct 15, 2023
Nov 15, 2023
Nov 22, 2023
Oct 15, 2023
Oct 10, 2023
Nov 22, 2023
Nov 16, 2023
Nov 22, 2023
Nov 22, 2023
Oct 15, 2023
Oct 18, 2023
Nov 22, 2023
Oct 15, 2023
Nov 17, 2023
Nov 17, 2023
Nov 16, 2023
Nov 22, 2023
Oct 12, 2023
Nov 12, 2023
Oct 11, 2023
Nov 15, 2023
Oct 16, 2023
Oct 16, 2023
Oct 15, 2023
Nov 16, 2023
Oct 14, 2023
Nov 16, 2023
Oct 11, 2023
Oct 14, 2023
Oct 12, 2023
Oct 13, 2023
Oct 11, 2023
Nov 16, 2023
Oct 11, 2023
Oct 16, 2023
Oct 15, 2023
Oct 13, 2023
Oct 13, 2023
Oct 11, 2023
Oct 12, 2023
Nov 22, 2023
Oct 13, 2023
Oct 11, 2023
Oct 13, 2023
Oct 11, 2023
Oct 13, 2023
Nov 16, 2023
Nov 16, 2023
Nov 22, 2023
Nov 22, 2023
Nov 15, 2023
Oct 18, 2023
Nov 16, 2023
Nov 22, 2023
Oct 15, 2023
Oct 15, 2023
Oct 15, 2023

Repository files navigation

东云名乃

NanoBot

类ZeroBot的官方QQ频道/群聊全域机器人框架, 简单易用


Instructions

Note: This framework is built mainly for Chinese users thus may display hard-coded Chinese prompts during the interaction.

参见 QQ 官方文档

快速开始(基于插件)

查看example文件夹以获取更多信息

开始响应 服务列表 查看用法

启用禁用

package main

import (
	_ "github.com/fumiama/NanoBot/example/echo"

	nano "github.com/fumiama/NanoBot"
	log "github.com/sirupsen/logrus"
)

func main() {
	log.SetLevel(log.DebugLevel)
	nano.OpenAPI = nano.SandboxAPI
	nano.OnMessageFullMatch("help").SetBlock(true).
		Handle(func(ctx *nano.Ctx) {
			_, _ = ctx.SendPlainMessage(false, "echo string")
		})
	nano.Run(nil, &nano.Bot{
		AppID:      "你的AppID",
		Token:      "你的Token",
		Secret:     "你的Secret, 可以不填 (QQ群Bot必须填写)",
		Intents:    nano.IntentPublic,
		SuperUsers: []string{"用户ID1", "用户ID2"},
	})
}

更多选择(传统的事件驱动)

如果声明了 Handler, 所有插件将被禁用

event-based example

package main

import (
	"strings"

	nano "github.com/fumiama/NanoBot"
	log "github.com/sirupsen/logrus"
)

func main() {
	log.SetLevel(log.DebugLevel)
	nano.OpenAPI = nano.SandboxAPI
	nano.Run(nil, &nano.Bot{
		AppID:   "你的AppID",
		Token:   "你的Token",
		Secret:  "你的Secret, 可以不填 (QQ群Bot必须填写)",
		Intents: nano.IntentPublic,
		Handler: &nano.Handler{
			OnAtMessageCreate: func(s uint32, bot *nano.Bot, d *nano.Message) {
				u := ""
				if len(d.Attachments) > 0 {
					u = d.Attachments[0].URL
					if !strings.HasPrefix(u, "http") {
						u = "http://" + u
					}
				}
				_, err := bot.PostMessageToChannel(d.ChannelID, &nano.MessagePost{
					Content:        "您发送了: " + d.Content,
					Image:          u,
					ReplyMessageID: d.ID,
					MessageReference: &nano.MessageReference{
						MessageID: d.ID,
					},
				})
				if err != nil {
					bot.PostMessageToChannel(d.ChannelID, &nano.MessagePost{
						Content:        "[ERROR]: " + err.Error(),
						ReplyMessageID: d.ID,
					})
				}
			},
		},
	})
}

Thanks