适用于nonebot2 v11/red 的b站用户信息查询插件【粉丝、舰团信息;直播收益数据;直播观看信息;关键词搜昵称、UID;主播营收榜单;查成分;查牌子等】
(ps:微调源码可以兼容其他版本)
调用的相关API源自b站官方接口、danmakus.com和vtbs.fun
本项目部分功能已经失效,多是第三方接口挂了,也懒得修了,不能用的功能就无视吧。
- 🔧 开发环境
- 💿 安装
- 🔧 配置
- 🎉 功能
- 👉 命令(命令前缀自行替换喵~)
- /查帮助
- /查
- /查直播
- /查舰团
- /查昵称
- /查收益
- /查观看
- /查观看2
- /查弹幕
- /查弹幕2
- /查牌子
- /查人气
- /查装扮
- /营收
- /涨粉
- /DD风云榜 或 /dd风云榜 或 /风云榜 (寄了)
- /v详情 或 /V详情 或 /v详细 或 /V详细
- /v直播势 或 /V直播势
- /v急上升 或 /V急上升
- /v急下降 或 /V急下降
- /v舰团 或 /V舰团
- /vdd 或 /VDD 或 /VDD风云榜 或 /vdd风云榜
- /V宏观 或 /v宏观
- /dmk查用户 或 /DMK查用户
- /dmk查直播 或 /DMK查直播
- /dmk分析 或 /DMK分析
- /blg查弹幕 或 /BLG查弹幕
- /blg查入场 或 /BLG查入场
- /blg查礼物 或 /BLG查礼物
- /blg直播记录 或 /BLG直播记录
- /blg直播间sc 或 /BLG直播间SC
- /icu查直播 或 /ICU查直播 或 /matsuri查直播
- /lap查用户 或 /LAP查用户
- /lap查牌子 或 /LAP查牌子
- /lap查充电 或 /LAP查充电
- /lapdd 或 /LAPDD 或 /lapdd排行榜
- /zero查用户 或 /ZERO查用户
- /zero被关注 或 /ZERO被关注
- 斗虫 或 主播pk 或 主播PK
- eh查直播 或 诶嘿查直播 或 eihei查直播
- /vtb网站
- ⚙ 拓展
- 📝 更新日志
- 致谢
- 项目打包上传至pypi
- 目录自动生成
Nonebot2:2.0.0b5
python:3.8.13
操作系统:Windows10(CentOS7下正常运行,Linux兼容性问题不大)
编辑器:pycharm
环境依赖aiohttp和nonebot_plugin_htmlrender库
部分功能需要获取自己的cookie,配置env后才能正常使用!
在你bot工程的文件夹下,运行cmd(运行路径要对啊),执行nb命令安装插件,插件配置会自动添加至配置文件
nb plugin install nonebot_plugin_searchBiliInfo
先安装下 aiohttp 和 htmlrender
pip install aiohttp
pip install nonebot_plugin_htmlrender
将项目clone到你的机器人插件下的对应插件目录内(一般为机器人文件夹下的src/plugins),然后把nonebot_plugin_searchBiliInfo文件夹里的内容拷贝至上一级目录即可。
clone命令参考(得先装git,懂的都懂):
git clone https://github.com/Ikaros-521/nonebot_plugin_searchBiliInfo.git
也可以直接下载压缩包到插件目录解压,然后同样提取nonebot_plugin_searchBiliInfo至上一级目录。
目录结构: 你的bot/src/plugins/nonebot_plugin_searchBiliInfo/__init__.py
pip install nonebot_plugin_searchBiliInfo
打开 nonebot2 项目的 bot.py 文件, 在其中写入
nonebot.load_plugin('nonebot_plugin_searchBiliInfo')
当然,如果是默认nb-cli创建的nonebot2的话,在bot路径pyproject.toml的[tool.nonebot]的plugins中添加nonebot_plugin_searchBiliInfo即可
pyproject.toml配置例如:
[tool.nonebot]
plugin_dirs = ["src/plugins"]
plugins = ["nonebot_plugin_searchBiliInfo"]
nb plugin update nonebot_plugin_searchBiliInfo
浏览器进入b站官网并登录: https://www.bilibili.com/
edge(或其他浏览器)按f12(或鼠标右键“检查” “开发者工具”等), 然后点击右上角那个">>"符号, 进入"网络"
再按ctrl+r(或f5)刷新元素
随便点击一个请求, 在“请求标头”里面找到cookie(没有就换一个)
cookie冒号后面的就是cookie,复制一下, 可以把ta添加到env里
如果不想放太多cookie信息,只需要buvid3字段即可。
# 在你的env文件中添加如下配置(我的是.env.prod) 仅需要buvid3字段即可
searchBiliInfo_cookie="buvid3=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXXXXXXXinfoc;"
| 配置项 | 必填 | 默认值 | 说明 |
|---|---|---|---|
searchBiliInfo_cookie |
否 | "" |
b站cookie,仅需要buvid3字段即可 |
通过uid 或 设定好的短语 或 b站接口搜索查询指定b站用户的粉丝、舰团信息;直播收益数据;直播观看信息;关键词搜昵称、UID等信息;主播营收榜单。
命令结构:查帮助
例如:查帮助
bot返回内容:
插件功能:(tip:命令如果有英文的,大小写都可以支持)
/查 昵称关键词或uid(uid需要以:或:或uid:或UID:或uid:打头)
/查直播 昵称关键词或uid 场次数(默认不写为全部)
/查舰团 昵称关键词或uid
/查昵称 昵称关键词或uid
/查收益 昵称关键词或uid 收益类型(默认1: 礼物,2: 上舰,3: SC) 倒叙第n场(从0开始)
/查观看 昵称关键词或uid
/查观看2 昵称关键词或uid
/查弹幕 查询的目标人昵称关键词或uid 查询的主播昵称关键词或uid 页数 条数
/查弹幕2 查询的目标人昵称关键词或uid 页数 条数
/查牌子 主播牌子关键词
/查人气 昵称关键词或uid
/查装扮 昵称关键词或uid
/营收 日/周/月榜 人数(不填默认100)
/涨粉 日/周/月榜 人数(不填默认100)
/DD风云榜 人数(不填默认10)
/v详情 昵称关键词或uid
/v直播势
/v急上升
/v急下降
/v舰团
/vdd
/v宏观
/dmk查用户 昵称关键词或uid
/dmk查直播 昵称关键词或uid
/dmk分析 昵称关键词或uid
/blg查弹幕 昵称关键词或uid
/blg查入场 昵称关键词或uid
/blg查礼物 昵称关键词或uid
/blg直播记录 昵称关键词或uid
/blg直播间sc 昵称关键词或uid
/icu查直播 昵称关键词或uid
/icu查直播 昵称关键词或uid
/lap查用户 昵称关键词或uid
/lap查牌子 昵称关键词或uid
/lap查充电 昵称关键词或uid
/lapdd排行榜 搜索类型(默认0: 月供,1: 总督,2: 提督,3:舰长)
/斗虫 主播1的昵称关键词或uid 主播2的昵称关键词或uid 主播n的昵称关键词或uid(主播数得至少2个) 日期起始偏移值(就是以今天开始前推n天,例如:2,就是前天) 日期结束偏移值
/vtb网站 或 /vtb资源
/eh查直播 或 /诶嘿查直播
调用的相关API源自b站官方接口、danmakus.com、ddstats.ericlamm.xyz、biligank.com、laplace.live、vtbs.fun、stats.nailv.live
命令结构:/查 (uid:或UID:或:或:)+用户uid或昵称关键词
例如:/查 uid:3709626 或 /查 :3709626 或 /查 bishi
bot返回内容:

