Bili动态抽奖助手
Go to file
2021-11-28 21:33:15 +08:00
.github chore: 暂时去除打包到arm 2021-11-06 11:24:42 +08:00
doc docs: 更新README 2021-10-13 20:48:10 +08:00
lib feat: minfollower填0可关闭本地粉丝数筛选 2021-11-28 21:33:15 +08:00
script fix: 因黑名单而关注失败(#45) 2021-10-11 18:46:32 +08:00
.dockerignore test: 增加docker运行方式 2021-06-04 14:06:15 +08:00
.eslintrc.json feat: api线路切换具有记忆功能 2021-10-10 20:48:17 +08:00
.gitignore feat: 检查动态创建时间(#57)(#58) 2021-10-20 16:00:45 +08:00
CHANGELOG.md docs: 更新CHANGELOG 2021-11-17 16:49:04 +08:00
Dockerfile feat: 可修改关键词设置 2021-07-11 17:10:09 +08:00
env.example.js feat: 修改转发验重逻辑 2021-10-05 17:04:47 +08:00
LICENSE Create LICENSE 2020-12-27 13:52:04 +08:00
main.js feat: 遇到过期的cookie跳过(#51) 2021-10-15 17:06:49 +08:00
my_config.example.js feat: 新增设置check_session_pages(#66) 2021-11-17 15:36:54 +08:00
package.json docs: 更新CHANGELOG 2021-11-17 16:49:04 +08:00
README.md docs: 更新README 2021-11-06 15:16:50 +08:00

AutoScript

Github仓库链接

Package Node.js project into an executable
Build and push Docker images
Publishing to NPM

已实现功能:

  • 监控用户转发
  • 监控话题页面
  • 监控专栏合集
  • 自动点赞、评论、乱序转发、@好友、带话题、可选随机动态
  • 检测是否中奖
    • 已读@
    • 已读私信
  • 清理动态关注
  • 检查更新
  • 更多功能设置请参考配置文件

声明: 此脚本仅用于学习和测试,作者本人并不对其负责,请于运行测试完成后自行删除,请勿滥用!


操作步骤

使用前务必阅读此教程和配置文件内注释

右上角★ Star

↓↓

获取COOKIE

进入B站主页获取Cookie用于登录

Chrome浏览器:

  1. F12打开控制台

  2. 进入Application找到Cookies栏中的SESSDATA将HttpOnly选项取消勾选

    (此步骤是为了方便后续采用JS获取Cookies,获取完毕后应再次勾选)

取消httponly

  1. 在Console中复制以下代码回车

    /** 自动复制到粘贴板 */
    document
      .cookie
      .split(/\s*;\s*/)
      .map(it => it.split('='))
      .filter(it => ['DedeUserID','bili_jct', 'SESSDATA'].indexOf(it[0]) > -1)
      .map(it => it.join('='))
      .join('; ')
      .split()
      .forEach(it => copy(it) || console.log(it))
    

也可以采用其他方式获取所需的Cookie

只需含有 DedeUserID=...;SESSDATA=...;bili_jct=... 三项即可

(分号分割, 不要换行, 顺序随意)

↓↓

本地运行

可执行文件

  1. [下载|cnpmjs镜像下载|Fastgit镜像下载]压缩包并解压后

     ~/nlts-linux-x64
     => tree
     .
     ├── env.js          (便捷设置环境变量和多账号参数)
     ├── lottery         (可执行文件)
     ├── my_config.js    (自定义设置文件) (!使用前必读)
     └── README.md       (说明文件)
    
  2. 用记事本或其他编辑器修改env.jsmy_config.js文件(右键选择用记事本打开)

  3. env.js中填入COOKIE和推送参数

  4. my_config.js中自定义设置

  5. 在当前目录下打开终端运行可执行文件lottery(勿直接点击lottery)

    # unix-like
    ## 进入脚本所在目录
    ## 授予执行权限
    $ chmod u+x lottery
    ## 启动脚本
    $ ./lottery start
    ## 检测中奖
    $ ./lottery check
    ## 清理关注动态
    $ ./lottery clear
    ## 下载最新版本
    $ ./lottery clear
    
    # windows
    ## 不需要chmod
    ## 把`./`换成`.\`或去掉
    ## 已自带*.bat可直接点击
    
  6. 运行截图 lottery_start

以源码方式运行

点击显示详细说明
Windows

step1: 下载代码到本地

点此下载或如图示下载↓

点我加载下载操作图示

下载的压缩包解压后修改env.example.js文件详见step3

step2: 下载并安装Node.js

点此进入nodejs下载页面

点我加载下载nodejs操作图示

step3修改env.example.js文件及创建运行文件(打开扩展名显示)

1.step1下载的压缩包解压后将其中的env.example.js文件重命名为env.js

2.右键env.js文件选择编辑或用记事本打开

3.填入相关参数

4.my_config.example.js同样操作

5.运行

注: npm i意味安装依赖, 只需运行一次, 为防止依赖有变化遂每次都执行

命令一: 启动抽奖

npm i && npm run start

命令二: 检查中奖

npm i && npm run check

命令三: 清理动态

npm i && npm run clear

script目录下有启动脚本, 点击即可运行

注: 本地运行时可在设置中增大扫描页数

windows系统定时运行

脚本已内置定时运行功能

Linux

linux系统配置与定时运行

Docker

1.初始化

curl -fsSL https://cdn.staticaly.com/gh/shanmiteko/LotteryAutoScript/main/script/docker/init.sh | sh

进入lottery文件夹

cd lottery

编辑env.jsmy_config.js文件

  • env.js 设置必要环境变量
  • my_config.js 你的设置

执行相应的脚本

start,check,clear

例如:

./start.sh

2.更新

进入lottery上一级目录

使用与初始化相同的命令

3.卸载

进入lottery上一级目录

docker image rm -f shanmite/lottery_auto_docker
rm -rf lottery/

防重复转发

存储在专栏草稿

脚本将转发过的动态和被过滤的动态都写入dyids/dyid*.txt文件中

是否点赞


检测中奖

检测未读信息, 已读未读信息

判断依据

  • 通过@信息判断

  • 通过私信判断

关键词有限 可能会有漏掉的或误报

中奖推送(可选)

填写在env.js内

以下是支持的推送方式

Name 归属 属性 说明
SCKEY 微信server酱推送(于2021/4月下线) 非必须 server酱的微信通知官方文档
SENDKEY 微信server酱(Turbo版)推送 非必须 获取SENDKEY 选择消息通道
BARK_PUSH BARK推送 非必须 IOS用户下载BARK这个APP,填写内容是app提供的设备码,例如:https://api.day.app/123 ,那么此处的设备码就是123,再不懂看 这个图(注:支持自建填完整链接即可)
BARK_SOUND BARK推送 非必须 bark推送声音设置例如choo,具体值请在bark-推送铃声-查看所有铃声
TG_BOT_TOKEN telegram推送 非必须 tg推送(需设备可连接外网),TG_BOT_TOKENTG_USER_ID两者必需,填写自己申请@BotFather的Token,如10xxx4:AAFcqxxxxgER5uw , 具体教程
TG_USER_ID telegram推送 非必须 tg推送(需设备可连接外网),TG_BOT_TOKENTG_USER_ID两者必需,填写@getuseridbot中获取到的纯数字ID, 具体教程
TG_PROXY_HOST Telegram 代理的 IP 非必须 代理类型为 http。例子http代理 http://127.0.0.1:1080 则填写 127.0.0.1
TG_PROXY_PORT Telegram 代理的端口 非必须 例子http代理 http://127.0.0.1:1080 则填写 1080
DD_BOT_TOKEN 钉钉推送 非必须 钉钉推送(DD_BOT_TOKENDD_BOT_SECRET两者必需)官方文档 ,只需https://oapi.dingtalk.com/robot/send?access_token=XXX 等于=符号后面的XXX即可
DD_BOT_SECRET 钉钉推送 非必须 (DD_BOT_TOKENDD_BOT_SECRET两者必需) ,密钥机器人安全设置页面加签一栏下面显示的SEC开头的SECXXXXXXXXXX等字符 , 注:钉钉机器人安全设置只需勾选加签即可,其他选项不要勾选,再不懂看 这个图
IGOT_PUSH_KEY iGot推送 非必须 iGot聚合推送支持多方式推送确保消息可达。 参考文档
QQ_SKEY 酷推(Cool Push)推送 非必须 推送所需的Skey,登录后获取Skey 参考文档
QQ_MODE 酷推(Cool Push)推送 非必须 推送方式(send或group或者wx默认send) 参考文档
QYWX_KEY 企业微信推送 非必须 密钥,企业微信推送 webhook 后面的 key 详见官方说明文档
PUSH_PLUS_TOKEN pushplus推送 非必须 微信扫码登录后一对一推送或一对多推送下面的token(您的Token) 官方网站
PUSH_PLUS_USER pushplus推送 非必须 一对多推送的“群组编码”(一对多推送下面->您的群组(如无则新建)->群组编码)注:(1、需订阅者扫描二维码 2、如果您是创建群组所属人也需点击“查看二维码”扫描绑定否则不能接受群组消息推送),只填PUSH_PLUS_TOKEN默认为一对一推送
SMTP_HOST 电子邮件 非必须 smtp服务器的主机名 如: smtp.qq.com
SMTP_PORT 电子邮件 非必须 smtp服务器的端口 如: 465
SMTP_USER 电子邮件 非必须 发送方的电子邮件 如: xxxxxxxxx@qq.com
SMTP_PASS 电子邮件 非必须 smtp服务对应的授权码
SMTP_TO_USER 电子邮件 非必须 接收方电子邮件

设置说明

详见env.example.js文件内部注释

详见my_config.example.js文件内部注释

Awesome

相关项目