prev | next |
---|---|
/usage/install |
/usage/cookie |
本节将详细列出 Bison 的使用方法,包括但不限于
- 如何配置 Bison
- 如何使用 Bison 的后台管理网页
- 如何使用 Bison 的 API
如果你想要快速上手 Bison,可以前往简单使用
::: tip INFO
- 想要在 nonebot 中配置需要的Bison 配置项,请参考NoneBot 配置方式,在
.env
/.env.*
文件中写入希望配置的 Bison 配置项 - 请注意,在
.env
/.env.*
中添加的配置项 ==不需要== 声明变量类型
:::
-
BISON_TO_ME
: 是否需要 @Bot 或使用 Bot 的 Nickname 来触发 Bison 的命令,默认为True
-
BISON_CONFIG_PATH
: 插件存放配置文件的位置,如果不设定默认为项目目录下的data
目录,现用于从低版本迁移 -
BISON_USE_PIC
: 将几乎所有文字渲染成图片后进行发送,多用于规避风控 -
BISON_BROWSER
: 本插件使用 Chrome 来渲染图片- 如果不进行配置,那么会在启动时候自动进行安装,在官方的 docker 镜像中已经安装了浏览器
- 使用本地安装的 Chrome,设置为
local:<chrome path>
,例如local:/usr/bin/google-chrome-stable
- 使用 cdp 连接相关服务,设置为
wsc://xxxxxxxxx
- 使用 browserless 提供的 Chrome 管理服务,设置为
ws://xxxxxxxx
,值为 Chrome Endpoint ::: warning 截止发布时,本项目尚不能完全与 browserless 兼容,目前建议使用镜像内自带的浏览器 即 不要配置这个变量 :::
-
BISON_SKIP_BROWSER_CHECK
: 是否在启动时自动下载浏览器,如果选择False
会在用到浏览器时自动下载, 默认True
-
BISON_OUTER_URL
: 从外部访问服务器的地址,不设置或为空时默认值为http://localhost:<Bot运行在的端口>/bison/
::: warning 请注意,该网址并不能直接访问 Bison 的后台管理网页,正确的访问方法请参见私聊机器人获取后台地址 ::: ::: tip 配置建议 请选择你的部署情况:使用容器部署 部署在服务器上 启用反代下面是配置建议:{{ outerUrlHelp }}
:::
-
BISON_FILTER_LOG
: 是否过滤来自nonebot
的 warning 级以下的 log,如果你的 bot 只运行了这个插件可以考虑 开启,默认关 -
BISON_USE_QUEUE
: 是否用队列的方式发送消息,降低发送频率,默认开 -
BISON_RESEND_TIMES
: 最大重发次数,默认 0 -
BISON_USE_PIC_MERGE
: 是否启用多图片时合并转发(仅限群)0
: 不启用 (默认)1
: 首条消息单独发送,剩余图片合并转发2
: 所有消息全部合并转发
::: details BISON_USE_PIC_MERGE 配置项示例
::: ::: warning 启用此功能时,可能会因为待推送图片过大/过多而导致文字消息与合并转发图片消息推送间隔过大 (选择模式
1
时),请谨慎考虑开启。或者选择模式2
,使图文消息一同合并转发 (可能会使消息推送延迟过长) ::: -
BISON_PROXY
: 使用的代理连接,形如http://<ip>:<port>
(可选) -
BISON_UA
: 使用的 User-Agent,默认为 Chrome -
BISON_SHOW_NETWORK_WARNING
: 是否在日志中输出网络异常,默认为True
-
BISON_COLLAPSE_NETWORK_WARNING
: 在启用BISON_SHOW_NETWORK_WARNING
后选择是否清理警告文本中的换行符并当文本字符数超过限制时折叠这段文本,默认为False
-
BISON_COLLAPSE_NETWORK_WARNING_LENGTH
: 在启用BISON_COLLAPSE_NETWORK_WARNING
后限制警告文本字符数 -
BISON_USE_BROWSER
: 环境中是否存在浏览器,某些主题或者平台需要浏览器,默认为False
-
BISON_PLATFORM_THEME
: 为平台指定渲染用主题,用于渲染推送消息,默认为{}
::: details BISON_PLATFORM_THEME 配置项示例配置项使用
<platform>:<theme>
的形式来为某个平台指定其渲染主题,例如"weibo":"basic"
"bilibili":"ht2i"
。
最外层使用
{}
包裹,多个配置项之间使用逗号,
分隔。
需要注意,<platform>
所用内容是平台的代码英文名,<theme>
所用内容是主题的代码英文名。
并且不要忘记使用双引号""
包裹内容。例子:
BISON_PLATFORM_THEME={"weibo":"basic","bilibili":"ht2i"}
::: warning
本节假设COMMAND_START
配置中包含''
- 如果出现 bot 不响应的问题,请先排查这个设置
- 尝试在命令前添加设置的命令前缀,如
COMMAND_START=['/']
,则尝试使用/添加订阅
:::
所有命令都需要 @bot 触发
- 添加订阅(仅管理员和群主和 SUPERUSER):
添加订阅
- 查询订阅:
查询订阅
- 删除订阅(仅管理员和群主和 SUPERUSER):
删除订阅
::: details 关于中止命令
对于v0.5.3及以上的版本中,已经为添加订阅/删除订阅
命令添加了中止删除功能。
在命令的几乎各个阶段,都可以向 Bot 发送取消
消息来中止流程 (需要发起者本人发送)
:::
要管理订阅,请和 bot 私聊输入后台管理
命令,然后访问回复中的链接。你的管理权限取决于你的身份:
- 如果你是 superuser,你可以管理所有群的订阅;
- 如果你是某些群的管理员,你可以管理这些群的订阅;
- 如果你不是任何群的管理员,bot 会提示你无法执行此操作。
::: warning 注意隐私
bot 返回的链接是网页的唯一身份凭证,不要泄露给他人。
链接具有有时效性,过期后需重新向 bot 索取新链接。
:::
请私聊 bot 群管理
::: details 关于中止订阅
与普通的添加订阅
/删除订阅
命令一样,在群管理
命令中使用的添加订阅
/删除订阅
命令也可以使用取消
来中止流程
:::
Bison 在 nb-cli
中注册了一些命令,用于导出和导入订阅信息。
nb bison --help
Nonebot Bison CLI, 目前用于实现Bison订阅的导入导出功能
用法:
nb bison COMMAND [OPTIONS] [ARGS]
Command(命令):
export:
导出 Nonebot Bison Exchangable Subcribes File
Options(选项):
-p, --path TEXT 导出路径, 如果不指定,则默认为工作目录
--format [json|yaml|yml] 指定导出格式[json, yaml],默认为 json
--help 显示帮助
import:
从 Nonebot Biosn Exchangable Subscribes File 导入订阅
Options(选项):
-p, --path TEXT 导入文件名 [必须]
--format [json|yaml|yml] 指定导入格式[json, yaml],默认为 json
--help 显示帮助
Bison 支持的平台如下:
arknights
: 明日方舟游戏信息bilibili
: B 站bilibili-live
: Bilibili 直播bilibili-bangumi
: Bilibili 剧集ff14
: 最终幻想 XIV 官方公告ncm-artist
: 网易云 - 歌手ncm-radio
: 网易云 - 电台rss
: RSSweibo
: 新浪微博
:::tip
配置 BISON_PLATFORM_THEME
时,所用的 <platform>
是 :
左侧的值
:::
Bison 支持的主题如下:
basic
: 基础主题,是每个平台都会支持的主题ht2i
: 使用nonebot-plugin-htmlrender
插件,将纯文本渲染成图片brief
: 简报主题,仅发送标题、链接、图片arknights
: 明日方舟专用主题,渲染为明日方舟公告风格
:::tip
配置 BISON_PLATFORM_THEME
时,所用的 <theme>
是 :
左侧的值
:::
- 对于一般用户主页
https://weibo.com/u/6441489862?xxxxxxxxxxxxxxx
,/u/
后面的数字即为 uid - 对于有个性域名的用户如:
https://weibo.com/arknights
,需要点击左侧信息标签下“更多”,链接为https://weibo.com/6279793937/about
,其中中间数字即为 uid
主页链接一般为https://space.bilibili.com/161775300?xxxxxxxxxx
,数字即为 uid
整个 RSS 链接即为 uid
在网易云网页上歌手的链接一般为https://music.163.com/#/artist?id=32540734
,id=
后面的数字即为 uid
在网易云网页上电台的链接一般为https://music.163.com/#/djradio?id=793745436
,id=
后面的数字即为 uid
Tag 是社交平台中一种常见的功能,它用井号 (#) 作为前缀,标记关键词,方便用户搜索相关内容。 例如:
#明日方舟#
#每日打卡#
(微博、哔哩哔哩)#baracamp
(推特)
在 Bison 中,用户可以在添加平台账号订阅时(如果该平台支持 hashtag 功能), 选择需要订阅或屏蔽的 Tag。
订阅 Tag 的方法是直接向 Bison 发送一系列 Tag,用空格分隔。
例如:A1行动预备组 罗德厨房——回甘
屏蔽 Tag 的方法是在 Tag 前加上前缀~,也用空格分隔。
例如:~123罗德岛 ~莱茵生命漫画
订阅和屏蔽的 Tag 可以同时使用,按照上述方法发送即可。
例如:A1行动预备组 ~123罗德岛 罗德厨房——回甘 ~莱茵生命漫画
Bison 在处理每条推送时,会按照以下规则顺序检查推送中的 Tag:
对于每条推送:
- 检查 需屏蔽 Tag 列表
- 如果推送中的 Tag 存在于 需屏蔽 Tag 列表中,则立刻丢弃该推送,检查结束
- 如果推送中的 Tag 不存在于 需屏蔽 Tag 列表中,则继续第 2 条规则的检查
- 需订阅 Tag 列表不为空
- 如果推送中的任何一个 Tag 存在于 需订阅 Tag 列表中,则发送该推送到群中,检查结束
- 如果推送中的每一个 Tag 都不存在于 需订阅 Tag 列表中,则丢弃该推送,检查结束
- 需订阅 Tag 列表为空
- 发送该推送到群中,检查结束
Bison 支持携带 Cookie 进行请求。
目前支持的平台有:
rss
: RSSweibo
: 新浪微博
::: warning 使用须知 Cookie 全局生效,这意味着,通过你的 Cookie 获取到的内容,可能会被发给其他用户。 :::
管理员可以通过命令或管理后台给 Bison 设置 Cookie。
<script setup lang="ts"> import { ref, computed } from 'vue'; const docker = ref(false); const server = ref(false); const reverseProxy = ref(false); const outerUrlHelp = computed(() => { let helpText: string[] = []; if ((docker.value || server.value) && !reverseProxy.value) helpText.push('HOST=0.0.0.0'); if (docker.value && !server.value && !reverseProxy.value) helpText.push('BISON_OUTER_URL=http://localhost:[Docker 映射到主机的端口]/bison/'); if (server.value && !reverseProxy.value){ if (docker.value) helpText.push('BISON_OUTER_URL=http://[你的服务器 ip]:[Docker 映射到主机的端口]/bison/'); else helpText.push('BISON_OUTER_URL=http://[你的服务器 ip]:[Bot 运行的端口]/bison/'); } if (reverseProxy.value){ if (server.value){ helpText.push('BISON_OUTER_URL=http://[你的服务器 ip]:[反代端口]/bison/'); if (docker.value) helpText.push('# 请注意反代端口应该指向 Docker 映射到主机的端口'); else helpText.push('# 请注意反代端口应该指向 Bot 运行的端口'); } else helpText.push('谁没事在自己电脑上起反代啊('); } if (!docker.value && !server.value && !reverseProxy.value) helpText.push('你无需设置此项'); return helpText.join('\n'); }); </script> <style> .outer-url-help { margin-top: 10px; margin-bottom: 10px; } .outer-url-help label { margin-right: 15px; } </style>