命令结构:/查直播 (uid:或UID:或:或:)+用户uid或昵称关键词 场次数(默认不写为全部)
例如:/查直播 UID:3709626 1 或 /查直播 bishi
bot返回内容(图片):

命令结构:/查舰团 (uid:或UID:或:或:)+用户uid或昵称关键词
例如:/查舰团 :3709626 或 /查舰团 bishi
bot返回内容(图片):

命令结构:/查昵称 昵称关键词
例如:/查昵称 伊卡洛斯
bot返回内容(图片):

命令结构:/查收益 (uid:或UID:或:或:)+用户uid或昵称关键词 收益类型(默认1: 礼物,2: 上舰,3: SC) 倒叙第n场(从0开始)
例如:/查收益 :3709626 礼物 1 或 /查收益 bishi 2 0
bot返回内容(图片):

命令结构:/查观看 (uid:或UID:或:或:)+用户uid或昵称关键词
例如:/查观看 UID:666666 或 /查观看 bishi
bot返回内容(图片):

命令结构:/查观看2 (uid:或UID:或:或:)+用户uid或昵称关键词
例如:/查观看2 UID:666666 或 /查观看2 bishi
bot返回内容(图片):

命令结构:/查弹幕 (uid:或UID:或:或:)+用户uid或昵称关键词 查询的主播昵称关键词或(uid:或UID:或:或:)+ 页数(可不填,默认0) 条数(可不填,默认3)
例如:/查弹幕 uid:3709626 Love丶伊卡洛斯 1 1 或 /查弹幕 uid:3709626 Love丶伊卡洛斯 1
bot返回内容(图片):

