1 Star 0 Fork 34

tl/LotteryAutoScript

forked from shanmite/LotteryAutoScript 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
MIT

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文件内部注释

MIT License Copyright (c) 2020 shanmite Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

简介

[Github备份]bilibili互动抽奖脚本自动参与动态抽奖 展开 收起
README
MIT
取消

发行版

暂无发行版

贡献者

全部

近期动态

不能加载更多了
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
JavaScript
1
https://gitee.com/t-l-l/LotteryAutoScript.git
git@gitee.com:t-l-l/LotteryAutoScript.git
t-l-l
LotteryAutoScript
LotteryAutoScript
main

搜索帮助