BILIBILI-HELPER

Introduction: 利用 GitHub Action 定时任务实现 B 站,哔哩哔哩(Bilibili)每日自动投币,签到,银瓜子兑换硬币,领取大会员福利,大会员月底给自己充电等。每天轻松获取 65 经验值。赶快和我一起成为 Lv6 吧!
More: Author   ReportBugs   OfficialWebsite   
Tags:

BILIBILI-HELPER

GitHub stars GitHub forks GitHub issues GitHub license GitHub All Releases GitHub contributors GitHub release (latest SemVer)

这是一个利用 GitHub Action 定时任务实现哔哩哔哩(Bilibili)每日自动投币,点赞,分享视频,直播签到,银瓜子兑换硬币,漫画每日签到,简单配置即可每日轻松获取 65 经验值,快来和我一起成为 Lv6 吧~~~~

如果觉得好用,顺手点个 Star 吧 ❤

仓库地址:JunzhouLiu/BILIBILI-HELPER

功能列表

  • [x] 每天上午 9 点 10 分自动开始任务。【运行时间可自定义】
  • [x] 哔哩哔哩漫画每日自动签到 。
  • [x] 每日自动从热门视频中随机观看 1 个视频,分享一个视频。
  • [x] 每日从热门视频中选取 5 个进行智能投币 【如果投币不能获得经验,默认不投币】
  • [x] 投币支持下次一定啦,可自定义每日投币数量。【如果检测到你已经投过币了,则不会投币】
  • [x] 大会员月底使用快到期的 B 币券,给自己充电,一点也不会浪费哦,默认开启。【可配置】
  • [x] 大会员月初 1 号自动领取每月 5 张 B 币券和福利。
  • [x] 每日哔哩哔哩直播自动签到,领取签到奖励。【直播你可以不看,但是奖励咱们一定要领】

......

点击快速开始使用

目录

使用说明

一、Actions 定时任务(推荐)

  1. fork 本项目
  2. 获取 Bilibili Cookies
  3. 浏览器打开并登录bilibili 网站
  4. 按 F12 打开 “开发者工具” 找到应用程序/Application -> 存储-> Cookies
  5. 找到bili_jct,SESSDATA,DEDEUSERID三项,并复制值,创建对应的 GitHub Secrets。

图示

  1. 点击项目 Settings-> Secrets-> New Secrets 添加以下 3 个 Secrets。
Name Value
DEDEUSERID 从 Cookie 中获取
SESSDATA 从 Cookie 中获取
BILI_JCT 从 Cookie 中获取

图示

  1. 开启 Actions 并触发每日自动执行

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_JCTDEDEUSERID失效

配置自定义功能

配置文件位于src/main/resources/config.json

参数示意

Key Value 说明
numberOfCoins [0,5] 每日投币数量,默认 5
selectLike [0,1] 投币时是否点赞,默认 0, 0:否 1:是
watchAndShare [0,1] 观看时是否分享
monthEndAutoCharge [false,true] 年度大会员月底是否用 B 币券给自己充电,默认true
devicePlatform [ios,android] 手机端漫画签到时的平台,建议选择你设备的平台 ,默认ios

投币数量代码做了处理,如果本日投币不能获得经验了,则不会投币,每天只投能获得经验的硬币。假设你设置每日投币 3 个,早上 7 点你自己投了 2 个硬币,则十点半时,程序只会投 1 个)

查看运行日志

展开Build With Maven通过DEBUG标签快速过滤日志,查看运行状态

Actions 运行日志详细查看教程

日志示例

图示 图示

二、使用 Linux Crontab 方式

步骤

点击BILIBILI-HELPER/release,下载已发布的版本,上传至 Liunx 服务器。

  1. crontab -l
    root@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 &
    
  2. 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 &
    

运行效果

图示

三、使用 Windows10

步骤

  1. 点击BILIBILI-HELPER/release,下载已发布的版本。解压,在解压后的目录打开Powershell 需要装有 Java 运行环境。

  2. 执行java -jar /home/BILIBILI-HELP.jar DEDEUSERID SESSDATA BILI_JCT

图示

微信订阅通知

订阅执行结果

  1. 前往sc.ftqq.com创建账号,并且生成一个 Key。将其增加到 Github Secrets 中,变量名为SERVERPUSHKEY,值为你创建账号获得的 key,可在查看 Key,查看你的 key。
  2. 绑定微信账号,开启微信推送。绑定微信

图示

  1. 推送效果展示

图示 图示

订阅版本更新

微信扫描以下二维码订阅版本更新通知

图示

快速更新

关于项目更新频率

目前处于快速迭代阶段,建议通过以下两种方式从本仓库拉取最新代码。

使用 Github Actions 自动同步源仓库代码

该方案来自 @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_BRANCH

手动拉取最新代码

  1. 通过git 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)
  1. fork 仓库后,将你的仓库拉到本地,如果没有源头仓库,则添加源头仓库

    git remote add upstream https://github.com/JunzhouLiu/BILIBILI-HELPER.git
    
  2. 更新上游仓库 main 分支的代码(pull 操作实际上是 fetch+merge

git pull upstream main
  1. 将从源头仓库更新后的代码推送到你自己的 github 仓库
git push origin main
  1. 这样你就能快速的从我的仓库拉取最新的代码,并更新到你自己的仓库里了。自定义配置的同学,要注意config.json 不要被我的文件覆盖了。

常见问题

关于 Action 定时任务不执行的问题

Fork 仓库后,GitHub 默认不自动执行 Actions 任务,请修改./github/trigger.json文件,将trigger的值改为1,这样每天就会自动执行定时任务了。

{
- "trigger": 0
+ "trigger": 1
}

API 参考列表

Apps
About Me
GitHub: Trinea
Facebook: Dev Tools