命令结构:/查弹幕2 (uid:或UID:或:或:)+用户uid或昵称关键词 页数(可不填,默认0) 条数(可不填,默认3)
例如:/查弹幕2 uid:3709626 2 2 或 /查弹幕2 uid:3709626 2
bot返回内容(图片):

命令结构:/查牌子 主播牌子关键词
例如:/查牌子 天 或 /查牌子 天降
bot返回内容(图片):

命令结构:/查人气 (uid:或UID:或:或:)+用户uid或昵称关键词
例如:/查人气 uid:3709626 或 /查人气 Love丶伊卡洛斯
bot返回内容(图片):

命令结构:/查装扮 (uid:或UID:或:或:)+用户uid或昵称关键词
例如:/查装扮 uid:2 或 /查装扮 :2
bot返回内容(图片):

命令结构:/营收 日/周/月榜 人数(不填默认100)
例如:/营收 日榜 3 或 /营收 月榜
bot返回内容(图片):

命令结构:/涨粉 日/周/月榜 人数(不填默认100)
例如:/涨粉 日榜 3 或 /涨粉 月榜
bot返回内容(图片):

命令结构:/DD风云榜 top人数(不填默认10)
例如:/DD风云榜 或 /风云榜 20
bot返回内容(图片):

命令结构:/v详情 (uid:或UID:或:或:)+用户uid或昵称关键词
例如:/v详情 uid:3709626 或 /V详情 :2 或 /v详细 Love丶伊卡洛斯 或 /V详细 :2
bot返回内容(图片):

命令结构:/v直播势
例如:/v直播势 或 /V直播势
bot返回内容(图片):

命令结构:/v急上升
例如:/v急上升 或 /V急上升
bot返回内容(图片):

命令结构:/v急下降
例如:/v急下降 或 /V急下降
bot返回内容(图片):

命令结构:/v舰团
例如:/v舰团 或 /V舰团
bot返回内容(图片):

命令结构:/vdd
例如:/vdd 或 /VDD 或 /vdd风云榜
bot返回内容(图片):

命令结构:/vdd
例如:/V宏观 或 /v宏观
bot返回内容(图片):

命令结构:/dmk查用户 (uid:或UID:或:或:)+用户uid或昵称关键词
例如:/dmk查用户 uid:3709626 或 /DMK查用户 Love丶伊卡洛斯
bot返回内容(图片):

命令结构:/dmk查直播 (uid:或UID:或:或:)+用户uid或昵称关键词
例如:/dmk查直播 uid:3709626 或 /DMK查直播 Love丶伊卡洛斯
bot返回内容(图片):

命令结构:/dmk分析 (uid:或UID:或:或:)+用户uid或昵称关键词
例如:/dmk分析 uid:3709626 或 /DMK分析 Love丶伊卡洛斯
bot返回内容(图片):

命令结构:/blg查弹幕 (uid:或UID:或:或:)+用户uid或昵称关键词
例如:/blg查弹幕 uid:3709626 或 /BLG查弹幕 Love丶伊卡洛斯
bot返回内容(图片):

