Skip to main content

Bilibili activity monitor plugin for nonebot

Project description

Bilibili Activity Monitor

B 站用户监视器,自动监控用户的动态和直播状态,在有新动态和直播状态改变时向关注群发送提示信息。

可多群共用,每个群可以有不同的关注列表。自带数据落地存储机制,重启后可保留各群关注状态。

0.2.0 版本已支持 NoneBot2 2.0 正式版 API,依赖 OneBot V11 Adapter。

功能示例

直播提醒

screenshot-live

动态提醒

screenshot-act-normal

screenshot-act-repost

特定用户 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:操作群号。可选参数,如果在群聊中使用此命令则不能加此参数,默认为当前群。

B 站相关

获取/更新用户数据

命令:[@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。

LICENSE

MIT.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

nonebot_plugin_bam-0.2.1.tar.gz (19.8 kB view hashes)

Uploaded Source

Built Distribution

nonebot_plugin_bam-0.2.1-py3-none-any.whl (26.6 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page