mirror of
https://github.com/shanmiteko/LotteryAutoScript.git
synced 2026-06-04 21:01:17 +08:00
fix: 增加dyid长度校验
This commit is contained in:
parent
f5a8ad75d2
commit
8bc053b352
Binary file not shown.
|
Before Width: | Height: | Size: 210 KiB After Width: | Height: | Size: 123 KiB |
@ -32,6 +32,9 @@ const MyStorage = {
|
||||
*/
|
||||
updateDyid: (dyid) => {
|
||||
log.info('更新dyid', `写入${dyid}`);
|
||||
if (dyid.length !== Util.dyid_length) {
|
||||
log.error('更新dyid', `dyid(${dyid})长度不为18 若出现此问题请即时通知开发者`)
|
||||
}
|
||||
return new Promise((resolve) => {
|
||||
const ws = Util.writeDyidFile(Number(process.env.NUMBER));
|
||||
ws.write(dyid + ',', () => {
|
||||
|
||||
@ -303,31 +303,38 @@ class Public {
|
||||
let { length } = dyids,
|
||||
/**判断此专栏是否查看过的权重 */
|
||||
weight = 8;
|
||||
log.info('获取动态', `提取专栏中提及的dyid(${length})`)
|
||||
log.info('获取动态', `提取专栏(${cv})中提及的dyid(${length})`)
|
||||
for (const dyid of dyids) {
|
||||
if (await MyStorage.searchDyid(dyid)) weight--;
|
||||
if (weight >= 0) {
|
||||
log.info('获取动态', `查看动态(${dyid})的细节 (${length--})`)
|
||||
const res = await BiliAPI.getOneDynamicByDyid(dyid)
|
||||
, { code, data } = Util.strToJson(res)
|
||||
, { card } = data;
|
||||
|
||||
if (code !== 0) {
|
||||
log.error('获取动态', '获取动态数据出错,可能是访问太频繁 \n' + res)
|
||||
break
|
||||
}
|
||||
|
||||
await Util.delay(2000)
|
||||
|
||||
if (card) {
|
||||
dyinfos.push(parseDynamicCard(card));
|
||||
}
|
||||
} else {
|
||||
log.info('获取动态', '其中已有8条动态曾经转过, 该专栏或已查看, 故中止')
|
||||
const isRelayed = await MyStorage.searchDyid(dyid);
|
||||
weight = isRelayed ? weight - 1 : 8;
|
||||
if (weight < 0) {
|
||||
log.info('获取动态', '连续8条动态曾经转过,该专栏或已查看,故中止')
|
||||
dyinfos = []
|
||||
break
|
||||
}
|
||||
if (dyid.length === Util.dyid_length) {
|
||||
if (!isRelayed) {
|
||||
log.info('获取动态', `查看动态(${dyid})的细节 (${length--})`)
|
||||
const res = await BiliAPI.getOneDynamicByDyid(dyid)
|
||||
, { code, data } = Util.strToJson(res)
|
||||
, { card } = data;
|
||||
|
||||
if (code !== 0) {
|
||||
log.error('获取动态', '获取动态数据出错,可能是访问太频繁 \n' + res)
|
||||
break
|
||||
}
|
||||
|
||||
await Util.delay(2000)
|
||||
|
||||
if (card) {
|
||||
dyinfos.push(parseDynamicCard(card));
|
||||
}
|
||||
} else {
|
||||
log.info('获取动态', `动态(${dyid})已转发过 (${length--})`)
|
||||
}
|
||||
} else {
|
||||
log.warn('获取动态', `动态(${dyid})无效 (${length--})`)
|
||||
}
|
||||
}
|
||||
}
|
||||
const fomatdata = dyinfos.map(o => {
|
||||
|
||||
@ -229,6 +229,10 @@ const Util = {
|
||||
})
|
||||
});
|
||||
},
|
||||
/**
|
||||
* dyid长度
|
||||
*/
|
||||
dyid_length: 18,
|
||||
/**
|
||||
* 读取dyid文件
|
||||
* @param {number} num
|
||||
@ -236,7 +240,7 @@ const Util = {
|
||||
*/
|
||||
readDyidFile(num) {
|
||||
const fpath = num < 2 ? path.join(this.dyids_dir, 'dyid.txt') : path.join(this.dyids_dir, `dyid${num}.txt`);
|
||||
return fs.createReadStream(fpath, { encoding: 'utf8', highWaterMark: 19 * 1000 })
|
||||
return fs.createReadStream(fpath, { encoding: 'utf8', highWaterMark: (this.dyid_length + 1) * 1000 })
|
||||
},
|
||||
/**
|
||||
* 追加dyid
|
||||
|
||||
Loading…
Reference in New Issue
Block a user