BILIBILI-HELPER

GitHub stars GitHub forks GitHub issues GitHub license

# 工具简介

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

仓库地址: JunzhouLiu/BILIBILI-HELPER

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

# 功能列表

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

快速使用 点击查看如何自定义上述功能 ......

# 目录

# 使用说明

# 快速开始使用

  1. fork本项目,功能正在逐步增加中,要是能顺手点个Star就更好了
  2. 获取Bilibili Cookies
  • 浏览器打开并登录bilibili网站
  • 按F12打开 “开发者工具” 找到应用程序/Application -> 存储-> Cookies
  • 找到bili_jct,SESSDATA,DEDEUSERID三项,并复制值,创建对应的GitHub Secrets。

图示

  1. 点击项目 Seeting->Secrets->New Secrets 添加以下3个Secrets。
Name Value
BILI_JCT 从浏览器缓存中获取
DEDEUSERID 从浏览器缓存中获取
SESSDATA 从浏览器缓存中获取

图示

  1. 手动开GitHub Action服务

Github Actions默认处于禁止状态,请手动开启Actions. 之后每天10点半会运行一次。

如果收到了GitHub Action的错误邮件,请检查Cookies是不是失效了,用户主动清除浏览器缓存,会导致BILI_JCTDEDEUSERID失效

图示

# 配置自定义功能

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

参数示意

Key Value 说明
numberOfCoins 0到5 每日投币数量
select_like 1,0 1:投币时点赞,0:投币时不点赞
watch_share 1,0 1:观看时分享,0:观看不分享
month_end_auto_charge 1,0 1:大会员月底如果有没用完的B币券自动充电,0:关闭月底充电

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

# 查看运行日志

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

日志示例

图示 图示

# 快速更新

# 关于项目更新频率

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

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

该方案来自 @happy888888 #PR6 ,由于源仓库config.json文件的更改会覆盖用户自己的config.json配置文件,所以暂时没有合并到main分支。

使用自定义功能的朋友慎用该方法,建议使用手动拉取的方式,手动解决代码冲突

./github/workflows目录下创建auto_merge.yml文件,内容如下

name: auto_merge
on:
  workflow_dispatch:
  schedule:
    - cron: 0 16 * * fri
    # cron表达式,每周五16点执行一次,可按照需求自定义。  
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
      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
  1. 更新上游仓库main分支的代码(pull操作实际上是 fetch+merge
git pull upstream main
  1. 将从源头仓库更新后的代码推送到你自己的github仓库
git push origin main 
  1. 这样你就能快速的从我的仓库拉取最新的代码,并更新到你自己的仓库里了。自定义配置的同学,要注意config.json 不要被我的文件覆盖了。

# 其他使用方式

也可以打成jar包部署到个人的服务器上,使用crontab执行定时任务,注意:args参数顺序为userId, sessData, biliJct

# API参考列表