无界 | Bncr | Boundless Nodejs Chat Robot 机器人框架安装使用教程
背景:Bncr 是一个开箱即用的Nodejs Chat RoBot(会话式机器人)框架。它基于OOP函数响应式编程,具有占用小、响应快、开发易等特点,允许开发者创建高度可测试、可扩展、松散耦合且易于维护的应用程序。本项目架构深受Koishi与sillyGirl的启发;
- 项目地址:https://github.com/Anmours/Bncr
- 开发文档:https://anmours.github.io/Bncr
- 项目介绍:Nodejs环境的插件式机器人框架,它可以diy Adapter来对接任何平台来实现交互。
比较常用的插件/功能:
- 奶酪棒插件–对接青龙:获取|删除 配置文件,环境变量 删除|禁用|启用|查找|移动,任务 运行|停止|启用|禁用|状态|置顶|取消置顶|添加|修改|删除|日志。
- 登录插件–对接ark,rabbit扫码,pro扫码、短信登录。
- 店铺抽豆监控。
- 店铺签到监控。
- 可迁移傻妞到Bncr。
- Bncr SPY 监控变量。
安装无界
目前仅支持 docker安装
在你要存放数据的目录下手动新建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 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获取
1.先私聊 https://t.me/red_Lights_Districts_Bot ,否者收不到消息,然后BncrJS里发 /get_token
复制token填入config
2.把要对接的平台开关enable改为true
3.重启
常见问题
为什么不回复消息,发消息没反应
- 当发送管理员命令没有反应时,请检查管理员是否正确
- 步骤:
对着机器人发 ‘我的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 got@11.8.5 crypto-js
无界 | Bncr | Boundless Nodejs Chat Robot 机器人框架安装使用教程的更多相关文章
- Python3+Robot Framework+RIDE安装使用教程
一.说明 Python3----网上很多文章都是用Python2,Robot Framework的部分文档没更新也直接写着不支持Python3(如RIDE does not yet support P ...
- 无界鼠标 Mouse Without Borders
最近遇到一个不爽的事,单位的办公电脑,配置低,自带笔记本电脑,屏幕小. 在给自己的笔记本电脑外接了22寸显示器以后,屏幕是舒服了很多,而且外接了微软的人机工学键鼠套装,加上自己的伪人机工学椅,舒适性确 ...
- [JSOI2016]无界单词[动态规划、kmp]
题意 题目链接 分析 对于第一问,枚举最终串最小的相同前后缀来统计答案. 由于最小的相同前后缀也是无界单词,所以可以考虑先求解子问题. 定义状态 \(f(i)\) 表示长度为 \(i\) 的串中有多少 ...
- python concurrent.futures.Threadpoolexcutor的有界队列和无界队列
1.默认是无界队列,如果生产任务的速度大大超过消费的速度,则会把生产任务无限添加到无界队列中,这样一来控制不了生产速度,二来是会造成系统内存会被队列中的元素堆积增多而耗尽. 2.改写为有界队列 cla ...
- 【LOJ】#2078. 「JSOI2016」无界单词
题解 用所有的方案减去有界的方案 我们规定两个前缀后缀相同时长度最短的,设长度为l,因为长度最短所以他们也是无界单词,可以递推 \(f[i] = \sum_{j = 1}^{\lfloor \frac ...
- oracle IMP-00085: 为无界导出文件指定了多个输入文件
导入按表导出的数据的时候,提示为无界导出文件指定了多个输入文件 命令如下: imp user/user@database file=e:\test.dmp 提示信息: Import: Release ...
- 有界、无界队列对ThreadPoolExcutor执行的影响
本文转载自https://blog.csdn.net/kusedexingfu/article/details/72491864 Java提供了4钟线程池: newCachedThreadPool n ...
- [转] Java 无界阻塞队列 DelayQueue 入门实战
原文出处:http://cmsblogs.com/ 『chenssy』 DelayQueue是一个支持延时获取元素的无界阻塞队列.里面的元素全部都是"可延期"的元素,列头的元素是最 ...
- mouse without borders无界鼠标使用教程
mouse without borders无界鼠标使用教程 摘自https://www.jianshu.com/p/6a0209ad03f8 老黑随笔 关注 0.4 2018.05.18 11: ...
- Java泛型(7):无界通配符<?>
无界通配符<?>很容易和原生类型混淆. 以List为例: List表示持有任何Object类型的原生List,其实就等价于List<Object> List<?>表 ...
随机推荐
- 零基础学习人工智能—Python—Pytorch学习(十二)
前言 本文介绍使用神经网络进行实战. 使用的代码是<零基础学习人工智能-Python-Pytorch学习(九)>里的代码. 代码实现 mudule定义 首先我们自定义一个module,创建 ...
- 在 PdfSharp 中使用私有字体
在 PdfSharp 中使用私有字体 在 PdfSharp 1.5 中提供了在 Web 服务器上使用私有字体的示例,见:http://www.pdfsharp.net/wiki/(X(1)S(mg0w ...
- aws命令行cli创建VPC网络、公有子网、私有子网、nat网关+EIP
在AWS部署海外节点, 图简单使用web控制台创建VPC和k8s集群出错(k8s), 使用cli命令行工具创建成功 本实例为复盘, 记录aws命令行工具cli创建VPC网络, a区和b区分别创建公有子 ...
- shell脚本忽略错误继续执行
在 shell 脚本中,可以使用 set -e 命令来设置脚本在遇到错误时退出执行.如果你希望脚本忽略错误并继续执行,可以在脚本开头添加 set +e 命令来取消该设置. 例如,下面是一个忽略错误并继 ...
- Shell三元表达式
Shell三元表达式 shell能否实现三元表达式呢?像下面这样: int a = (b == 5) ? c : d; 实现方法: a=$([ "$b" == 5 ] & ...
- Qt编写的项目作品10-本地摄像头综合应用示例
一.功能特点 同时支持 QCamera.ffmpeg.v4l2 三种内核解析本地摄像头. 提供函数 findCamera 自动搜索环境中的所有本地摄像头设备,搜索结果信号发出. 支持自动搜索和指定设备 ...
- 用 Ingram 和 masscan 来扫描全网存在漏洞的camera
前言 大学的时候也写过和Ingram差不多的工具,不过那时候已经玩到没有兴致了,代码已不知道哪里去.没想到在Github看到了这个工具,实现思路和我的几乎一样,互联网就是这么神奇. Ingram的Gi ...
- 解决:The content of element type "web-app" must match "(icon?display
错误描述: The content of element type "web-app" must match"(icon?,display-name?,descripti ...
- C#操作MySQL数据库——思路简单清晰
1.下载mysql.Data.dll,在解决方案->引用中引入,并在文件头部引入 using MySql.Data.MySqlClient; 2.创建MySqlConnection对象(链接库) ...
- AI Agent系列-什么是AI智能体,使用Semantic Kernel开发一个AI Agent
今年最热的技术除了LLM大语言模型外,AI Agent智能体成为下一个最热的技术发展热点.. 近期准备整理几篇AI智能体的博客,带着大家了解并学习AI 智能体的开发和应用. 一.什么是AI 智能体 A ...