背景
Bncr 是一个开箱即用的Nodejs Chat RoBot(会话式机器人)框架。它基于OOP函数响应式编程,具有占用小、响应快、开发易等特点,允许开发者创建高度可测试、可扩展、松散耦合且易于维护的应用程序。本项目架构深受Koishi与sillyGirl的启发;
- 项目地址:https://github.com/Anmours/Bncr
- 开发文档:https://anmours.github.io/Bncr
- 项目介绍:Nodejs环境的插件式机器人框架,它可以diy Adapter来对接任何平台来实现交互。
————————————————
安装
目前仅支持 docker安装
拉取镜像
docker pull anmour/bncr
在你要存放数据的目录下手动新建BncrData文件夹(以root目录为例)
警告!群晖用户请勿在root下存放任何文件!修改成你的硬盘目录!
在root目录新建BncrData文件夹
mkdir /root/BncrData
拉取并运行容器 并进入交互控制台
docker run -dit \
-v /root/BncrData:/bncr/BncrData \
-p 9090:9090 \
--name bncr \
--hostname bncr \
--restart on-failure:5 \
--log-opt max-size=5m \
--log-opt max-file=3 \
anmour/bncr && docker attach bncr
进入容器交互控制台
#进入
docker attach bncr
# 退出交互控制台
Ctrl+p Ctrl+q
更新容器
docker run --rm \
-v /var/run/docker.sock:/var/run/docker.sock \
containrrr/watchtower \
-c --run-once \
bncr
查看日志
docker logs bncr
进入容器命令行(一般用不到)
docker exec -it bncr /bin/sh
结构目录
初次启动会在你映射的宿主机路径下创建5个文件夹,分别为
Adapter
config
public
db
plugins
config
下会自动生成一些启动所需的配置文件,已进行详细注释,根据自己情况来填写;
Adapter
下会自带tgbot
、HumanTG
、qqbot
、wxKeAImao
、wxQianxun
以及系统适配器;
public
为静态资源目录,你可以在里边放一些文件,通过http://ip:9090/public/文件名
来访问这些资源
db
为系统数据库存放目录
plugins
插件目录,自带一些官方插件node_modules :模块
配置Bncr
基本配置
- Token获取
先进BncrJS频道https://t.me/BncrJSChat- 然后私聊 https://t.me/red_Lights_Districts_Bot ,否者收不到消息,
- 然后BncrJS里发 /get_token
- 复制token填入config
- 把要对接的平台开关enable改为true
- 重启
设置账号/密码
浏览器访问 ip:端口 端口默认9090,点击初始化账号会出现设置账号密码的命令,忘记帐号密码也可以使用,
准备工作:
打开主机bash执行:docker attach bncr进入容器内部. 或在拥有管理员的平台发送以下命令:
设置账号:set system name 你的账号
设置密码:set system password 你的密码
鉴权URL
默认鉴权URL无法使用
自定义鉴权域名
目前可用URL
http://bncr.619030.xyz:2082
http://bncr.888862.xyz
http://future.free.hr:2082
https://rebncr.dsdog.tk
插件市场
暂不支持分类,可以使用搜索
无界的具体功能都需要适配器/插件实现,首先下载适配器,方便对接各聊天平台,建议一次把需要的适配器下载完,因为适配器需要重启才能看到
添加订阅
进入插件市场,右上角点击订阅按钮,默认已经订阅了官方插件
点击右边加号添加其他大佬的订阅,点击减号删除订阅
订阅连接
红灯区
- 订阅模式:GitHub
- 说明:狗东相关旧版插件,许多插件依赖该订阅,暂不支持3.0
- 订阅链接:https://github.com/RedLightsDistrict/Bncr_plugins
D佬
- 订阅模式:sub
- 说明:狗东相关
bncrSub://UpdjUc6jid/ZFkJhEZFTW0zFEYpg7ZPidkatlTM6OSN/bOxWaExKe5VQ14AHsy+0ufSXlKVuOuRYAqkTz7a2Z3dS8aW8mj6O8MsZVFDHMpc=
寒佬
- 订阅模式:sub
- 说明:狗东/内置微信相关
bncrsub://3BPeb/Ff4FlBAx372D99jdVghsmvkSgLBq9KU/hngTdwC2GEcEwqYWSWDYKb6RfikHZG1cRp8/VvIGJ786YOuBlGXSIKXzAA1klCLP7Pc80=
胜利佬
- 订阅模式:sub
- 说明:娱乐相关
bncrSub://wF/k4Mz95ytHfhV15ZODYlhhzebRtJJ0f7TFUFxz93HmBntFxJwjKeBgOyXJiWIShBPM7dP7q+Vtzcu1imytZ0T0Nj7Zc2Nb6vO6LiP7NAU=
缘佬
- 订阅模式:sub
- 说明:AI相关
bncrSub://3BPeb/Ff4FlBAx372D99jYvj+QZcN253M4hwNraBlDlkcHZ3Co50nPr36N+UPUwByGOOlBqx00VAtjamL5r6HbE7eOYTWuOnjVZCTZZmO68=
Merrickk
- 订阅模式:GitHub
- 说明:微信订阅号
- 订阅链接:https://github.com/Merrickk/BncrFiles
sumuen
- 订阅模式:GitHub
- 说明:包含适配NTQQ项目Lagrange.Core的适配器与一些插件
- 订阅链接:https://github.com/sumuen/Bncr_plugin
单身汪
- 订阅模式:GitHub + sub
- 说明:一些没什么用的插件,无法访问GitHub的可以使用sub订阅
- 订阅链接:https://github.com/callacat/BncrJS_plugins
bncrSub://3BPeb/Ff4FlBAx372D99jVyIKCqA1o+N6BGTODwfLTZrDM4RSZKoS4TbJlpyOm47YhEFvTGcZvorshRgSZRqhuvtZ5z6IIZiGB8EWGrtvD0=
JC
- 订阅模式:sub
- 说明:elm
bncrsub://4jZW6oPmVyXqvAZWhY1TV70Us3xou/l8DG7lu3ZNncvutZqo60FBZE0z2J6GOSuHVZ0FmeN9AJAT67XqtEDvcQ==
小九九
- 订阅模式:GitHub
- 说明:狗东自动登录
- 订阅链接:https://github.com/randomshit699/Bncr_plugins
三藏
- 订阅模式:GitHub
- 说明:小工具
- 订阅链接:https://github.com/3zang/Bncr_plugins
枯花
- 订阅模式:sub
- 说明:小工具
bncrSub://hbq80RwrMDlTHxjzsPkUWY/ObH3eYsqVRJduerbj3VLqn6HIX9FDfEnjLxmP3tnDAbgZA/ZytDYXnMPDNs/6OgX6FJrZlwgu1yMKxaPkjdA=
October
- 订阅模式:sub
- 说明:小工具
bncrSub://3BPeb/Ff4FlBAx372D99jSgYAOp0iHTZYdXsiIPvd8Kv+n62AwCyJeSaLEwNILJPTolaQ/RxzeG3WMcOQzvUpkO+H+mnXr5+73k7J/jMjQA=
yuanter
- 订阅模式:sub
- 说明:专用登录工具
bncrSub://UpdjUc6jid/ZFkJhEZFTW/8AQnqGof/eXGPt+fCsmJ31/6uffZxee3QzBTXMYrzPWdzsQ90+6RGUYrEfBlnRnsXejZuVbYXS1qVLK8a4tPI=
屁 啊
- 订阅模式:GitHub
- 说明:小工具
- 订阅链接:https://github.com/lastbaigeiapi/Bncr_plugin
奖 励
- 订阅模式:GitHub
- 说明:小工具
- 订阅链接:https://github.com/CoverUp137/Bncr_plugin
鑫仔
- 订阅模式:GitHub
- 说明:小工具
- 订阅链接:https://github.com/seven-XINZ/bncr
对接机器人框架
微信
xyo微信
已xyo为例,插件市场官方订阅下载wxXyo.js适配器,重启无界,进入插件配置→找到/Adapter/wxXyo.js开启适配器,输入xyo的上报地址,点击保存
再去微信框架中的xyo插件中添加消息回调地址,http://无界的ip:端口/api/bot/Xyo
设置xyo token
在web聊天窗口发送命令
set wxXyo xyo_token xxx
设置管理员
在微信中给机器人账号发消息,在微信框架的日志中查看管理员ID,然后在web聊天窗口发送命令
set wxXyo admin xxx (这个xxx指的是你对机器人发‘我的id’出来的id)
重启无界
wechaty微信
需要先添加寒佬订阅链接,微信号需实名
插件市场下载wechaty.js,插件配置中找到wechaty,点击开启适配器,其他选项可选。
设置管理员
在微信中给机器人账号发消息,在无界的日志中查看管理员ID,然后在web聊天窗口发送命令
set wechaty admin wxid_
重启无界
登录
- 配置好wechaty插件后第一次重启无界时,查看无界日志,会弹出登录二维码,使用微信小号扫码登录即可
- 重要!如需更换微信机器人账号,需要在wechaty插件中修改机器人标识
go-cqhttp
敬请期待
NTQQ
敬请期待
对接青龙
- 青龙相关的功能都是基于奶酪插件实现的,但是红灯区还没有适配3.0,需要自行从红灯区仓库下载奶酪.js到无界的
/bncr/BncrData/plugins/红灯区
目录下- 下载mod文件夹下
AmQlMod.js
、AmTool.js
和CryptoJS.js
到mod
目录下- 下载好后进入文件管理,编辑奶酪插件,将
origin
改成team
保存- 青龙面板创建应用过程略过
- Web交互聊天窗口使用管理员身份发送命令
面板管理
按照提示添加青龙面板,可添加多个,最后记得输入wq
保存并退出
基础命令
//获取数据库数据
get 表 key
//例如获取管理员
get qq admin
// 设置数据库
set 表 key value
set system name Anmour
// 重启机器
重启
//获取时间
time
//启动时间
启动时间
//获取机器码
机器码
//获取版本
bncr版本
// 获取群id
群id
//获取个人id
我的id
//监听群消息 (默认屏蔽所有群)
监听该群
//屏蔽群消息
屏蔽该群
//不回复该群
不回复该群
//回复
回复该群
关于报错
Error: Cannot find module 'xxxxx'
统一为缺少npm模块,通过管理员对机器人发送 npm i xxxx 命令安装模块后重启即可解决
Error: Cannot find module './xxxxx'
统一为缺少自定义模块,谁写的插件找谁要这些模块,一般对应的插件仓库都有的,是你没装好!
插件[xxxx.js]加载异常 未设置xxxx
未设置@name|@rule|@version|@admin|@author|@origin 这种情况一般是你的插件放错位置了,比如红灯区的插件,全部放在/plugins/红灯区/下,没有这个目录就新建!