【开源】BiliBili推送姬 介绍 & 使用教程

本文最后更新于: 2022年9月8日

Yukino-Mihana是一款低延迟/多功能的Bilibili推送程序。

功能

  1. 截图器: 动态 / 视频 / 文章 / 音频 内容截图,不打开链接就能看到内容
  2. 短链接: 防止群内刷屏
  3. 更详细: 推送 头像更新 / 直播间标题更新 / 粉丝量增加
  4. 功能多: 查成分 / 找大图 / 表情包 / 热词 / 群管 / 在线机型 等有趣的小功能
  5. 投稿箱: 内置投稿箱,群内投稿,网页查看,关键词屏蔽,更方便

更多更新内容请前往GitHub查看

功能介绍

  1. B站推送功能,请查看使用手册
  2. 大图获取装扮大图
  3. 表情包获取装扮内表情包
  4. 大表情获取Up主设置的大表情
  5. 热词查看B站官网热词解释
  6. 查成分查询DD的成分
  7. 棉花糖对Up主投稿箱进行投稿
  8. 群内增加/减少成员,戳一戳,文件上传 等监控

相关命令

  1. 查成分: 发送查成分 B站昵称来看看你关注了多少vup
  2. 装扮表情相关:表情包 Up主昵称命令获取装扮表情包,大图 Up主昵称命令获取装扮大图,大表情 Up主昵称获取Up主大表情,单独发送表情包 大图 大表情可查看目录
  3. 热词:热词 你想查询的词语可以查看热词解释
  4. 投稿箱/提问箱:棉花糖向投稿箱投稿(需要管理员开启功能)
  5. 发送支付宝到账xx元返回语音
  6. 发送疫情查疫情

安装教程

本机器人分为无个部分:炸毛框架,QQ客户端,工具箱,弹幕姬,数据库。原先的版本有docker部署,但是我懒,所以这个版本还没有做docker

为什么要分那么多模块呢?因为主程序使用PHP进行开发,PHP我没有找到合适的截图器,相比之下,python制图和网页截图就容易一些,所以分了很多模块。

总结下来,就是我比较菜。

安装数据库

不多解释,docker/本地/远程都可以。

安装炸毛框架

炸毛框架文档地址: 炸毛框架

使用一键安装脚本:

bash <(curl -fsSL https://zhamao.xin/go.sh)

进入zhamao-app文件夹

前往release中下载Yukino-Mihana_1.0.0.phar,放入zm_data 目录下的modules文件夹(如果不存在需要手动创建)

执行解包命令

./zhamao module:unpack Yukino-Mihana

解包完成,退出zm_data目录,进入config目录,修改global.php中的数据库字段(第70行左右)。

退出config目录,运行炸毛框架

./zhamao server

运行客户端

建议参考炸毛框架的文档,我不想写了:文档地址

其实到这里,机器人主体已经可以正常运行了,只是没有截图器和直播统计功能而已。

下面来添加这两个功能。

安装工具箱 & 截图器

前往release中下载tools.zip,并解压。

进入目录,安装所需的库

pip -r requirements.txt

进入danmu目录,开启弹幕姬

 uvicorn main:app --host 0.0.0.0 --port 20002

退出danmu目录,进入py_tools目录,运行工具箱

 uvicorn main:app --host 0.0.0.0 --port 20003

为了保持程序运行,记得使用tmuxscreen,不多赘述。

使用教程

获取权限

所有需要管理员的指令都由$开头,类似于linux的非root用户。

要获取管理员权限,需要向机器人发送getSuper命令,机器人回复请输入控制台显示的独立验证码,五分钟内有效。此时,炸毛框架的控制台上会输出以下内容:

^ "xxxx的独立验证码为: yyyy"

其中,xxxx为申请账号的QQ号,yyyy为独立验证码。
请将独立验证码发送至机器人,从而获得高级权限。

开启推送

推送命令为$push,虽然直接发送$push也可以开启推送,我个人还是更推荐使用完整版命令:$push -u (up主) [-t (推送类型] [-p (推送位置)]

1. -u参数

其中,-u参数为不可省略参数(当然了,省略了也会提示你继续输入的), (Up主)可以是昵称或ID,如hanserMID:11073,也可以是由多个Up主由分号隔开,如hanser;泠鸢yousa,当然了,昵称和ID混用也是可以的。

后面[]内的两个参数都是可以省略的参数,都有默认值。

2. -t参数,来指定推送内容。(推送类型)有以下几种

0 1 2 3 4 5 6 7 8 9 10 11
转发 图片 文字 视频 小视频 戏剧 专栏 音频 番剧 其他 直播 直播统计
你可以以文字形式决定要订阅什么,以分号隔开,如视频;直播,则机器人只会推送Up主的投稿视频和直播/下播提醒,默认为全部订阅(如不含有t参数则以默认形式订阅)。

当然了,由于这样会导致整个命令太长,比较冗杂,机器人也可以以二进制状态压缩的形式输入参数-t,计算方法如下。

共有11个推送类型,计算方法为每一个类型的对应编号的二进制左移后的按位或的值。即(1 << t[0]) | (1 << t[1]) ... | (1 << t[n])

这样说可能比较抽奖,简单的来说,就是2的(编号)次方的总和,如我想订阅转发图片,参数的值就为2 ^ 0 + 2 ^ 1 = 3,如订阅全部,则为2 ^ 0 + 2 ^ 1 + ... + 2 ^ 11 = 4095

-p参数,指定推送位置

此参数也为可选参数,默认值为当前会话。

此参数可以指定推送位置,在不方便时,可以在私聊会话开启一个群聊会话的推送。

参数为指定的位置,默认为私聊会话,如3053473706,含义为推送至私聊会话,QQ号3053473706,如需订阅至群聊会话,需要在前面指定group:,如group:740261417,含义为推送至群聊会话740261417

当然了,你也可以同时订阅多个,以分号隔开,如3053473706;2945213701。也可以私聊群聊会话同时订阅,如3053473706;group:1048518082,当同时订阅多个同种类型的会话时,不带前缀的默认与前一个相同,如3053473706;group:1048518082;729024464,表示开启私聊会话3053473706和群聊会话1048518082729024464

同时,订阅群聊会话后,再订阅私聊也是可以的,需要在前面添加private:前缀,如3053473706;group:1048518082;729024464;private:2945213701

关闭推送

命令为$cancelPush,参数有-u-p,其中-p参数为可选参数,意义同上。

更新推送

命令为$updatePush,参数有-u-t-p,其中-p参数为可选参数,意义同上、

点赞

发表回复