命令结构:/blg查入场 (uid:或UID:或:或:)+用户uid或昵称关键词
例如:/blg查入场 uid:3709626 或 /BLG查入场 Love丶伊卡洛斯
bot返回内容(图片):

命令结构:/blg查礼物 (uid:或UID:或:或:)+用户uid或昵称关键词
例如:/blg查礼物 uid:3709626 或 /BLG查礼物 Love丶伊卡洛斯
bot返回内容(图片):

命令结构:/blg直播记录 (uid:或UID:或:或:)+用户uid或昵称关键词
例如:/blg直播记录 uid:3709626 或 /BLG直播记录 Love丶伊卡洛斯
bot返回内容(图片):

命令结构:/blg直播间sc (uid:或UID:或:或:)+用户uid或昵称关键词
例如:/blg直播间sc uid:3709626 或 /BLG直播间SC Love丶伊卡洛斯
bot返回内容(图片):

命令结构:/icu查直播 (uid:或UID:或:或:)+用户uid或昵称关键词
例如:/icu查直播 uid:3709626 或 /ICU查直播 Love丶伊卡洛斯
bot返回内容(图片):

命令结构:/lap查用户 (uid:或UID:或:或:)+用户uid或昵称关键词
例如:/lap查用户 uid:387636363 或 /LAP查用户 雫るる
bot返回内容(图片):

命令结构:/lap查牌子 (uid:或UID:或:或:)+用户uid或昵称关键词
例如:/lap查牌子 uid:387636363 或 /LAP查牌子 雫るる
bot返回内容(图片):

命令结构:/lap查充电 (uid:或UID:或:或:)+用户uid或昵称关键词
例如:/lap查充电 uid:387636363 或 /LAP查充电 雫るる
bot返回内容(图片):

命令结构:/lapdd 搜索类型(默认0: 月供,1: 总督,2: 提督,3:舰长)
例如:/lapdd 或 /lapdd 1 或 /LAPDD 舰长
bot返回内容(图片):

命令结构:/zero查用户 (uid:或UID:或:或:)+用户uid或昵称关键词
例如:/zero查用户 uid:387636363 或 /ZERO查用户 雫るる
bot返回内容(图片):

命令结构:/zero被关注 (uid:或UID:或:或:)+用户uid或昵称关键词
例如:/zero被关注 uid:387636363 或 /ZERO被关注 雫るる
bot返回内容(图片):

命令结构:斗虫|主播pk|主播PK 用户1的uid或昵称关键词 用户2的uid或昵称关键词 用户n的uid或昵称关键词 #当天向过去偏移天(起始) 当天向过去偏移天数(结尾)
注意:#和后面的日期偏移可以默认不填,不填写的话默认是一个月前到今天的数据。另外,传入的用户必须大于等于2人以上。(日期偏移其实就是数据区间啦)
例如:斗虫 雫酱 neol 或 斗虫 雫酱 neol #5 0 或 主播pk 雫酱 雫 #15 0
bot返回内容(图片):

命令结构:/eh查直播 (uid:或UID:或:或:)+用户uid或昵称关键词
例如:/诶嘿查直播 uid:3493132603754688 或 /诶嘿查直播 罗亚Roya
bot返回内容(图片):

