# 使用 Axios 和GitHub Actions实现哔哩哔哩每日自动签到、投币、领取奖励
SCHEDULE-BILIBILI 是一个B站自动执行任务的工具,使用 JS + AXIOS 编写,通过它可以实现B站帐号的每日自动观看、分享、投币视频,获取经验,每月自动领取会员权益、自动为自己充电等功能,帮助我们轻松升级会员到Lv6并赚取电池.
详细功能目录如下:
- 每天自动登录,获取经验
- 每天自动观看、分享、投币视频 (支持指定想要支持的up主,优先选择配置的up主的视频,不配置则随机选取视频)
- 每天漫画自动签到
- 每天自动直播签到,领取奖励 (直播可以不看,但是奖励不领白不领~)
- 每天自动使用直播中心银瓜子兑换B币,避免浪费
- 每月自动使用快过期的B币券为自己充电 (你懂的~)
- 每个月自动领取5张B币券和大会员权益 (既然买了会员就要领取该有的奖励啊~)
----- 执行 用户登录检查 -----
----- login success -----
----- [username] - xiaoxiunique
----- [金币余额] - 94
----- 执行 用户任务完成状态检查 -----
----- 请求本日任务状态成功 -----
----- 执行 用户任务完成状态检查 -----
----- 视频播放成功 -----
----- 视频分享成功 -----
----- 执行 漫画签到任务 -----
----- 完成漫画签到 ----
----- 执行 银瓜子换硬币 -----
----- [银瓜子兑换硬币失败 原因是: 银瓜子余额不足] -----
----- [当前银瓜子余额:0] -----
----- 执行 投币 -----
----- [投币任务开始] -----
----- [投币成功] -----
----- 程序当前已投: 1 -----
----- 执行 直播签到 -----
----- [直播签到成功,本次获得] -----undefined
----- 执行 为自己充电任务 -----
----- [用这个工程的应该都是白嫖用户,不会是年度大会员吧,就不实现这个任务了吧] -----
----- 执行 等级计算 -----
----- [今日获取得到总经验值为: 60] -----
----- [按照当前进度升级到 Lv2] 还需要5 天 -----
Github 仓库地址 (opens new window)
# 1. 源码
/index.js
项目入口文件,主要进行必要参数接受,和组装各个子任务,各个子任务之间互相解耦,高内聚低耦合。
JS 文件 | Bilibili 任务 |
---|---|
/task/userCheck.js | 用户信息检查,判断提供参数是否正确。 |
/task/dayTask.js | 获取每日任务完成状态。 |
/task/videoWatch.js | 完成视频分享任务。 |
/task/mangaSign.js | 完成漫画签到任务。 |
/task/silverToCoin.js | 完成银瓜子换硬币。 |
/task/coinAdd.js | 完成投币任务。 |
/task/liveCheckIn.js | 完成 直播签到任务。 |
/task/chargeMe.js | 完成 给自己充电任务。 |
/task/calcLevel.js | 计算到下一个等级所需时间。 |
/api/base.js
定义了 axios 基础的 get/post 方法,处理公共 B 站需要的请求头。
# 2. 如何使用?
要使用 SCHEDULE-BILIBILI,我们只需要做两步,首先是获取自己的Cookie作为配置信息,然后将配置输入SCHEDULE-BILIBILI 程序并运行即可。
# 2.1.第一步:获取自己的Cookie# (opens new window)
- 浏览器打开并登录bilibili网站 (opens new window)
- 按 F12 打开“开发者工具”,依次点击 应用程序/Application -> 存储-> Cookies
- 找到
DEDEUSERID
、SESSDATA
、bili_jct
三项,复制保存它们到记事本,待会儿会用到。
# 2.2.第二步:运行 schedule-bilibili
运行 schedule-bilibili 有两种方式,一种是通过Github的Actions实现线上的每天自动运行,一种是本地运行或调试。
对于熟悉Github Actions的朋友,推荐使用方式一 Github Actions,可以实现线上的每天自动运行,不需自己动手,一劳永逸。
对于没有Github账号的、或者想先尝个鲜快速运行、或者是开发者想要本地调试的朋友,可以跳转到方式二,操作简单快速。
# Github Actions每天定时线上自动运行
Github Actions 是微软巨硬收购G站之后新增的内置CI/CD方案,其核心就是一个可以运行脚本的小型服务器(2核CPU + 7G RAM + 14 G SSD)。
有了它,我们就可以实现每天定时线上自动运行我们的应用程序。
设置步骤如下:
首先fork本项目(xiaoxiunique/schedule-bilibili)到自己的仓库
进入自己fork的仓库,点击 Settings-> Secrets-> New Secrets 添加以下3个Secrets(
USERID
、SESSDATA
、BILIBILI_JCT
)。它们将作为应用启动时的命令行参数被传入程序。开启Actions并触发每日自动执行
Github Actions默认处于关闭状态,前面都配置好后,请手动开启Actions,执行一次工作流,验证是否可以正常工作。
运行结束后,可查看运行日志
如果执行出现异常,会收到了GitHub Action的错误邮件通知,请检查Cookies是不是失效了,或者是否有bug。用户主动清除浏览器缓存,会导致BILIBILI_JCT
和DEDEUSERID
失效。
# 3.白嫖永远不是目的,学习才是「手动狗头」
利用面向对象的思想 实现 schedule-bilibili,各个任务之间 独立互不影响,高内聚低耦合。如果你是一位 JS er ,推荐你一看。
如果你觉得有用 恳请留下你的 star 。项目地址 (opens new window)
← Charles 最强技巧 一点点技巧 →