Sign inSign up

shanmite/lottery_auto_docker

By shanmite

•Updated 4 months ago

自动抽奖脚本的Docker镜像

Image
5

100K+

shanmite/lottery_auto_docker repository overview

⁠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.js和my_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目录下有启动脚本, 点击即可运行

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

脚本已内置定时运行功能

⁠Linux

linux系统配置与定时运行⁠

⁠Docker

1.初始化

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

进入lottery文件夹

cd lottery

编辑env.js与my_config.js文件

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

2.执行相应的脚本

$ tree
.
├── check.sh
├── clear.sh
├── debug.sh 进入临时容器查看内容
├── env.js
├── my_config.js
├── new_env.js
├── new_my_config.js
├── remove_all.sh 移除对应docker镜像和所有相关容器
└── start.sh 

asciicast

3.更新

进入lottery上一级目录

使用与初始化相同的命令


⁠防重复转发

存储在专栏草稿

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

是否点赞


⁠检测中奖

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

判断依据

  • 通过@信息判断

  • 通过私信判断

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

⁠中奖推送(可选)

填写在env.js内

以下是支持的推送方式

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

⁠设置说明

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

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

⁠Awesome

相关项目

Tag summary

Content type

Image

Digest

sha256:e3a683308…

Size

72 MB

Last updated

4 months ago

docker pull shanmite/lottery_auto_docker