命令结构:/vtb网站 或 /vtb资源
例如:/vtb网站 或 /vtb资源
bot返回内容:
VTB数据看板:https://ikaros-521.gitee.io/vtb_data_board/
matsuri:https://matsuri.icu/
danmakus:https://danmakus.com/
vtbs.fun:http://www.vtbs.fun/
biligank:https://biligank.com/
火龙榜:https://huolonglive.com/#/
vtbs.moe:https://vtbs.moe/
vup.loveava.top:https://vup.loveava.top/ranking
ddstats:https://ddstats.ericlamm.xyz/
zeroroku:https://zeroroku.com/bilibili
laplace:https://laplace.live/
启用关键词搜索,需要在.env.xx中配置自己的cookie。
命令修改:
昵称自定义,修改data.py,在文件头部追加你需要定义的用户的json串,注意json格式!!!
命令自定义,修改__init__.py,catch_str = on_command这部分的代码即可。
bot返回内容格式修改对应的msg、out_str变量的内容
展开/收起
- 插件初次发布
- 更新基于vtbs.moe的主播数据,添加关键词搜索功能
新增以下功能(其实是LX_Bot的相关命令融进来了)
- /查 昵称关键词
- /查直播 昵称关键词 场次数
- /查舰团 昵称关键词
- /查昵称 昵称关键词
- /查收益 收益类型(默认1: 礼物,2: 上舰,3: SC) 用户uid或昵称关键词 倒叙第n场(从0开始)
- /查成分 观看 昵称关键词
- /查成分 弹幕 查询的目标人 查询的主播 页数 条数
优化针对uid解析方式
修改cookie配置从env获取,方便用户配置
修复 /查成分 弹幕 数据解析bug; 优化整体代码实现;
新增功能
- /营收 日/周/月榜 人数(不填默认100)
弃用requests库,改为aiohttp
修复查命令aiohttp适配性bug
修改 查成分 弹幕 和 查成分 观看 命令为 查弹幕 和 查观看。
优化命令解析实现。
修复查弹幕数据解析bug。
新增 /查弹幕2 命令。
修复查弹幕数据解析bug。
图片UI优化。
优化 /查弹幕2 命令,增加主播名。
修复 /查观看 因为数据源有同一用户名不同uid的情况导致的越界bug。
优化异常报错的处理。
优化UI设计和部分功能。
新增/查收益 xx 舰长和uid:的匹配。(但是舰长仍然是所有上舰数据)
优化API挂彩时候的异常捕获处理。
插件补充元信息。
新增vtb网站 或 vtb资源 命令(命令前缀自行添加)
补充2个VTB资源站点
适配vtbs.fun的营收接口变动
修改on_keyword为on_command,从而适配自定义的命令前缀
修改danmakus.com到新域名danmakus.com,接口也同步替换了。
新增markdown的特殊字符过滤和文本超长换行。
ps:vtbs.fun挂了,营收功能暂时无法使用。
vtbs.fun活了,加了ssl,已兼容。
新增命令 涨粉,接口源自vtbs.fun(和营收 基本一致)
新增命令 DD风云榜,接口源自ddstats-api.ericlamm.xyz
补充遗漏的插件元信息
新增功能 查牌子,数据源自本地爬取(vtbs.moe中主播牌子信息,共4273条数据)
补充插牌子遗漏的1条数据
补充遗漏的 vtb网站 功能元信息
新增功能v详情 dmk查用户 dmk查直播,直接采用浏览器页面截图形式返回结果。(流量消耗会多一些,酌情使用)
延长v详情 dmk查用户 dmk查直播的请求超时至5min(服务器4M跑也超时,功能很吃紧)
追加最新的vtbs.moe的主播信息,并同步更新了牌子信息。
缩短v详情 dmk查用户 dmk查直播的请求超时至2min(前面是对面服务器炸了)
优化请求错误或无数据时的消息返回和日志打印。
新增功能blg查弹幕 blg查入场 blg查礼物 blg直播记录 blg直播间sc,直接采用浏览器页面截图形式返回结果。(流量消耗会多一些,酌情使用)
新增4000+的用户数据和牌子数据
新增b站用户数据至10w
新增粉丝牌数据至4w+
新增网站laplace.live
新增icu查直播命令,同样是playwright的直接加载
新用户数据爬自b站直播间各大分区列表,比起直接uid爬全站更具有针对性,实际效果也很好。
新增b站用户数据至23w+
新增粉丝牌数据至6.7w+
由于出现低配置设备内存不足导致的无法启动问题,已将本地数据data.py清空至一个demo配置。如有本地配置需要的可以去旧版获取。
新增粉丝牌数据至8.6w+,爬了一周的直播页,正式收工。
新增命令查人气,用于查询b站主播最近一场直播的人气峰值
新增lap查用户命令,同样是playwright,并做了js内嵌
优化lap查用户的内容加载样式,显示内容更加全面(也更卡,乐)
增加耗时的网页截图查询反馈,优化异常处理,不让你的人生浪费在等待中
新增zero查用户命令,同理
修复文档描述错误(不影响功能,暂不发版)
文档新增目录
新增lap查牌子命令,调用laplace.live的接口,全站太卡了,绷
修复lap查牌子接口返回uid固定问题导致的显示错误
优化文档
升级查观看功能,统计观看次数。
新增查观看2命令(查观看plus版),统计观看次数,以饼图形式返回。
优化网页截图相关功能的图片存储名,减少短时间多请求导致的数据覆盖问题
修复查观看2的提示语延迟问题
修订文档错误
新增lap查充电命令,查询up的充电排行榜。
新增zero被关注命令,查询用户的被哪些知名up主关注。
升级查观看2的主题为夜间模式,增加高级感。
对类似的GET请求做了优化,降低代码冗余。
删除lap查用户的小作文
1、新增以下命令:
- /v直播势 (大写也可以)
- /v急上升 (大写也可以)
- /v急下降 (大写也可以)
- /v舰团 (大写也可以)
- /vdd (大写也可以)
- /v宏观 (大写也可以)
2、优化异常处理
优化v详情的请求延时,帮助数据加载。
新增查装扮命令。
优化文档排序。
1.v详情增加别名v详细。
2.修复查收益的传参bug。
3.优化代码实现,增加提示互动。
1.修复查弹幕和查弹幕2的bug(让GPT帮忙写,很好,bug写得不错)
1.命令文本消息内容改艾特为回复。
2.新增命令lapdd或lapdd排行榜,截图laplace.live的dd页面。
3.优化说明文档。
修复lapdd命令不传参的bug。
新增正则匹配的斗虫玩法,具体看命令说明。
修复htmlrender导入问题。
新增命令eh查直播或诶嘿查直播。
修改eh查直播的请求地址为http,服务器上跑证书不行,绷。
修改eh查直播为playwright,难绷。
修改eh查直播为直接请求,不过跳过了ssl。
bug修复
查命令,追加返回用户主页和直播间链接。
新增dmk分析功能,由danmakus分析用户观看弹幕等数据。
修复lap查用户的使用(Laplace加了cf校验,危)
修复danmakus的接口失效问题。
兼容red适配器
新增命令查帮助,用于查看使用说明
- nonebot-plugin-htmlrender - 图片合成的好手
- danmakus.com - b站主播、用户弹幕直播信息等来源(开放API接口很赞!)
- vtbs.moe - VTB本地数据信息来源(还有数据提供,TQL)
- laplace.live - 也是b站主播用户查询站点,部分数据也是源自danmakus,UI不错
官网:https://pypi.org,注册账号,在系统用户根目录下创建`.pypirc`,配置
[distutils]
index-servers=pypi
[pypi] repository = https://upload.pypi.org/legacy/
username = 用户名
password = 密码
# 参考 https://www.freesion.com/article/58051228882/
# 1、安装poetry
pip install poetry
# 2、初始化配置文件(根据提示填写)
poetry init
# 3、微调配置文件pyproject.toml
# 4、运行 poetry install, 可生成 “poetry.lock” 文件(可跳过)
poetry install
# 5、编译,生成dist
poetry build
# 6、发布
poetry publish
# 参考 https://www.cnblogs.com/danhuai/p/14915042.html
#创建setup.py文件 填写相关信息
# 1、可以先升级打包工具
pip install --upgrade setuptools wheel twine
# 2、打包
python setup.py sdist bdist_wheel
# 3、可以先检查一下包
twine check dist/*
# 4、上传包到pypi(需输入用户名、密码)
twine upload dist/*
doctoc,在本地git存储库中生成降价文件的目录。链接通过命令行标志兼容github或其他网站生成的锚。
进入包含本地git项目的目录,键入: npm install -g doctoc
在README.md中,找个生成目录位置,写入如下代码,确认生成位置:
<!-- START doctoc -->
<!-- END doctoc -->
cmd输入命令即可:doctoc /path/to/file
例如:doctoc README.md
