JunzhouLiu / BILIBILI-HELPER
- четверг, 22 октября 2020 г. в 00:25:42
Java
利用GitHub Action定时任务实现B站,哔哩哔哩(Bilibili)每日自动投币,签到,银瓜子兑换硬币,领取大会员福利,大会员月底给自己充电等。每天轻松获取65经验值。赶快和我一起成为Lv6吧!
这是一个利用GitHub Action定时任务实现哔哩哔哩(Bilibili)每日自动投币,点赞,分享视频,直播签到,银瓜子兑换硬币,漫画每日签到,简单配置即可每日轻松获取65经验值,快来和我一起成为Lv6吧~~~~
如果觉得好用,顺手点个Star吧
仓库地址:JunzhouLiu/BILIBILI-HELPER
......
bili_jct,SESSDATA,DEDEUSERID三项,并复制值,创建对应的GitHub Secrets。| Name | Value |
|---|---|
| DEDEUSERID | 从Cookie中获取 |
| SESSDATA | 从Cookie中获取 |
| BILI_JCT | 从Cookie中获取 |
Github Actions默认处于关闭状态,还大家请手动开启Actions,执行一次工作流,验证是否可以正常工作。
Fork仓库后,GitHub默认不自动执行Actions任务,请修改./github/trigger.json文件,将trigger的值改为1,这样每天就会自动执行定时任务了。
{
- "trigger": 0
+ "trigger": 1
}如果需要修改每日任务执行的时间,请修改.github/workflows/auto_task_bilili.yml,在第12行左右位置找到下如下配置。
schedule:
- cron: '30 10 * * *'
# cron表达式,Actions时区是UTC时间,所以下午18点要往前推8个小时。
# 示例: 每天晚上22点30执行 '30 14 * * *'本工具的Actions自动构建配置了缓存,平均运行时间在20s左右。
如果收到了GitHub Action的错误邮件,请检查Cookies是不是失效了,用户主动清除浏览器缓存,会导致BILI_JCT和DEDEUSERID失效
配置文件位于src/main/resources/config.json
参数示意
| Key | Value | 说明 |
|---|---|---|
| numberOfCoins | [0,5] | 每日投币数量,默认5 |
| selectLike | [0,1] | 投币时是否点赞,默认0, 0:否 1:是 |
| monthEndAutoCharge | [false,true] | 年度大会员月底是否用B币券给自己充电,默认true |
| devicePlatform | [ios,android] | 手机端漫画签到时的平台,建议选择你设备的平台 ,默认ios |
投币数量代码做了处理,如果本日投币不能获得经验了,则不会投币,每天只投能获得经验的硬币。假设你设置每日投币3个,早上7点你自己投了2个硬币,则十点半时,程序只会投1个)
展开Build With Maven通过DEBUG标签快速过滤日志,查看运行状态
点击BILIBILI-HELPER/release,下载已发布的版本,上传至Liunx服务器。
crontab -lroot@iZuf642f8w148fwdcpq169Z:~# crontab -l
.......
# m h dom mon dow command
0 0 1,15 * * /home/./acme.sh-master/acme.sh --renew-all >>/var/log/cron.log 2>&1 &
0 0 1,15 * * nginx -s reload >>/var/log/cron.log 2>&1 &corntab -e,编辑crontab任务,退出保存即可。后面跟的三个参数为哔哩哔哩Cookies参数。# m h dom mon dow command
0 0 1,15 * * /home/./acme.sh-master/acme.sh --renew-all >>/var/log/cron.log 2>&1 &
0 0 1,15 * * nginx -s reload >>/var/log/cron.log 2>&1 &
30 10 * * * java -jar /home/BILIBILI-HELP.jar DEDEUSERID SESSDATA BILI_JCT >>/var/log/cron.log 2>&1 &点击BILIBILI-HELPER/release,下载已发布的版本。解压,在解压后的目录打开Powershell 需要装有Java运行环境。
执行java -jar /home/BILIBILI-HELP.jar DEDEUSERID SESSDATA BILI_JCT
SERVERPUSHKEY,值为你创建账号获得的key,可在查看Key,查看你的key。微信扫描以下二维码订阅版本更新通知
目前处于快速迭代阶段,建议通过以下两种方式从本仓库拉取最新代码。
该方案来自 @happy888888 #PR6 ,由于源仓库config.json文件的更改会覆盖用户自己的config.json配置文件,所以暂时没有合并到main分支。
使用自定义功能的朋友慎用该方法,建议使用手动拉取的方式,手动解决代码冲突
在./github/workflows目录下创建auto_merge.yml文件,内容如下
name: auto_merge
on:
workflow_dispatch:
schedule:
- cron: 0 2 * * fri
# cron表达式,每周五10点执行一次,UTC时间,使用北京时间请+8可按照需求自定义。
jobs:
merge:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
with:
ref: main
fetch-depth: 0
lfs: true
- name: Set git identity
run : |
git config --global user.email "41898282+github-actions[bot]@users.noreply.github.com"
git config --global user.name "github-actions[bot]"
- name: Load upstream commits
run: |
git update-index --assume-unchanged ./src/main/resources/config.json
git pull https://github.com/JunzhouLiu/BILIBILI-HELPER.git --log --no-commit
- name: Apply commit changes
run: |
if [ -f ./.git/MERGE_MSG ]; then
mkdir ./tmp && cp ./.git/MERGE_MSG ./tmp/message
sed -i "1c [bot] AutoMerging: merge all upstream's changes:" ./tmp/message
sed -i '/^\#.*/d' ./tmp/message
git commit --file="./tmp/message"
else
echo "There is no merge commits."
fi
- name: Push Commits
env:
DOWNSTREAM_BRANCH: main
TZ: Asia/Shanghai
run: git push origin $DOWNSTREAM_BRANCHgit remote -v查看是否有源头仓库的别名和地址。例如这里origin就是你自己的仓库,upstream是你fork的源头仓库。
$ git remote -v
origin https://github.com/JunzhouLiu/cxmooc-tools.git (fetch)
origin https://github.com/JunzhouLiu/cxmooc-tools.git (push)
upstream https://github.com/CodFrm/cxmooc-tools.git (fetch)
upstream https://github.com/CodFrm/cxmooc-tools.git (push)
git remote add upstream https://github.com/JunzhouLiu/BILIBILI-HELPER.gitfetch+merge)git pull upstream maingit push origin main config.json 不要被我的文件覆盖了。Fork仓库后,GitHub默认不自动执行Actions任务,请修改./github/trigger.json文件,将trigger的值改为1,这样每天就会自动执行定时任务了。
{
- "trigger": 0
+ "trigger": 1
}