From ef969bb2c2021301ee2cc59f031c224803529286 Mon Sep 17 00:00:00 2001 From: shanmite Date: Thu, 23 Dec 2021 15:19:07 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=AF=8F=E7=BB=84=E6=98=BE=E7=A4=BA?= =?UTF-8?q?=E5=8A=A8=E6=80=81=E8=BD=AC=E5=8F=91=E6=95=B0(#97)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/core/monitor.js | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/lib/core/monitor.js b/lib/core/monitor.js index 47ac483..3ea92e5 100644 --- a/lib/core/monitor.js +++ b/lib/core/monitor.js @@ -103,11 +103,12 @@ class Monitor extends Searcher { if (len) { let + status = 0, is_exception = 0, - is_outof_maxfollow = 0; + is_outof_maxfollow = 0, + relayed_nums = 0; for (const [index, lottery] of shuffle(allLottery).entries()) { - let status = 0; - + let is_shutdown = false; if ( is_outof_maxfollow && lottery.uid.length @@ -121,7 +122,8 @@ class Monitor extends Searcher { let { ts } = await bili.getLotteryNotice(lottery.dyid); const ts_10 = Date.now() / 1000; if (ts < 0) { - return 6001 + status = 6001 + break; } if (ts < ts_10) { log.info('过滤', '已过开奖时间') @@ -140,7 +142,8 @@ class Monitor extends Searcher { if (minfollower > 0) { const followerNum = await bili.getUserInfo(lottery.uid[0]); if (followerNum < 0) { - return 7001 + status = 7001 + break; } if (followerNum < minfollower) { log.info('过滤', `粉丝数(${followerNum})小于指定数量`) @@ -165,6 +168,8 @@ class Monitor extends Searcher { status = await this.go(lottery) switch (status) { case 0: + relayed_nums += 1 + break; case 1002: case 1003: case 1004: @@ -190,17 +195,20 @@ class Monitor extends Searcher { case 2001: case 3001: case 5001: - return status + is_shutdown = true + break; } + if (is_shutdown) break + d_storage.updateDyid(lottery.dyid) await delay(wait * (Math.random() + 0.5)); } - log.info('抽奖', '开始转发下一组动态'); + log.info('抽奖', `本轮共转发${relayed_nums}条`); return is_exception || is_outof_maxfollow - || 0 + || status } else { log.info('抽奖', '无未转发抽奖'); return 0