2023.10.1 更新

本文内容可能不再适用,请酌情对照参考 官方仓库 安装教程。

温馨提示:

截止目前(2023.10.1),新用户可以选择安装Debian版本docker pull whyour/qinglong:debian

优点是兼容更多的python依赖:例如 ddddocr 只能在Debian版本安装,而不能在默认版本中安装。

前言

继上一篇分享了基础的青龙面板搭建以及京东京豆挂机后,今日我又看到一个有趣的挂机项目BiliTools。

在对项目的原文档进行一定研究后,我又准备水一篇相应的配置教程。

结合我自己的理解,仅供参考!!!

小提示:

由于vercel服务的主域名vercel.app近日被墙,查阅原文档需自备科学上网条件。

准备

一台运行的青龙服务器(本地或者云服务器都可)。

搭建教程:点击查看

该项目可以运行在多种环境下,包括但不限于本地运行、青龙面板、Docker、云函数等等。

本篇只针对青龙面板进行部署。

教程

安装依赖

青龙面板->依赖管理->NodeJs->新建依赖 ,输入名称 @catlair/bilitools ,点击确定安装即可。

安装依赖

拉取脚本

青龙面板->定时任务->新建任务 ,输入名称(随意)、命令(ql raw https://gitee.com/Kudouran/BiliTools/raw/main/tools/bilitools_npm.js)、定时规则(0 0 0 * * *),点击确定后手动运行一次即可。

关于定时规则:

这里使用的是Java类型的cron表达式,**0 0 0 * * *** 表示每日的凌晨定时运行一次。

如果想要自行修改,可以使用在线工具

cron表达式

拉取脚本

更新npm包

自动更新如下所示:

更新npm包

1
pnpm remove -g @catlair/bilitools && pnpm add -g @catlair/bilitools

不输入 pnpm remove -g @catlair/bilitools 的话前一个版本的依赖包就会一直保留在磁盘中。

获取cookie

PC端浏览器隐私模式(推荐)

以 PC 端浏览器举例(推荐使用 Firefox/Chrome/Chromium Edge)

最终 Cookie 是这样的(为了演示方便换了行,实际只有一行):

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
_uuid=D2282D0F-257B-845A-BDF5-C770ED288F4001440infoc; buvid3=BF17608E-FB87-4F49-A922-56FD2E284D6F18534infoc;
fingerprint=5502cd4fe9637738de04bd9c3d1bdbc5;
buvid_fp=BF17608E-FB87-4F49-A922-56FD2E284D6F18534infoc;
SESSDATA=21607773%2C1631089673%2C71a42%2A31; bili_jct=dd92c55a6d67041ce2f3fb1650889ea8;
DedeUserID=521268093; DedeUserID__ckMd5=47d541f04b605da9;
sid=ivie73r8; fingerprint3=792b32adfecbe31a4aca53ab7be1ad76;
fingerprint_s=bb6736758e7344a295c2ed6070cc642e;
buvid_fp_plain=BF17608E-FB87-4F49-A922-56FD2E284D6F18534infoc;
CURRENT_FNVAL=80; blackside_state=1; rpdid=|(kmJYYJ)lkR0J'uYu)llkJYJ; _dfcaptcha=a46d7562a42065d43a88c053e283e876;
LIVE_BUVID=AUTO8016188357987702; bsource=search_baidu; PVID=2

为了避免 cookie 被刷新失效(例如你时常使用浏览器访问 b 站,那就不要直接复制它的 cookie,因为目前存在 cookie 自动刷新的情况,你保留的就会失效了)。

你应该使用隐私窗口重新登录b站,并获取新的 cookie。

隐私窗口打开方式(举例):

隐私窗口

获取成功后应该直接关闭隐私窗口,切记不要退出你的b站账号,那样 cookie 会立马失效。

Chrome

打开浏览器隐私窗口,任意方式进入 b 站(搜索,收藏夹,地址访问等),登录账号。 按 F12 (或者右键 –> 检查)打开开发者工具,切换到 网络 ( network ) 点击重新载入(或者按 F5,Ctrl + R 等)刷新页面,点击某一个请求(通常是第一个为 nav )。

chrome获取cookie

注意:

在使用 Chromium 类的浏览器时复制时一定要选中复制,而不是使用自带的复制值功能。

Firefox

打开浏览器隐私窗口,任意方式进入 b 站(搜索,收藏夹,地址访问等),登录账号。 按 F12 (或者右键 –> 检查)打开开发者工具,切换到网络 ( network ) 点击重新载入(或者按 F5,Ctrl + R 等)刷新页面。

firefox获取cookie

firefox获取cookie

手机端

不推荐,有缺陷,暂时不提。

配置文件(重点)

配置文件的编写是本文的重点,也是项目的重点。

正确配置该文件才能正常使用,需要各位多花时间认真阅读。

懒人版单人自用(请按需修改)

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
[
  // 注意 // 开头的是注释,没有实际意义
  {
    // 浏览器用户代理 打开下面网址在线获取:
    // http://service.spiritsoft.cn/ua.html
    userAgent: '',
    // 通用 api 延迟时间(s)
    apiDelay: [2, 6],
    // b 站 cookie
    // 获取教程在上面
    cookie: "",
    // 配置运行的功能
    function: {
      // 瓜子兑换硬币
      silver2Coin: true,
      // 投币
      addCoins: true,
      // 直播签到
      liveSignTask: true,
      // 分享和观看
      shareAndWatch: true,
      // 漫画任务
      mangaTask: true,
      // 应援团签到
      supGroupSign: false,
      // 使用 b 币券
      useCouponBp: true,
      // 获取 vip 权益
      getVipPrivilege: true,
      // 直播赠送礼物
      giveGift: false,
      // 赛事竞猜
      matchGame: false,
      // 取消关注
      batchUnfollow: true,
      // 直播天选时刻
      liveLottery: false,
      // 直播天选红包
      liveRedPack: true,
      // 粉丝牌等级
      liveIntimacy: false,
      // 大会员大积分
      bigPoint: false,
      // 风纪委员
      judgement: false,
      // 转盘抽奖
      activityLottery: false,
    },
    // 直播天选时刻
    redPack: {
      // 直播间来源方式 1 活动(活动链接可能更新不及时),2 扫描。其它值 所有方式依次尝试。
      source: 0,
      // 活动链接
      uri: 'https://api.live.bilibili.com/xlive/fuxi-interface/AugRedPacket2022Controller/redPocketPlaying',
      // 【仅使用活动时有效】 每轮抢红包的间隔时间(秒)
      intervalActive: 60,
      // 中场休息时间,当每参加了几个直播间的时候,休息一下 [参加个数,休息时间(分,小于1为直接结束)]
      restTime: [-1, -1],
      // 疑似触发风控时休眠时间,[连续出现次数,休眠时间(分,小于1为直接结束)]
      riskTime: [-1, -1], // 与 riskNum 不同,该参数会与 restTime 互相影响重置次数
      // 同时参与的直播间数量
      linkRoomNum: 1,
      // 参与直播时发送的弹幕数量(与内置数量比,min(10,剩余时间/5,配置))
      // [固定值],[最少,最多]
      dmNum: [10],
      // 是否在等待时处理关注用户(读取消息,移动)
      moveUpInWait: true,
      /** 天选时刻关注 UP 移动到分组 */
      moveTag: 'rp关注',
      /** 关注回复处理方式  */
      actFollowMsg: 'read',
      // 总参与次数,达到后不管结果如何,直接结束
      totalNum: -1,
      // 连续超过多少次没有中,直接结束,小于1为不限制
      noWinNum: 10, // 避免一直运行
      // 连续疑似触发风控多少次,直接结束,小于1为不限制
      riskNum: 5, // 避免一直运行
    },
    // 自动取消关注
    unFollow: {
      // 单个取消的时间间隔(秒)
      delay: 3,
      // 中场休息,[取消数量, 休息时间(分)] 取消数量和休息时间都应该为正数(非0),否则无效
      restTime: [20, -1],
      // 总数 -1 无限制
      totalNum: -1,
      // 取消关注的 tag
      tags: ['天选时刻', 'rp关注'],
    },
    // 消息推送
    message: {
      // 换行
      br: '\n',
      // 青龙面板专属配置 企业微信通知示例如下:
      // 官方说明文档: 
      // https://work.weixin.qq.com/api/doc/90000/90136/91770
      // 下方填写密钥,企业微信推送 webhook 后面的 key
      'QYWX_KEY': "此处填写你的key",
    },
    // 投币相关
    coin: {
      // 目标等级
      targetLevel: 6,
      // 保留的硬币数
      stayCoins: 0,
      // 投币的数量(上限5)
      targetCoins: 5,
      // 自定义 up
      customizeUp: [],
      // 当获取已投币数量失败,假设已投币数量
      todayCoins: 0,
      // 是否只投指定 up
      upperAccMatch: false,
    },
    // 使用b币券
    couponBalance: {
      /** 充电的 up 默认自己 */
      mid: 0,
      /** 预设时间,哪一天?,空数组为每一天 */
      presetTime: [10, 20],
      /** 使用的方式,可以是 充电/charge 电池/battery */
      use: '充电',
    },
    // 直播间礼物
    gift: {
      // 自定义投喂礼物 UP, 在所填中随机选取
      mids: [],
      // 省略部分配置
    },
    // 亲密度
    intimacy: {
      // 直播弹幕
      liveSendMessage: true,
      // 点赞直播间
      liveLike: true,
      // 每日亲密度上限 (系统 1500)
      limitFeed: 1500,
      // 耗时很长的直播心跳(默认关闭)
      liveHeart: false,
      // 白名单
      whiteList: [],
      // 黑名单
      blackList: [],
    },
    // 漫画
    manga: {
      // 签到
      sign: true,
      // 购买漫画
      buy: false,
      // 购买漫画 id(优先级高)
      mc: [],
      // 购买漫画名称(优先级中)
      name: [],
      // 购买追漫(优先级低)
      love: true,
      // 执行购买漫画间隔时间(单位天)
      buyInterval: 2,
      // 星期几执行购买漫画
      buyWeek: [],
    },
    // 风纪委员
    jury: {
      // 模式
      mode: 1,
      // 默认投票 0-3 好-无法判断,从中随机
      vote: [0, 0, 1],
      // 没有案件不退出,运行一次直到完成
      once: true,
      // 参考人数最少满足
      opinionMin: 3,
      // 没有案件后等待时间(分)
      waitTime: 20,
    },
    // 大积分
    bigPoint: {
      // 是否间隔 5s 再重试一次,或者直接填写等待时间(秒)
      isRetry: true,
      // 是否完成观看视频的任务
      isWatch: true,
      // 正片视频的 epid(集数id)
      epids: [],
      // 领取任务后的观看延时(秒)
      watchDelay: 40,
    },
  },
]

如果使用上面的配置,需要修改四个地方:

  1. user agent 必填,点击这个网站把红字部分填入引号中。

  2. cookie 必填,教程在上面。

  3. 是否投币请按需自行修改。(一般来说Lv6就不需要了)

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    
    coin: {
          // 目标等级
          targetLevel: 6,
          // 保留的硬币数
          stayCoins: 0,
          // 投币的数量(上限5)
          targetCoins: 5,
          // 自定义 up
          customizeUp: [],
          // 当获取已投币数量失败,假设已投币数量
          todayCoins: 0,
          // 是否只投指定 up
          upperAccMatch: false,
        }
    
  4. 通知配置 建议填写

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    
    message: {
          // 换行
          br: '\n',
          // 这里建议直接使用你青龙面板的通知方式 以企业微信举例
          // 下方填写密钥 企业微信推送 webhook 后面的 key
          'QYWX_KEY': "此处填写你的key",
          // 还可以使用以下方式
          // 'GOBOT_URL',
          // 'GOBOT_TOKEN',
          // 'GOBOT_QQ',
          // 'SCKEY',
          // 'QQ_SKEY'
          //  。。。。。。
        }
    

添加环境变量

  • 配置使用的 json5,兼容 json 且更加灵活,可以支持 注释

  • 务必使用 在线工具 校验 json5 格式(校验不通过无法继续使用)。

  • 将检验合格的配置文本 粘贴在 Gzip 在线压缩工具 的输入框中,选择Gzip压缩,将加密结果复制即可。

    Gzip压缩配置文本

  • 青龙面板推荐使用 环境变量 的方式配置。

    青龙面板->环境变量->新建变量 ,名称(BILITOOLS_CONFIG)、值(填写你在上一步Gzip压缩得到的文本),点击确定即可。

    添加变量

手动运行

回到青龙面板任务首页,应该会出现三个关于哔哩哔哩的任务:

bilibili任务

名称是可以自行修改的,主要看命令:

  • 第一个:更新依赖;
  • 第三个:拉库任务;
  • 第二个:主程序任务,在手动运行拉库任务后刷新可见。

在一切准备就绪后,就可以手动运行一次主任务了。

感谢

BiliTools