B 站用户监视器,自动监控用户的动态和直播状态,在有新动态和直播状态改变时向关注群发送提示信息。
可多群共用,每个群可以有不同的关注列表。自带数据落地存储机制,重启后可保留各群关注状态。
0.2.0 版本已支持 NoneBot2 2.0 正式版 API,依赖 OneBot V11 Adapter。
特定用户 at 特定群友功能暂时没来得及做命令,目前需要直接改数据库,目前可以假装这个功能不存在。
poetry add nonebot-plugin-bam
import nonebot
from nonebot.adapters.onebot.v11 import Adapter
nonebot.init(_env_file=".env")
driver = nonebot.get_driver()
driver.register_adapter(Adapter)
nonebot.load_builtin_plugins()
# load other plugins
# bam need this to manage background tasks
nonebot.load_plugin("nonebot_plugin_apscheduler")
nonebot.load_plugin("nonebot_plugin_bam")
nonebot.run()
其中 .env
文件除了 nonebot 的常规配置项外,还有可添加以下配置属性(下面展示的是默认值):
# 我个人喜欢用 / 来做分隔符,下面的命令列表也是以 / 为例,可以按照自己喜欢的调整
COMMAND_START=["/"]
COMMAND_SEP=["/"]
# 数据落地文件路径,建议设置一下。
# 用默认值(储存在内存中)的话一重启数据就没了
BAM_DB_FILE=":memory:"
# 重启时将所有用户的直播状态设置为未开播,而不是使用上次记录的状态。
# 正常使用不要打开此选项,是调试用的
BAM_ON_STARTUP_CLEAN_LIVE_STATUS=false
# 监控任务的间隔,这里设置的是每个用户间的间隔,而不是一轮的间隔。
# 所以如果一共关注了 N 个人(多个群关注同一个人只算一个)
# 那对于每个人来说,两次检测之间的间隔就是 N * interval
# 一般来说不要设置在 5 以下,可能会被 B 站 API 反爬而拒绝响应
BAM_MONITOR_TASK_INTERVAL=5
# 单独设置每个任务的间隔,如果没有设置,或者设置成 <= 0 的值,就会用上面那个
BAM_ACTIVITY_MONITOR_TASK_INTERVAL=0
BAM_LIVE_MONITOR_TASK_INTERVAL=0
# 使用那一个直播间状态查询 API,默认为 2,如果发现被封禁了可以临时调到 1 试试
BAM_LIVE_API=2
# 动态内容在发送到 QQ 时的最大长度,超过长度会截断,设置为 0 或负数表示不截断
BAM_ACTIVITY_CONTENT_MAX_LENGTH=0
点击展开
命令:@bot /bam/group/add [superuser_qq]
SUPERUSER ONLY,GROUP ONLY。
在机器人加入群之后,首先使用此命令将群加入服务列表。
参数:
- superuser_qq:此群的 SUPERUSER,可以管理 Bot 在这个群的行为。可选参数,不填时则设置为使用此命令的人。
命令:@bot /bam/group/remove
SUPERUSER ONLY,GROUP ONLY。
将当前群从服务列表中删除。
命令:/bam/group/list
SUPERUSER ONLY,PRIVATE ONLY。
显示当前机器人服务的群列表。
命令:[@bot] /bam/follower/add [qq_group_id] <bilibili_uid>
SUPERUSER ONLY, PRIVATE OR GROUP
为群 qq_group_id
添加对 B 站用户 bilibili_uid
的监控。
参数:
qq_group_id
:操作群号。可选参数,如果在群聊中使用此命令则不能加此参数,默认为当前群。bilibili_uid
:B 站用户 UID,必填。
注:[@bot]
表示在私聊中使用时不用(无法) at 机器人,下略。
命令:[@bot] /bam/follower/remove [qq_group_id] <bilibili_uid>
SUPERUSER ONLY, PRIVATE OR GROUP
为群 qq_group_id
删除对 B 站用户 bilibili_uid
的监控。
参数:
qq_group_id
:操作群号。可选参数,如果在群聊中使用此命令则不能加此参数,默认为当前群。bilibili_uid
:B 站用户 UID,必填。
命令:[@bot] /bam/follower/list [qq_group_id]
SUPERUSER ONLY, PRIVATE OR GROUP
列出群 qq_group_id
的关注列表。
参数:
qq_group_id
:操作群号。可选参数,如果在群聊中使用此命令则不能加此参数,默认为当前群。
命令:[@bot] /bam/user/fetch <bilibili_uid>
SUPERUSER ONLY, PRIVATE OR GROUP
获取或更新 B 站用户 bilibili_uid
的信息。
参数:
bilibili_uid
:B 站用户 UID,必填。
命令:[@bot] /bam/act <bilibili_activity_id>
ANYONE
获取 B 站动态 bilibili_activity_id
的信息。
参数:
bilibili_activity_id
:B 站动态 ID。
MIT.