Bili动态抽奖助手
Go to file
2021-01-25 15:54:10 +08:00
.github feat: 清理功能可选 2021-01-15 11:42:50 +08:00
.vscode refactor: 模块化代码; feat: 支持多账号 2020-12-24 16:56:01 +08:00
lib perf: 将易出现频繁的操作提前 2021-01-25 15:54:10 +08:00
.eslintrc.json fix: dyid重复拼接 2021-01-14 18:47:07 +08:00
.gitignore fix: dyid重复拼接 2021-01-14 18:47:07 +08:00
LICENSE Create LICENSE 2020-12-27 13:52:04 +08:00
main.js feat: 清理功能可选 2021-01-15 11:42:50 +08:00
package-lock.json fix: dyid重复拼接 2021-01-14 18:47:07 +08:00
package.json fix: dyid重复拼接 2021-01-14 18:47:07 +08:00
README.md perf: 将易出现频繁的操作提前 2021-01-25 15:54:10 +08:00

AutoScript

Automatic sweepstakes
Automatic clear dynamic&follow


动态抽奖

通过Github Actions挂载Nodejs脚本

Actions官方文档

此脚本将在B站专栏草稿中储存转发过的动态id以防止重复转发


操作步骤

↓↓

Fork本仓库

fork

↓↓

填入COOKIE

进入B站主页获取Cookie用于登录
Chrome浏览器:

  1. F12打开控制台
  2. 进入Application找到Cookies栏中的SESSDATA将HttpOnly选项取消勾选
    (此步骤是为了方便后续采用JS获取Cookies)
    取消httponly
  3. 在Console中复制以下代码回车
    {
        let bilicookie = '';
        document.cookie.split(/\s*;\s*/).forEach(item=>{
            const _item = item.split('=');
            if (['DedeUserID','bili_jct','SESSDATA'].indexOf(_item[0]) !== -1)
                bilicookie += `${_item[0]}=${_item[1]}; `;
        })
        copy(bilicookie); /* 自动复制到粘贴板 */
        console.log(bilicookie)
    }
    
  4. 新建一个COOKIE将获取到的DedeUserID=***;SESSDATA=***;bili_jct=***填入
    new secret
    new COOKIE

也可以采用其他方式获取所需的Cookie
只需含有DedeUserID=...;SESSDATA=...;bili_jct=...三项即可
(分号分割,顺序随意)

↓↓

微信推送中奖信息(可选)

如果想使用Server酱提供的微信推送服务

Server酱是什么?

可在Repository secrets中新建一个SCKEY并填入相应的值
new secret SCKEY

↓↓

运行

进入Actions启用工作流

随便改一下此README.md文件并提交(Push触发)
change
commit
或者通过手动触发
commit

以上步骤是为了检测是否配置成功

至此程序将会每两小时运行一次

↓↓

完成!

效果 效果


清理动态

只需在Secret里添加一个CLEAR项并取值为true
程序便会每15天清理一次动态和关注


其他细节

更新

如果出现
滞后
说明此脚本有更新
通过Pull Request更新仓库
如何同步更新Github上Fork的项目
或者
使用GitHub App Pull自动同步

多账号支持

默认支持5个账号

cookies value
COOKIE
COOKIE2
COOKIE3
COOKIE4
COOKIE5
COOKIE*

添加更多的账号
可在文件.github/workflows/node.js.yml

lottery_*:
runs-on: ubuntu-latest
steps:
  - name: 'Checkout codes'
    uses: actions/checkout@v2
  - name: 'Use Node.js'
    uses: actions/setup-node@v1
    with:
      node-version: '12.18.3'
  - name: 'Run in Nodejs'
    shell: bash
    env:
      NUMBER: *
      COOKIE: ${{ secrets.COOKIE* }}
      SCKEY: ${{ secrets.SCKEY }}
    run:
      npm start

将以上星号处改为数字并依次复制粘贴
此时Secrets里就可以添加更多的COOKIE*(简单的找规律问题)
若使用自动清理功能,还需再.github/workflows/clear.yml

lottery_*:
  runs-on: ubuntu-latest
  steps:
    - name: 'Checkout codes'
      uses: actions/checkout@v2
    - name: 'Use Node.js'
      uses: actions/setup-node@v1
      with:
        node-version: '12.18.3'
    - name: 'Run in Nodejs'
      shell: bash
      env:
        NUMBER: *
        CLEAR: ${{ secrets.CLEAR }}
        COOKIE: ${{ secrets.COOKIE* }}
        SCKEY: ${{ secrets.SCKEY }}
      run:
        npm run clear

将以上星号处改为数字并依次复制粘贴以清理更多的账号

如何关闭

关闭工作流

部分设置说明

  • 定时运行(UTC时间)
    .github/workflows/node.js.yml
    schedule:
      - cron: '0 */2 * * *'
    
    如何填写此字段
  • 模式选择
    lib/config.js
    • 字段解释
      • model
        • '00'关闭自动抽奖
        • '10'只转发官方抽奖
        • '01'只转发非官方抽奖
        • '11'都转
      • chatmodel
        • '00'关闭自动评论
        • '10'只评论官抽
        • '01'只评论非官抽
        • '11'都评论
      • maxday
        • 开奖时间距离现在的最大天数
        • 默认为-1表示不限制
      • wait
        • 转发间隔时间
        • 单位毫秒
        • 上下浮动30s
      • minfollower
        • up主粉丝数限制
        • 仅限制没有官方认证的up
      • blacklist
        • 防钓鱼黑名单
      • blockword
        • 屏蔽词
      • followWhiteList
        • 取关白名单
        • 逗号分割字符串
      • relay
        • 转发评语
      • chat
        • 评论内容