Compare commits

...
7 Commits
Author SHA1 Message Date
shanmite ebb561c312 docs: 更新CHANGELOG
Build and push Docker images / docker (push) Has been cancelled
Mirror and run GitLab CI / build (push) Has been cancelled
Publishing to NPM / publish (push) Has been cancelled
Package Node.js project into an executable / node${{ matrix.nodev }}-${{ matrix.platform }}-x64 (18, linux) (push) Has been cancelled
Package Node.js project into an executable / node${{ matrix.nodev }}-${{ matrix.platform }}-x64 (18, macos) (push) Has been cancelled
Package Node.js project into an executable / node${{ matrix.nodev }}-${{ matrix.platform }}-x64 (18, win) (push) Has been cancelled
Package Node.js project into an executable / node18-${{ matrix.platform }}-arm64 (alpine) (push) Has been cancelled
Package Node.js project into an executable / node18-${{ matrix.platform }}-arm64 (linux) (push) Has been cancelled
Package Node.js project into an executable / node18-${{ matrix.platform }}-arm64 (linuxstatic) (push) Has been cancelled
2025-05-23 09:57:25 +08:00
shanmite c85c9106ff doc: 图片链接换源 2025-05-23 09:53:33 +08:00
shanmite c4d37eda9f fix: Dockerfile.pkg-arm64换源 2025-05-23 09:42:39 +08:00
shanmite ca1ea8c93d fix: 青龙换源gitlab 2025-05-23 09:36:12 +08:00
shanmite d007d8bab9 feat: 更新换源及优化 2025-05-23 09:33:20 +08:00
shanmite e543c63404 docs: 更新CHANGELOG
Build and push Docker images / docker (push) Has been cancelled
Mirror and run GitLab CI / build (push) Has been cancelled
Publishing to NPM / publish (push) Has been cancelled
Package Node.js project into an executable / node${{ matrix.nodev }}-${{ matrix.platform }}-x64 (18, linux) (push) Has been cancelled
Package Node.js project into an executable / node${{ matrix.nodev }}-${{ matrix.platform }}-x64 (18, macos) (push) Has been cancelled
Package Node.js project into an executable / node${{ matrix.nodev }}-${{ matrix.platform }}-x64 (18, win) (push) Has been cancelled
Package Node.js project into an executable / node18-${{ matrix.platform }}-arm64 (alpine) (push) Has been cancelled
Package Node.js project into an executable / node18-${{ matrix.platform }}-arm64 (linux) (push) Has been cancelled
Package Node.js project into an executable / node18-${{ matrix.platform }}-arm64 (linuxstatic) (push) Has been cancelled
2025-05-19 09:39:54 +08:00
shanmite bcf87a9d00 feat: 新增日志等级Notice (#454)
Fixed #454
2025-05-19 09:08:03 +08:00
13 changed files with 70 additions and 40 deletions
+13
View File
@@ -1,5 +1,18 @@
<!-- markdownlint-disable MD036 MD024-->
# CHANGELOG
## 主要变化(2.9.8)
* c85c910 doc: 图片链接换源
* c4d37ed fix: Dockerfile.pkg-arm64换源
* ca1ea8c fix: 青龙换源gitlab
* d007d8b feat: 更新换源及优化
_如果之前版本小于上一版本,请查看[CHANGELOG](https://github.com/shanmiteko/LotteryAutoScript/blob/main/CHANGELOG.md)变更说明_
## 主要变化(2.9.7)
* bcf87a9 feat: 新增日志等级Notice (#454)
_如果之前版本小于上一版本,请查看[CHANGELOG](https://github.com/shanmiteko/LotteryAutoScript/blob/main/CHANGELOG.md)变更说明_
## 主要变化(2.9.6)
* f261e91 fix: API.X_POLYMER_WEB_DYNAMIC_V1_DETAIL 缺少参数 (#452)
* 5336068 fix: 修复通过uid监视转发抽奖动态 (#449)
+1 -1
View File
@@ -5,7 +5,7 @@ WORKDIR /root/lottery
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.ustc.edu.cn/g' /etc/apk/repositories && \
apk add --no-cache curl
ENV DOWNLOAD_HOST=https://ghproxy.com/https://github.com \
ENV DOWNLOAD_HOST=https://github.com \
RELEASE_TAG=v3.4 \
NODEV=18.5.0 \
PKG_CACHE_PATH=/root/.pkg-cache \
+4 -4
View File
@@ -103,7 +103,7 @@ Chrome浏览器:
(此步骤是为了方便后续采用JS获取Cookies,获取完毕后应再次勾选)
![取消httponly](https://raw.githubusercontents.com/shanmiteko/LotteryAutoScript/main/doc/pic/getCookies.png)
![取消httponly](doc/pic/getCookies.png)
3. 在Console中复制以下代码回车
@@ -166,7 +166,7 @@ buvid3亦可不填 使用随机生成值
```
1. 运行截图
![lottery_start](https://raw.githubusercontents.com/shanmiteko/LotteryAutoScript/main/doc/pic/lottery_start.png)
![lottery_start](doc/pic/lottery_start.png)
#### 以源码方式运行
@@ -208,7 +208,7 @@ buvid3亦可不填 使用随机生成值
| :----------------: | :--------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `SCKEY` | 微信server酱推送(于2021/4月下线) | server酱的微信通知[官方文档](http://sc.ftqq.com/3.version) |
| `SENDKEY` | 微信server酱(Turbo版)推送 | [获取SENDKEY](https://sct.ftqq.com/sendkey) [选择消息通道](https://sct.ftqq.com/forward) |
| `BARK_PUSH` | [BARK推送](https://apps.apple.com/us/app/bark-customed-notifications/id1403753865) | IOS用户下载BARK这个APP,填写内容是app提供的`设备码`,例如:<https://api.day.app/123> ,那么此处的设备码就是`123`,再不懂看 [这个图](https://raw.githubusercontents.com/shanmiteko/LotteryAutoScript/main/doc/pic/bark.jpg)(注:支持自建填完整链接即可) |
| `BARK_PUSH` | [BARK推送](https://apps.apple.com/us/app/bark-customed-notifications/id1403753865) | IOS用户下载BARK这个APP,填写内容是app提供的`设备码`,例如:<https://api.day.app/123> ,那么此处的设备码就是`123`,再不懂看 [这个图](doc/pic/bark.jpg)(注:支持自建填完整链接即可) |
| `BARK_SOUND` | [BARK推送](https://apps.apple.com/us/app/bark-customed-notifications/id1403753865) | bark推送声音设置,例如`choo`,具体值请在`bark`-`推送铃声`-`查看所有铃声` |
| `PUSHDEER_URL` | [Pushdeer](https://github.com/easychen/pushdeer) | 推送api 默认: <https://api2.pushdeer.com/message/push> |
| `PUSHDEER_PUSHKEY` | [Pushdeer](https://github.com/easychen/pushdeer) | PushKey |
@@ -217,7 +217,7 @@ buvid3亦可不填 使用随机生成值
| `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_TOKEN`和`DD_BOT_SECRET`两者必需)[官方文档](https://ding-doc.dingtalk.com/doc#/serverapi2/qf2nxq) ,只需`https://oapi.dingtalk.com/robot/send?access_token=XXX` 等于`=`符号后面的XXX即可 |
| `DD_BOT_SECRET` | 钉钉推送 | (`DD_BOT_TOKEN`和`DD_BOT_SECRET`两者必需) ,密钥,机器人安全设置页面,加签一栏下面显示的SEC开头的`SECXXXXXXXXXX`等字符 , 注:钉钉机器人安全设置只需勾选`加签`即可,其他选项不要勾选,再不懂看 [这个图](https://raw.githubusercontents.com/shanmiteko/LotteryAutoScript/main/doc/pic/DD_bot.png) |
| `DD_BOT_SECRET` | 钉钉推送 | (`DD_BOT_TOKEN`和`DD_BOT_SECRET`两者必需) ,密钥,机器人安全设置页面,加签一栏下面显示的SEC开头的`SECXXXXXXXXXX`等字符 , 注:钉钉机器人安全设置只需勾选`加签`即可,其他选项不要勾选,再不懂看 [这个图](doc/pic/DD_bot.png) |
| `IGOT_PUSH_KEY` | iGot推送 | iGot聚合推送,支持多方式推送,确保消息可达。 [参考文档](https://wahao.github.io/Bark-MP-helper ) |
| `QQ_SKEY` | 酷推(Cool Push)推送 | 推送所需的Skey,登录后获取Skey [参考文档](https://cp.xuthus.cc/) |
| `QQ_MODE` | 酷推(Cool Push)推送 | 推送方式(send或group或者wx,默认send) [参考文档](https://cp.xuthus.cc/) |
+3 -3
View File
@@ -4,16 +4,16 @@
.首先在Telegram上搜索[BotFather](https://t.me/BotFather)机器人<br>
![TG_PUSH1](https://raw.githubusercontents.com/shanmiteko/LotteryAutoScript/main/doc/pic/TG_PUSH1.png)
![TG_PUSH1](pic/TG_PUSH1.png)
Ⅱ.利用[BotFather](https://t.me/BotFather)创建一个属于自己的通知机器人,按照下图中的1、2、3步骤拿到token,格式形如```10xxx4:AAFcqxxxxgER5uw```。填入```TG_BOT_TOKEN```<br>
![TG_PUSH2](https://raw.githubusercontents.com/shanmiteko/LotteryAutoScript/main/doc/pic/TG_PUSH2.png)<br>
![TG_PUSH2](pic/TG_PUSH2.png)<br>
**新创建的机器人需要跟它发一条消息来开启对话,否则可能会遇到secret填对了但是收不到消息的情况**<br>
Ⅲ.再次在Telegram上搜索[getuserIDbot](https://t.me/getuserIDbot)机器人,获取UserID。填入```TG_USER_ID```<br>
![TG_PUSH3](https://raw.githubusercontents.com/shanmiteko/LotteryAutoScript/main/doc/pic/TG_PUSH3.png)
![TG_PUSH3](pic/TG_PUSH3.png)
至此,获取**TG_BOT_TOKEN**以及**TG_USER_ID**的教程结束
+1 -1
View File
@@ -73,7 +73,7 @@ PATH=/sbin:/bin:/usr/sbin/:/usr/bin
看看有没有效果
![image-start](https://raw.githubusercontents.com/shanmiteko/LotteryAutoScript/main/doc/pic/image-start.png)
![image-start](pic/image-start.png)
7.如果本地的脚本需要更新
+2 -2
View File
@@ -4,7 +4,7 @@ step1: 下载代码到本地
[点此下载](https://github.com/shanmiteko/LotteryAutoScript/archive/refs/heads/main.zip)或如图示下载↓
![点我加载下载操作图示](https://raw.githubusercontents.com/shanmiteko/LotteryAutoScript/main/doc/pic/download.png)
![点我加载下载操作图示](pic/download.png)
下载的压缩包解压后修改env.example.js文件,详见step3
@@ -12,7 +12,7 @@ step2: 下载并安装Node.js
[点此进入nodejs下载页面](http://nodejs.cn/download)
![点我加载下载nodejs操作图示](https://raw.githubusercontents.com/shanmiteko/LotteryAutoScript/main/doc/pic/nodejs.png)
![点我加载下载nodejs操作图示](pic/nodejs.png)
step3:修改env.example.js文件及创建运行文件(打开扩展名显示)
+3 -3
View File
@@ -16,13 +16,13 @@
7.在`操作`页面中点击`新建`,选择操作为`启动程序`,在设置里点击浏览找到`start.bat`文件并选择,在`起始于(可选)(T)`中的空白框里输入`start.bat`文件的目录地址,也就是`程序或脚本(P)``start.bat`的前面那一串目录地址,最后是以`\`结尾的 ,填好东西后按下面`确认`
![点我加载步骤7结果图示](https://raw.githubusercontents.com/shanmiteko/LotteryAutoScript/main/doc/pic/step_menu.png)
![点我加载步骤7结果图示](pic/step_menu.png)
8.在`条件`页面中选择`网络`,设定启动条件为任何连接
9.在`设置`页面中选择如图示选项,或者不修改默认设置
![点我加载步骤9结果图示](https://raw.githubusercontents.com/shanmiteko/LotteryAutoScript/main/doc/pic/shezhi_renwu.png)
![点我加载步骤9结果图示](pic/shezhi_renwu.png)
10.最后按`确定`
@@ -30,6 +30,6 @@
最后你可以在任务列表中选择已有的任务,右边的操作框中选择`运行`点击,启动计划的任务,如下图所示
![点我加载运行图示](https://raw.githubusercontents.com/shanmiteko/LotteryAutoScript/main/doc/pic/start_renwu.png)
![点我加载运行图示](pic/start_renwu.png)
具体看任务是否正常执行,你可以看看自己的账号动态的最新转发,运行成功每几分钟自动转发抽奖动态
+1 -1
View File
@@ -12,7 +12,7 @@ module.exports = Object.freeze({
* - `ENABLE_MULTIPLE_ACCOUNT` 是否启用多账号
* - `MULTIPLE_ACCOUNT_PARM` 多账号参数(JSON格式) <不推荐使用
* ## 调试相关
* - `LOTTERY_LOG_LEVEL` 输出日志等级 Error<Warn<Info<Debug 1<2<3<4
* - `LOTTERY_LOG_LEVEL` 输出日志等级 Error<Warn<Notice<Info<Debug 0<1<2<3<4
* - `NOT_GO_LOTTERY` 关闭抽奖行为
*
* ## 多账号
+2 -2
View File
@@ -92,10 +92,10 @@ async function isMe(num) {
log.info('中奖检测', '--> OK');
}
if (desp) {
log.info('可能中奖了', desp);
log.notice('可能中奖了', desp);
await sendNotify(`帐号${num}可能中奖了`, desp);
} else {
log.info('中奖检测', '暂未中奖');
log.notice('中奖检测', '暂未中奖');
}
return;
}
+13 -10
View File
@@ -62,28 +62,31 @@ async function update(isDdownload) {
try {
const { tag_name, assets, body: text } = await getLatestRelease('shanmiteko', 'LotteryAutoScript');
if (checkVersion(version) < checkVersion(tag_name)) {
const download_url = assets
/**
* @type {{browser_download_url:string, size:number}[]}
*/
const download_item = assets
.filter(({ name }) => checkPlatform(name))
.map(({ browser_download_url }) => browser_download_url);
if (download_url.length) {
.map(({ browser_download_url, size }) => { return { browser_download_url, size }; });
if (download_item.length) {
if (isDdownload) {
await try_for_each(download_url.entries(), async ([i, url]) => {
let proxy_url = 'https://mirror.ghproxy.com/';
proxy_url += url;
await try_for_each(download_item.entries(), async ([i, { browser_download_url, size }]) => {
let proxy_url = 'https://ghfast.top/';
proxy_url += browser_download_url;
log.warn('自动下载', `切换代理${proxy_url}`);
await download(proxy_url, `latest_version${i}.zip`)
await download(proxy_url, `latest_version${i}.zip`, size)
.catch(async err => {
log.error('自动下载', err);
proxy_url = url;
proxy_url = browser_download_url;
log.warn('自动下载', `使用原始链接${proxy_url}`);
await download(proxy_url, `latest_version${i}.zip`);
await download(proxy_url, `latest_version${i}.zip`, size);
});
return false;
});
log.info('自动下载', '成功下载到当前目录');
log.info('检查更新', '请手动解压替换可执行文件');
}
log.info('更新说明', '\n' + text + '\n');
log.notice('更新说明', '\n' + text + '\n');
} else {
throw `未找到能在此平台(${process.platform})-(${process.arch})上运行的版本,建议以源码运行`;
}
+25 -9
View File
@@ -191,7 +191,7 @@ const utils = {
_level: 3,
_colors: [
chalk.hex('#64B3FF'), chalk.grey, chalk.hex('#FFA500'),
chalk.hex('#0070BB'), chalk.hex('#48BB31'), chalk.hex('#BBBB23'), chalk.hex('#FF0006')
chalk.hex('#0070BB'), chalk.hex('#48BB31'), chalk.hex('#BFFF00'), chalk.hex('#BBBB23'), chalk.hex('#FF0006')
],
_iso_time: () => new Date(Date.now() + 288e5).toISOString().slice(0, -1) + '+08',
_cache: [],
@@ -231,7 +231,7 @@ const utils = {
process.stdout.write(status_bar);
},
debug(context, msg) {
if (this._level > 3) {
if (this._level >= 4) {
if (msg instanceof Object) msg = JSON.stringify(msg, null, 4);
let color_text_pair = [
[this._colors[0], `[${this._iso_time()}]`],
@@ -243,7 +243,7 @@ const utils = {
}
},
info(context, msg) {
if (this._level > 2) {
if (this._level >= 3) {
let color_text_pair = [
[this._colors[0], `[${this._iso_time()}]`],
[this._colors[1], '[Info]'],
@@ -254,25 +254,37 @@ const utils = {
this.proPrint(color_text_pair.map(([color, text]) => color(text)));
}
},
notice(context, msg) {
if (this._level >= 2) {
let color_text_pair = [
[this._colors[0], `[${this._iso_time()}]`],
[this._colors[1], '[Notice]'],
[this._colors[2], `[帐号${process.env['NUMBER']} ${context}]`],
[this._colors[5], `[${msg}]`],
];
this._cache.push(color_text_pair.map(it => it[1]).join(' '));
this.proPrint(color_text_pair.map(([color, text]) => color(text)));
}
},
warn(context, msg) {
if (this._level > 1) {
if (this._level >= 1) {
let color_text_pair = [
[this._colors[0], `[${this._iso_time()}]`],
[this._colors[1], '[Warn]'],
[this._colors[2], `[帐号${process.env['NUMBER']} ${context}]`],
[this._colors[5], `[\n${msg}\n]`],
[this._colors[6], `[\n${msg}\n]`],
];
this._cache.push(color_text_pair.map(it => it[1]).join(' '));
this.proPrint(color_text_pair.map(([color, text]) => color(text)));
}
},
error(context, msg) {
if (this._level > 0) {
if (this._level >= 0) {
let color_text_pair = [
[this._colors[0], `[${this._iso_time()}]`],
[this._colors[1], '[Error]'],
[this._colors[2], `[帐号${process.env['NUMBER']} ${context}]`],
[this._colors[6], `[\n${msg}\n]`],
[this._colors[7], `[\n${msg}\n]`],
];
this._cache.push(color_text_pair.map(it => it[1]).join(' '));
this.proPrint(color_text_pair.map(([color, text]) => color(text)));
@@ -306,9 +318,10 @@ const utils = {
* 下载文件
* @param {string} url
* @param {string} file_name
* @param {number} size
* @returns {Promise<void | string>}
*/
download(url, file_name) {
download(url, file_name, size) {
return new Promise((resolve, reject) => {
send({
url,
@@ -328,6 +341,9 @@ const utils = {
resStream.pipe(wtbs);
wtbs.on('finish', () => {
utils.log.proPrint('下载完成');
if (recv_length < size) {
reject(`未正确下载文件: ${recv_length}B < ${size}B`);
}
resolve();
}).on('error', error => {
wtbs.destroy();
@@ -475,7 +491,7 @@ const utils = {
});
});
},
getIpInfo() {
getIpInfo() {
return new Promise((resolve) => {
send({
url: 'https://myip.qq.com/',
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "lottery-auto-script",
"version": "2.9.6",
"version": "2.9.8",
"description": "自动参与B站动态抽奖",
"main": "main.js",
"scripts": {
+1 -3
View File
@@ -4,9 +4,7 @@ set -e
NAME=LotteryAutoScript
BRABCH=main
# 视网络情况选择链接
GIT_REPO=https://github.com/shanmiteko/${NAME}.git
# GIT_REPO=https://ghproxy.com/https://github.com/shanmiteko/${NAME}.git
GIT_REPO=https://gitlab.com/shanmiteko/${NAME}.git
if [ -d "$NAME" ]; then
cd $NAME