/LotteryAutoScript

Bili动态抽奖助手

Primary LanguageJavaScriptGNU General Public License v3.0GPL-3.0

AutoScript

Github仓库链接

Package Node.js project into an executable

Build and push Docker images

Publishing to NPM

Mirror and run GitLab CI

已实现功能:

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

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


操作步骤

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

右上角★ 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)

  • windows 可直接点击对应的*.bat文件
  • unix-like
    ## 进入脚本所在目录
    ## 授予执行权限
    $ chmod u+x lottery
    ## 启动脚本
    $ ./lottery start
    ## 检测中奖
    $ ./lottery check
    ## 清理关注动态
    $ ./lottery clear
    ## 下载最新版本
    $ ./lottery update
  1. 运行截图 lottery_start

以源码方式运行

点击跳转


Docker

点击跳转


青龙面板

点击跳转


防重复转发(可选)

  • 脚本将转发过的动态和被过滤的动态都写入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-推送铃声-查看所有铃声
PUSHDEER_URL Pushdeer 推送api 默认: https://api2.pushdeer.com/message/push
PUSHDEER_PUSHKEY Pushdeer PushKey
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_AM 企业微信应用 第一个值是企业id,第二个值是secret,第三个值@all(或者成员id),第四个值是AgentID (逗号分割) 可查看此教程 官方文档
QYWX_KEY 企业微信Bot推送 密钥,企业微信推送 webhook 后面的 key 详见官方说明文档
PUSH_PLUS_TOKEN pushplus推送 微信扫码登录后一对一推送或一对多推送下面的token(您的Token) 官方网站
PUSH_PLUS_USER pushplus推送 一对多推送的“群组编码”(一对多推送下面->您的群组(如无则新建)->群组编码)注:(1、需订阅者扫描二维码 2、如果您是创建群组所属人,也需点击“查看二维码”扫描绑定,否则不能接受群组消息推送),只填PUSH_PLUS_TOKEN默认为一对一推送
QMSG_KEY Qmsg酱私聊推送 Qmsg注册
QMSG_QQ 私聊消息推送接口,指定需要接收消息的QQ 指定的QQ号必须在你的管理台已添加
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

相关项目