背景:Bncr 是一个开箱即用的Nodejs Chat RoBot(会话式机器人)框架。它基于OOP函数响应式编程,具有占用小、响应快、开发易等特点,允许开发者创建高度可测试、可扩展、松散耦合且易于维护的应用程序。本项目架构深受Koishi与sillyGirl的启发;
- 项目频道:https://t.me/BncrJS
- 项目频道:https://t.me/red_Lights_District
- 项目地址:https://github.com/Anmours/Bncr
- 开发文档:https://anmours.github.io/Bncr
- 项目介绍:Nodejs环境的插件式机器人框架,它可以diy Adapter来对接任何平台来实现交互。
比较常用的插件/功能:
- 奶酪棒插件--对接青龙:获取|删除 配置文件,环境变量 删除|禁用|启用|查找|移动,任务 运行|停止|启用|禁用|状态|置顶|取消置顶|添加|修改|删除|日志。
- 登录插件--对接ark,rabbit扫码,pro扫码、短信登录。
- 店铺抽豆监控。
- 店铺签到监控。
- 可迁移傻妞到Bncr。
- Bncr SPY 监控变量。
安装无界
目前仅支持docker安装
# 在你要存放数据的目录下手动新建BncrData文件夹
# (以root目录为例)
# 警告!群晖用户请勿在root下存放任何文件!修改成你的硬盘目录!
mkdir /root/BncrData #在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 run --rm \
-v /var/run/docker.sock:/var/run/docker.sock \
containrrr/watchtower \
-c --run-once \
bncr
查看日志
docker logs bncr
进入容器控制台
#进入
docker attach bncr
# 退出attach
Ctrl+p Ctrl+q
进入容器命令行
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
插件目录,自带一些官方插件
基础命令
//设置qq管理员 其他平台类似
set qq admin 12345698
//获取数据库
get 表 key
//例如获取管理员
get qq admin
// 设置数据库
set 表 key value
// 重启机器
重启
//获取时间
time
//启动时间
启动时间
//获取机器码
机器码
//获取版本
bncr版本
// 获取群id
群id
//获取个人id
我的id
//监听群消息 (默认屏蔽所有群)
监听该群
//屏蔽群消息
屏蔽该群
//不回复该群
不回复该群
//回复
回复该群
配置Bncr
基本配置
- Token获取
- 先私聊 https://t.me/red_Lights_Districts_Bot ,否者收不到消息,然后BncrJS里发 /get_token
复制token填入config - 把要对接的平台开关enable改为true
- 重启
常见问题
为什么不回复消息,发消息没反应
- 当发送管理员命令没有反应时,请检查管理员是否正确
- 步骤:
- 对着机器人发 '我的id' 机器人会回复你的id然后设置一下管理员(见下文)
- 注意! 管理员命令需要在有管理员权限的平台操作,不然无效
- 不知道哪个平台有管理员权限的,docker attach bncr 后在控制台发
//设置qq管理员 其他平台类似
set qq admin 12345698
set wxKeAImao admin 12345698
set wxQianxun admin 12345698
set wxXyo admin 12345698
set tgBot admin 12345698
set HumanTG admin 12345698
当群友在群里发消息机器人没有任何回应时,说明你没对群监听
- 快捷操作
- 管理员在群聊中发送 '监听该群' 即可响应群友消息
- 发送 '屏蔽该群' 取消监听
- 发送 '不回复该群' 监听消息但是不会回复任何消息
- '回复该群' 恢复默认
- 手动设置上诉效果
// 监听tg频道,或者手动设置监听群
set groupWhitelist 平台名:id true
// 栗子,监听一个频道
set groupWhitelist HumanTG:-1001744932665 true
// 删除监听(屏蔽该频道)
del groupWhitelist HumanTG:-1001744932665
// 不回复手动
set noReplylist HumanTG:-1001744932665 true
// 回复手动
set noReplylist HumanTG:-1001744932665 false
或
del noReplylist HumanTG:-1001744932665
显示未设置@name丨@rule丨@admin 插件加载异常
- 检查插件文件夹是否放入正确:
- 插件保存至bncr 的 BncrData/plugins/红灯区/下
Error: Cannot find module './xxxxx'
- 插件文件夹下没有mod文件,或缺少自定义模块,谁写的插件找谁要这些模块,一般对应的插件仓库都有的,是你没装好!
- 下载 https://github.com/RedLightsDistrict/Bncr_plugins 链接中的mod放入到红灯区下
Error: Cannot find module 'xxxxx'
-
统一为缺少npm模块,通过管理员对机器人发送 npm i xxxx 命令安装模块后重启即可解决
查询没有反应
- 安装依赖
-
docker exec -it bncr /bin/sh cd BncrData npm i [email protected] crypto-js
未来
- 插件社区
- Web页面
- 在线编辑插件
- ...
目前暂无Web前端开发计划,如果有前端工程师对此感兴趣,请联系@Aming~
支持,感觉挺不错的??
学习了!!!来顶一下?