mirror of
https://github.com/shanmiteko/LotteryAutoScript.git
synced 2026-06-04 21:01:17 +08:00
doc: 更新说明文档,调整输出信息
This commit is contained in:
parent
ad7df1aa74
commit
3698c81384
2
.gitignore
vendored
2
.gitignore
vendored
@ -1,7 +1,5 @@
|
||||
node_modules/
|
||||
dyids/
|
||||
dist/
|
||||
lib/dyid*.txt
|
||||
dyid.zip
|
||||
env.js
|
||||
my_config.js
|
||||
27
README.md
27
README.md
@ -5,7 +5,7 @@
|
||||
- [获取COOKIE](#获取cookie)
|
||||
- [本地运行](#本地运行)
|
||||
- [可执行文件](#可执行文件)
|
||||
- [搭建运行环境](#搭建运行环境)
|
||||
- [以源码方式运行](#以源码方式运行)
|
||||
- [Windows](#windows)
|
||||
- [Linux](#linux)
|
||||
- [Docker](#docker)
|
||||
@ -38,7 +38,7 @@ Chrome浏览器:
|
||||
|
||||
2. 进入Application找到Cookies栏中的SESSDATA将HttpOnly选项**取消**勾选
|
||||
|
||||
(此步骤是为了方便后续采用JS获取Cookies)
|
||||
(此步骤是为了方便后续采用JS获取Cookies,获取完毕后应再次勾选)
|
||||
|
||||

|
||||
|
||||
@ -66,20 +66,19 @@ Chrome浏览器:
|
||||
↓↓
|
||||
|
||||
### 本地运行
|
||||
设置环境变量中的cookie和推送相关参数
|
||||
具体操作详见[env.example.js](env.example.js)文件内注释
|
||||
|
||||
#### 可执行文件
|
||||
在当前目录下[打开终端](https://cn.bing.com/search?q=%E5%A6%82%E4%BD%95%E5%9C%A8%E5%BD%93%E5%89%8D%E7%9B%AE%E5%BD%95%E6%89%93%E5%BC%80%E7%BB%88%E7%AB%AF)运行内部的可执行文件即可
|
||||
1. [[下载](https://github.com/shanmiteko/LotteryAutoScript/releases)|[cnpmjs镜像下载](https://github.com.cnpmjs.org/shanmiteko/LotteryAutoScript/releases)|[Fastgit镜像下载](https://hub.fastgit.org/shanmiteko/LotteryAutoScript/releases)]压缩包并解压
|
||||
```
|
||||
env.js
|
||||
lottery.exe
|
||||
my_config.js
|
||||
```
|
||||
2. `env.js`中填入`COOKIE`和推送参数
|
||||
3. `my_config.js`中自定义设置
|
||||
4. 在当前目录下打开终端运行可执行文件`lottery`
|
||||
|
||||
[下载](https://github.com/shanmiteko/LotteryAutoScript/releases)
|
||||
|
||||
[cnpmjs镜像下载](https://github.com.cnpmjs.org/shanmiteko/LotteryAutoScript/releases)
|
||||
|
||||
[Fastgit镜像下载](https://hub.fastgit.org/shanmiteko/LotteryAutoScript/releases)
|
||||
|
||||
|
||||
#### 搭建运行环境
|
||||
#### 以源码方式运行
|
||||
|
||||
<details>
|
||||
|
||||
@ -234,4 +233,6 @@ rm -rf lottery/
|
||||
----------------------------------------
|
||||
|
||||
## 设置说明
|
||||
详见[env.example.js](./env.example.js)文件内部注释
|
||||
|
||||
详见[my_config.example.js](./my_config.example.js)文件内部注释
|
||||
@ -173,7 +173,7 @@ class Monitor extends Public {
|
||||
const isFollowed = (new RegExp(uid)).test(self.attentionList);
|
||||
if (only_followed && !isFollowed) continue;
|
||||
/* 判断是否转发过 */
|
||||
const isRelay = await MyStorage.searchDyid(dyid);
|
||||
const isRelayed = await MyStorage.searchDyid(dyid);
|
||||
/* 获取黑名单并去重合并 */
|
||||
const { blacklist: remote_blacklist } = GlobalVar.get("remoteconfig");
|
||||
const new_blacklist = remote_blacklist ?
|
||||
@ -182,7 +182,7 @@ class Monitor extends Public {
|
||||
if ((new RegExp(dyid + '|' + uid)).test(new_blacklist)) continue;
|
||||
onelotteryinfo.uid = [] /**初始化待关注列表 */
|
||||
if (!isFollowed) onelotteryinfo.uid.push(uid);
|
||||
if (!isRelay) {
|
||||
if (!isRelayed) {
|
||||
onelotteryinfo.dyid = dyid;
|
||||
let RandomStr = Base.getRandomOne(config.relay);
|
||||
let new_ctrl = [];
|
||||
|
||||
@ -86,13 +86,12 @@ class Public {
|
||||
*/
|
||||
modifyDynamicRes(res) {
|
||||
const strToJson = Base.strToJson,
|
||||
jsonRes = strToJson(res),
|
||||
{ data } = jsonRes;
|
||||
if (jsonRes.code !== 0) {
|
||||
Base.tooltip.warn('获取动态数据出错,可能是访问太频繁');
|
||||
{ data, code } = strToJson(res);
|
||||
if (code !== 0) {
|
||||
Base.tooltip.warn('获取动态数据出错,可能是访问太频繁 \n' + res);
|
||||
return null;
|
||||
}
|
||||
/* 字符串防止损失精度 */
|
||||
/* 字符串offset防止损失精度 */
|
||||
const offset = typeof data.offset === 'string' ? data.offset : /(?<=next_offset":)[0-9]*/.exec(res)[0]
|
||||
, next = {
|
||||
has_more: data.has_more,
|
||||
@ -108,7 +107,7 @@ class Public {
|
||||
/**
|
||||
* 空动态无cards
|
||||
*/
|
||||
const Cards = data.cards;
|
||||
const Cards = data.cards || [];
|
||||
Cards.forEach(onecard => {
|
||||
/**临时储存单个动态中的信息 */
|
||||
let obj = {};
|
||||
@ -116,38 +115,56 @@ class Public {
|
||||
, { info, card: user_profile_card } = desc.user_profile
|
||||
, { official_verify } = user_profile_card
|
||||
, cardToJson = strToJson(card);
|
||||
obj.uid = info.uid; /* 转发者的UID */
|
||||
obj.uname = info.uname;/* 转发者的name */
|
||||
obj.official_verify = official_verify.type > -1 ? true : false; /* 是否官方号 */
|
||||
obj.createtime = desc.timestamp /* 动态的ts10 */
|
||||
obj.type = desc.type /* 动态类型 */
|
||||
obj.rid_str = desc.rid_str.length > 12 ? desc.dynamic_id_str : desc.rid_str;/* 用于发送评论 */
|
||||
obj.orig_type = desc.orig_type /* 源动态类型 */
|
||||
obj.dynamic_id = desc.dynamic_id_str; /* 转发者的动态ID !!!!此为大数需使用字符串值,不然JSON.parse()会有丢失精度 */
|
||||
/* 转发者的UID */
|
||||
obj.uid = info.uid;
|
||||
/* 转发者的name */
|
||||
obj.uname = info.uname;
|
||||
/* 是否官方号 */
|
||||
obj.official_verify = official_verify.type > -1 ? true : false;
|
||||
/* 动态的ts10 */
|
||||
obj.createtime = desc.timestamp
|
||||
/* 动态类型 */
|
||||
obj.type = desc.type
|
||||
/* 用于发送评论 */
|
||||
obj.rid_str = desc.rid_str.length > 12 ? desc.dynamic_id_str : desc.rid_str;
|
||||
/* 源动态类型 */
|
||||
obj.orig_type = desc.orig_type
|
||||
/* 转发者的动态ID !!!!此为大数需使用字符串值,不然JSON.parse()会有丢失精度 */
|
||||
obj.dynamic_id = desc.dynamic_id_str;
|
||||
const { extension, extend_json } = onecard;
|
||||
obj.ctrl = (typeof extend_json === 'undefined') ? [] : strToJson(extend_json).ctrl || []; /* 定位@信息 */
|
||||
obj.hasOfficialLottery = (typeof extension === 'undefined') ? false : typeof extension.lott === 'undefined' ? false : true; /* 是否有官方抽奖 */
|
||||
/* 定位@信息 */
|
||||
obj.ctrl = (typeof extend_json === 'undefined') ? [] : strToJson(extend_json).ctrl || [];
|
||||
/* 是否有官方抽奖 */
|
||||
obj.hasOfficialLottery = (typeof extension === 'undefined') ? false : typeof extension.lott === 'undefined' ? false : true;
|
||||
const item = cardToJson.item || {};
|
||||
obj.description = item.content || item.description || ''; /* 转发者的描述 */
|
||||
/* 转发者的描述 */
|
||||
obj.description = item.content || item.description || '';
|
||||
if (obj.type === 1) {
|
||||
obj.origin_uid = desc.origin.uid; /* 被转发者的UID */
|
||||
obj.origin_rid_str = desc.origin.rid_str.length > 12 ? desc.origin.dynamic_id_str : desc.origin.rid_str; /* 被转发者的rid(用于发评论) */
|
||||
obj.origin_dynamic_id = desc.orig_dy_id_str; /* 被转发者的动态的ID !!!!此为大数需使用字符串值,不然JSON.parse()会有丢失精度 */
|
||||
/* 被转发者的UID */
|
||||
obj.origin_uid = desc.origin.uid;
|
||||
/* 被转发者的rid(用于发评论) */
|
||||
obj.origin_rid_str = desc.origin.rid_str.length > 12 ? desc.origin.dynamic_id_str : desc.origin.rid_str;
|
||||
/* 被转发者的动态的ID !!!!此为大数需使用字符串值,不然JSON.parse()会有丢失精度 */
|
||||
obj.origin_dynamic_id = desc.orig_dy_id_str;
|
||||
const { origin_extension, origin_user } = cardToJson;
|
||||
try {
|
||||
/* 是否官方号 */
|
||||
obj.origin_official_verify = typeof origin_user === 'undefined' ?
|
||||
false : origin_user.card.official_verify.type < 0 ?
|
||||
false : true; /* 是否官方号 */
|
||||
} catch (error) {
|
||||
false : true;
|
||||
} catch (_) {
|
||||
obj.origin_official_verify = false;
|
||||
}
|
||||
/* 是否有官方抽奖 */
|
||||
obj.origin_hasOfficialLottery = typeof origin_extension === 'undefined' ?
|
||||
false : typeof origin_extension.lott === 'undefined' ?
|
||||
false : true; /* 是否有官方抽奖 */
|
||||
false : true;
|
||||
const origin = cardToJson.origin || '{}';
|
||||
const { user, item } = strToJson(origin);
|
||||
obj.origin_uname = typeof user === 'undefined' ? '' : user.name || user.uname || ''; /* 被转发者的name */
|
||||
obj.origin_description = typeof item === 'undefined' ? '' : item.content || item.description || ''; /* 被转发者的描述 */
|
||||
/* 被转发者的name */
|
||||
obj.origin_uname = typeof user === 'undefined' ? '' : user.name || user.uname || '';
|
||||
/* 被转发者的描述 */
|
||||
obj.origin_description = typeof item === 'undefined' ? '' : item.content || item.description || '';
|
||||
}
|
||||
array.push(obj);
|
||||
});
|
||||
@ -245,4 +262,5 @@ class Public {
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = Public;
|
||||
|
||||
module.exports = Public;
|
||||
13
main.js
13
main.js
@ -39,6 +39,7 @@ async function main() {
|
||||
|
||||
if (await checkCookie(NUMBER)) {
|
||||
const mode = process.env.lottery_mode;
|
||||
const help_msg = "用法: lottery [OPTIONS]\n\nOPTIONS:\n\tstart 启动抽奖\n\tcheck 中奖检查\n\tclear 清理动态和关注\n";
|
||||
switch (mode) {
|
||||
case 'start':
|
||||
tooltip.log('开始参与抽奖');
|
||||
@ -55,9 +56,16 @@ async function main() {
|
||||
tooltip.log('清理动态完毕');
|
||||
}
|
||||
break;
|
||||
case 'help':
|
||||
console.log(help_msg);
|
||||
break;
|
||||
case undefined:
|
||||
console.log(`错误: 未提供以下参数\n\t[OPTIONS]\n`);
|
||||
console.log(help_msg);
|
||||
break
|
||||
default:
|
||||
console.log(`Usage: lottery-in-bili [OPTIONS]`)
|
||||
console.log(`错误OPTIONS: ${mode} 正确OPTIONS: start,check,clear`);
|
||||
console.log(`错误: 提供了错误的[OPTIONS] -> ${mode}\n`)
|
||||
console.log(help_msg);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
@ -85,6 +93,7 @@ async function main() {
|
||||
/**OPTIONS */
|
||||
process.env.lottery_mode = process.argv[2]
|
||||
await main();
|
||||
tooltip.log('5秒后自动退出');
|
||||
await delay(5 * 1000);
|
||||
process.exit(0)
|
||||
})()
|
||||
@ -207,5 +207,4 @@ module.exports = {
|
||||
config_1: {},
|
||||
config_2: {},
|
||||
config_3: {}
|
||||
}
|
||||
|
||||
}
|
||||
@ -6,33 +6,33 @@ $ENV_FILE = "env.js"
|
||||
|
||||
$TARGET_DIR = ".\dist"
|
||||
|
||||
$WIN_BIN = "lottery-in-bili-win.exe"
|
||||
$LINUX_BIN = "lottery-in-bili-linux"
|
||||
$MACOS_BIN = "lottery-in-bili-macos"
|
||||
|
||||
$WIN_X64 = "nlts-win-x64"
|
||||
$LINUX_X64 = "nlts-linux-x64"
|
||||
$MACOS_X64 = "nlts-macos-x64"
|
||||
|
||||
$MAP = @{ $WIN_X64 = $WIN_BIN; $LINUX_X64 = $LINUX_BIN; $MACOS_X64 = $MACOS_BIN}
|
||||
$TRIARR = @(
|
||||
@("lottery-in-bili-win.exe", "lottery.exe", "nlts-win-x64"),
|
||||
@("lottery-in-bili-linux", "lottery", "nlts-linux-x64"),
|
||||
@("lottery-in-bili-macos", "lottery", "nlts-macos-x64")
|
||||
)
|
||||
|
||||
Copy-Item -Path $TEMPLATE_ENV_FILE -Destination $TARGET_DIR -Force
|
||||
Copy-Item -Path $TEMPLATE_CONFIG_FILE -Destination $TARGET_DIR -Force
|
||||
|
||||
Set-Location -Path $TARGET_DIR
|
||||
|
||||
# 重命名文件
|
||||
Move-Item -Path $TEMPLATE_ENV_FILE -Destination $ENV_FILE -Force
|
||||
Move-Item -Path $TEMPLATE_CONFIG_FILE -Destination $CONFIG_FILE -Force
|
||||
|
||||
foreach($X64 in $MAP.Keys) {
|
||||
$BIN = $MAP[$X64]
|
||||
if (!(Test-Path $X64 -PathType Container)) {
|
||||
New-Item -ItemType Directory -Force -Path $X64
|
||||
}
|
||||
Move-Item -Path $BIN -Destination $X64 -Force
|
||||
Copy-Item -Path $ENV_FILE -Destination $X64 -Force
|
||||
Copy-Item -Path $CONFIG_FILE -Destination $X64 -Force
|
||||
Compress-Archive -Path $X64 -DestinationPath $X64 -Force
|
||||
foreach ($TRI in $TRIARR) {
|
||||
$PROTO_BIN,$BIN,$DIR = $TRI
|
||||
|
||||
New-Item -ItemType Directory -Force -Path $DIR
|
||||
|
||||
Move-Item -Path $PROTO_BIN -Destination $BIN -Force
|
||||
|
||||
Move-Item -Path $BIN -Destination $DIR -Force
|
||||
Copy-Item -Path $ENV_FILE -Destination $DIR -Force
|
||||
Copy-Item -Path $CONFIG_FILE -Destination $DIR -Force
|
||||
|
||||
Compress-Archive -Path $DIR -DestinationPath "$($DIR)-$(Get-Date -Format "yyyyMMd")" -Force
|
||||
}
|
||||
|
||||
Remove-Item -Path $ENV_FILE
|
||||
|
||||
Loading…
Reference in New Issue
Block a user