diff --git a/env.example.bat b/env.example.bat index 0b2ba61..29f1daf 100644 --- a/env.example.bat +++ b/env.example.bat @@ -1,22 +1,21 @@ -@REM 下载代码到本地 -@REM 安装node(http://nodejs.cn/download/) - -@REM Windows -@REM 此批处理脚本为本地运行代码前设置环境变量时所需 -@REM 使用时先将本文件名改成env.bat -@REM 填入相应的值 -@REM 需注意 % 要转义为 %% -@REM npm run test_start 启动脚本 -@REM npm run test_check 检查是否中奖(只查看两个小时内的奖) -@REM npm run test_clear 清空动态和关注(须set CLEAR=true) -@REM 运行成功后在lib文件夹下会生成一个GlobalVar.json文件和dyid.txt文件 -@REM 换参数时须先将GlobalVar.json文件删除 -@REM 如果要运行多账号只能复制本项目并依次独立运行 +:: 下载代码到本地 +:: 安装node(http://nodejs.cn/download/) +:: 此批处理脚本为本地运行代码前设置环境变量时所需 +:: 使用时先将本文件名改成env.bat +:: 填入相应的值 ==需注意 % 要转义为 %%== +:: 进入文件夹打开CMD +:: npm run test_start 启动脚本 +:: npm run test_check 检查是否中奖(只查看两个小时内的奖) +:: npm run test_clear 清空动态和关注(须set CLEAR=true) +:: 运行成功后在lib文件夹下会生成一个GlobalVar.json文件和dyid.txt文件 +:: ==换参数时须先将GlobalVar.json文件删除== +:: 如果要运行多账号只能复制本项目并依次独立运行 +:: ==注意运行时请去掉注释== set COOKIE= set NUMBER=1 set CLEAR= set LOCALLAUNCH=true -@REM 推送所需环境变量(可不填) +:: 推送所需环境变量(可不填) set SCKEY= set SENDKEY= set QQ_SKEY= diff --git a/lib/Base.js b/lib/Base.js index aa719d2..688e2e1 100644 --- a/lib/Base.js +++ b/lib/Base.js @@ -20,11 +20,11 @@ const Base = { const obj = JSON.parse(str); return typeof obj === 'object' ? obj : false } catch (_) { - console.log(str); + this.tooltip.log(str); return false; } } else { - console.log(`${str}\nIt is not a string!`); + this.tooltip.log(`${str}\nIt is not a string!`); return false; } })(params); @@ -110,6 +110,15 @@ const Base = { }) }); }, + /**提示信息 */ + tooltip: { + log: (msg) => { + console.log("%s: %s", new Date().toLocaleString(), msg) + }, + warn: (msg) => { + console.log("%s: %s", new Date().toLocaleString(), msg) + } + }, /** * 提取开奖信息 * @param {string} des 描述 @@ -180,7 +189,7 @@ const Base = { } }, failure: err => { - console.log('获取远程设置错误: ' + err); + this.tooltip.log('获取远程设置错误: ' + err); resolve(JSON.parse('{}')); } }) diff --git a/lib/BiliAPI.js b/lib/BiliAPI.js index 2ddfb27..013d4c9 100644 --- a/lib/BiliAPI.js +++ b/lib/BiliAPI.js @@ -102,7 +102,7 @@ const BiliAPI = { success: responseText => { let res = Base.strToJson(responseText); if (res.code === 0) { - console.log('[获取一页私信](20)成功 end_ts->' + ts_16); + Base.tooltip.log('[获取一页私信](20)成功 end_ts->' + ts_16); /**@type {Array} */ const sessions = res.data.session_list || []; const has_more = res.data.has_more; @@ -113,7 +113,7 @@ const BiliAPI = { }) resolve({ has_more, data }) } else { - console.log(`[获取私信]失败\n${responseText}`); + Base.tooltip.log(`[获取私信]失败\n${responseText}`); resolve({ has_more: 0, data: [] }); } } @@ -139,9 +139,9 @@ const BiliAPI = { success: responseText => { let res = Base.strToJson(responseText); if (res.code === 0) { - console.log(`[私信已读]成功 -> talker_id: ${talker_id}`); + Base.tooltip.log(`[私信已读]成功 -> talker_id: ${talker_id}`); } else { - console.log(`[私信已读]失败 -> talker_id: ${talker_id}`); + Base.tooltip.log(`[私信已读]失败 -> talker_id: ${talker_id}`); } } }) @@ -162,10 +162,10 @@ const BiliAPI = { success: responseText => { let res = Base.strToJson(responseText); if (res.code === 0) { - console.log('[获取关注列表]成功'); + Base.tooltip.log('[获取关注列表]成功'); resolve(res.data.list.toString()); } else { - console.log(`[获取关注列表]失败\n${responseText}`); + Base.tooltip.log(`[获取关注列表]失败\n${responseText}`); resolve(null); } } @@ -217,7 +217,7 @@ const BiliAPI = { success: responseText => { const res = Base.strToJson(responseText); if (res.code !== 0) { - console.log('获取TagID失败'); + Base.tooltip.log('获取TagID失败'); resolve(-1); } resolve(res.data.tag_id); @@ -284,7 +284,7 @@ const BiliAPI = { if (res.code === 0) { resolve(res.data.follower); } else { - console.log('获取关注数出错,可能是访问过频繁'); + Base.tooltip.log('获取关注数出错,可能是访问过频繁'); resolve(0); } } @@ -335,7 +335,7 @@ const BiliAPI = { isMe: isMe }); } else { - console.log(`获取开奖信息失败\n${responseText}`); + Base.tooltip.log(`获取开奖信息失败\n${responseText}`); resolve({ ts: 0, text: '获取开奖信息失败', @@ -370,10 +370,10 @@ const BiliAPI = { success: responseText => { /* 重复关注code also equal 0 */ if (/^{"code":0/.test(responseText)) { - console.log('[自动关注]关注+1'); + Base.tooltip.log('[自动关注]关注+1'); resolve(1); } else { - console.log(`[自动关注]失败 尝试切换线路\n${responseText}`); + Base.tooltip.log(`[自动关注]失败 尝试切换线路\n${responseText}`); Ajax.post({ url: 'https://api.vc.bilibili.com/feed/v1/feed/SetUserFollow', hasCookies: true, @@ -385,10 +385,10 @@ const BiliAPI = { }, success: responseText => { if (/^{"code":0/.test(responseText)) { - console.log('[自动关注]关注+1'); + Base.tooltip.log('[自动关注]关注+1'); resolve(1); } else { - console.log(`[自动关注]失败 尝试切换另一条线路\n${responseText}`); + Base.tooltip.log(`[自动关注]失败 尝试切换另一条线路\n${responseText}`); Ajax.post({ url: 'https://api.bilibili.com/x/relation/batch/modify', hasCookies: true, @@ -401,10 +401,10 @@ const BiliAPI = { }, success: responseText => { if (/^{"code":0/.test(responseText)) { - console.log('[自动关注]关注+1'); + Base.tooltip.log('[自动关注]关注+1'); resolve(1); } else { - console.log(`[自动关注]失败\n${responseText}`); + Base.tooltip.log(`[自动关注]失败\n${responseText}`); resolve(0); } } @@ -437,10 +437,10 @@ const BiliAPI = { success: responseText => { /* 重复移动code also equal 0 */ if (/^{"code":0/.test(responseText)) { - console.log('[移动分区]up主分区移动成功'); + Base.tooltip.log('[移动分区]up主分区移动成功'); resolve(1); } else { - console.log(`[移动分区]up主分区移动失败\n${responseText}`); + Base.tooltip.log(`[移动分区]up主分区移动失败\n${responseText}`); resolve(0); } } @@ -468,10 +468,10 @@ const BiliAPI = { success: responseText => { const res = Base.strToJson(responseText); if (res.code === 0) { - console.log('[自动取关]取关成功'); + Base.tooltip.log('[自动取关]取关成功'); resolve(true) } else { - console.log(`[自动取关]取关失败\n${responseText}`); + Base.tooltip.log(`[自动取关]取关失败\n${responseText}`); resolve(false) } } @@ -497,10 +497,10 @@ const BiliAPI = { }, success: responseText => { if (/^{"code":0/.test(responseText)) { - console.log('[自动点赞]点赞成功'); + Base.tooltip.log('[自动点赞]点赞成功'); resolve(1); } else { - console.log(`[转发动态]点赞失败\n${responseText}`); + Base.tooltip.log(`[转发动态]点赞失败\n${responseText}`); resolve(0); } } @@ -536,10 +536,10 @@ const BiliAPI = { }, success: responseText => { if (/^{"code":0/.test(responseText)) { - console.log('[转发动态]成功转发一条动态'); + Base.tooltip.log('[转发动态]成功转发一条动态'); resolve(1); } else { - console.log(`[转发动态]转发动态失败\n${responseText}`); + Base.tooltip.log(`[转发动态]转发动态失败\n${responseText}`); resolve(0); } } @@ -582,9 +582,9 @@ const BiliAPI = { data, success: responseText => { if (/^{"code":0/.test(responseText)) { - console.log('[发布动态]成功创建一条随机内容的动态'); + Base.tooltip.log('[发布动态]成功创建一条随机内容的动态'); } else { - console.warn(`[发布动态]发布动态失败\n${responseText}`); + Base.tooltip.warn(`[发布动态]发布动态失败\n${responseText}`); } } }) @@ -606,10 +606,10 @@ const BiliAPI = { }, success: responseText => { if (/^{"code":0/.test(responseText)) { - console.log('[删除动态]成功删除一条动态'); + Base.tooltip.log('[删除动态]成功删除一条动态'); resolve(true); } else { - console.log(`[删除动态]删除动态失败\n${responseText}`); + Base.tooltip.log(`[删除动态]删除动态失败\n${responseText}`); resolve(false); } } @@ -642,13 +642,13 @@ const BiliAPI = { success: responseText => { const res = Base.strToJson(responseText); if (res.code === 0) { - show ? console.log('[自动评论]评论成功') : void 0; + show ? Base.tooltip.log('[自动评论]评论成功') : void 0; resolve(1); } else if (res.code === -404) { - show ? console.log('[自动评论]原动态已删除') : void 0; + show ? Base.tooltip.log('[自动评论]原动态已删除') : void 0; resolve(1); } else { - show ? console.log('[自动评论]评论失败') : void 0; + show ? Base.tooltip.log('[自动评论]评论失败') : void 0; resolve(0); } } @@ -680,7 +680,7 @@ const BiliAPI = { success: responseText => { let obj = Base.strToJson(responseText); if (obj.code === 0) { - console.log('[新建分区]分区新建成功'); + Base.tooltip.log('[新建分区]分区新建成功'); let tagid = obj.data.tagid; /* 获取tagid */ resolve(tagid); } @@ -719,10 +719,10 @@ const BiliAPI = { res.data.forEach(d => { uids.push(d.mid); }) - console.log(`[获取分组${tagid}]成功获取取关分区列表${n}`); + Base.tooltip.log(`[获取分组${tagid}]成功获取取关分区列表${n}`); resolve(uids) } else { - console.warn(`[获取分组]获取取关分区列表失败\n${responseText}`); + Base.tooltip.warn(`[获取分组]获取取关分区列表失败\n${responseText}`); resolve(uids) } } diff --git a/lib/GithubAPI.js b/lib/GithubAPI.js index 6318826..7cdaf7c 100644 --- a/lib/GithubAPI.js +++ b/lib/GithubAPI.js @@ -1,6 +1,6 @@ const { createReadStream, createWriteStream } = require('fs') const unzip = require('unzipper'); -const { strToJson } = require("./Base") +const { strToJson, tooltip } = require("./Base") const { HttpRequest } = require("./HttpRequest") const { GITHUB_REPOSITORY } = process.env; @@ -32,11 +32,11 @@ const GihubAPI = { resolve(data.artifacts[0]) } else { resolve({}) - console.log('之前无构件'); + tooltip.log('之前无构件'); } }, failure: err => { - console.log(err); + tooltip.log(err); resolve({}) } }) @@ -66,15 +66,15 @@ const GihubAPI = { const wtbs = createWriteStream('dyid.zip'); res.resStream.on('data', chuck => { recv_length += chuck.length - console.log(`已收到:${recv_length} Bytes`) + tooltip.log(`已收到:${recv_length} Bytes`) }) res.resStream.pipe(wtbs) wtbs.on('finish', () => { - console.log('下载完成开始解压') + tooltip.log('下载完成开始解压') createReadStream('dyid.zip').pipe(unzip.Extract({ path: 'lib' }).on('close', () => { - console.log('解压完成') + tooltip.log('解压完成') resolve(true) })) }).on('error', () => { @@ -83,7 +83,7 @@ const GihubAPI = { }) }, failure: err => { - console.log(err); + tooltip.log(err); resolve(false) } }) @@ -114,7 +114,7 @@ const GihubAPI = { } }, failure: err => { - console.log(err); + tooltip.log(err); resolve(true) } }) diff --git a/lib/Monitor.js b/lib/Monitor.js index 49d8152..a8e2fde 100644 --- a/lib/Monitor.js +++ b/lib/Monitor.js @@ -25,8 +25,8 @@ class Monitor extends Public { * 初始化 */ async init() { - if (config.model === '00') { console.log('已关闭所有转发行为'); return; } - if (GlobalVar.Lottery.length === 0) { console.log('抽奖信息为空'); return; } + if (config.model === '00') { Base.tooltip.log('已关闭所有转发行为'); return; } + if (GlobalVar.Lottery.length === 0) { Base.tooltip.log('抽奖信息为空'); return; } this.tagid = await BiliAPI.checkMyPartition(); /* 检查关注分区 */ this.attentionList = await BiliAPI.getAttentionList(GlobalVar.myUID); /* 获取关注列表 */ await this.startLottery(); @@ -46,10 +46,10 @@ class Monitor extends Public { dyids.push(Lottery.dyid); } if (dyids.length) MyStorage.updateDyid(dyids.toString()) - console.log('开始转发下一组动态'); + Base.tooltip.log('开始转发下一组动态'); } else { status = 1; - console.log('无未转发抽奖'); + Base.tooltip.log('无未转发抽奖'); } status ? eventBus.emit('Turn_on_the_Monitor') : eventBus.emit('Turn_off_the_Monitor'); @@ -190,7 +190,7 @@ class Monitor extends Public { const send = () => BiliAPI.sendChat(rid, Base.getRandomStr(config.chat), type); let [status, times] = [0, 0]; do { - if (times > 0) console.log('等一会儿再发送评论'); + if (times > 0) Base.tooltip.log('等一会儿再发送评论'); times++; status = await send(); if (status === 0) await Base.delay(5000 * 2 ** (times - 1)) diff --git a/lib/MyStorage.js b/lib/MyStorage.js index e92af71..6f235f0 100644 --- a/lib/MyStorage.js +++ b/lib/MyStorage.js @@ -13,9 +13,9 @@ const MyStorage = { if (size_in_bytes) { GihubAPI.downloadArtifacts(PAT, id).then(async status => { if (status) { - console.log('存储初始化成功'); + Base.tooltip.log('存储初始化成功'); } else { - console.log('存储初始化失败'); + Base.tooltip.log('存储初始化失败'); await ifNotExistCreateFile('dyid.txt') } resolve() @@ -45,7 +45,7 @@ const MyStorage = { resolve(status) }) rs.on('error', err => { - console.log(err) + Base.tooltip.log(err) resolve(status) }) }) @@ -55,7 +55,7 @@ const MyStorage = { * @param {string} dyid */ updateDyid: (dyid) => { - console.log('写入已转发过的动态信息'); + Base.tooltip.log('写入已转发过的动态信息'); return new Promise((resolve) => { const ws = Base.writeDyidFile(); ws.write(dyid + ',', () => { @@ -63,7 +63,7 @@ const MyStorage = { resolve() }) ws.on('error', err => { - console.log(err) + Base.tooltip.log(err) resolve() }) }); diff --git a/lib/Public.js b/lib/Public.js index 94107c2..1857491 100644 --- a/lib/Public.js +++ b/lib/Public.js @@ -37,7 +37,7 @@ class Public { * @returns {Promise<{allModifyDynamicResArray: UsefulDynamicInfo[];offset: string}>} 获取前 `pages*12` 个动态信息 */ async checkAllDynamic(hostuid, pages, time = 0, _offset = '0') { - console.log(`准备读取${pages}页自己的动态信息`); + Base.tooltip.log(`准备读取${pages}页自己的动态信息`); const mDR = this.modifyDynamicRes, getOneDynamicInfoByUID = BiliAPI.getOneDynamicInfoByUID, curriedGetOneDynamicInfoByUID = Base.curryify(getOneDynamicInfoByUID); /* 柯里化的请求函数 */ @@ -52,7 +52,7 @@ class Public { let allModifyDynamicResArray = []; let offset = _offset; for (let i = 0; i < pages; i++) { - console.log(`正在读取第${i + 1}页动态`); + Base.tooltip.log(`正在读取第${i + 1}页动态`); let OneDynamicInfo = await hadUidGetOneDynamicInfoByUID(offset); const mDRdata = mDR(OneDynamicInfo); if (mDRdata === null) { @@ -66,11 +66,11 @@ class Public { nextinfo = mDRdata.nextinfo; if (nextinfo.has_more === 0) { offset = nextinfo.next_offset; - console.log(`成功读取${i + 1}页信息(已经是最后一页了故无法读取更多)`); + Base.tooltip.log(`成功读取${i + 1}页信息(已经是最后一页了故无法读取更多)`); break; } else { allModifyDynamicResArray.push.apply(allModifyDynamicResArray, mDRArry); - i + 1 < pages ? console.log(`开始读取第${i + 2}页动态信息`) : console.log(`${pages}页信息全部成功读取完成`); + i + 1 < pages ? Base.tooltip.log(`开始读取第${i + 2}页动态信息`) : Base.tooltip.log(`${pages}页信息全部成功读取完成`); offset = nextinfo.next_offset; } await Base.delay(time); @@ -88,7 +88,7 @@ class Public { jsonRes = strToJson(res), { data } = jsonRes; if (jsonRes.code !== 0) { - console.warn('获取动态数据出错,可能是访问太频繁'); + Base.tooltip.warn('获取动态数据出错,可能是访问太频繁'); return null; } /* 字符串防止损失精度 */ @@ -102,7 +102,7 @@ class Public { */ let array = []; if (next.has_more === 0) { - console.log('动态数据读取完毕'); + Base.tooltip.log('动态数据读取完毕'); } else { /** * 空动态无cards @@ -182,12 +182,12 @@ class Public { hotdy = await BiliAPI.getHotDynamicInfoByTagID(tag_id), modDR = self.modifyDynamicRes(hotdy); if (modDR === null) return null; - console.log(`开始获取带话题#${tag_name}#的动态信息`); - console.log('成功获取热门动态'); + Base.tooltip.log(`开始获取带话题#${tag_name}#的动态信息`); + Base.tooltip.log('成功获取热门动态'); let mDRdata = modDR.modifyDynamicResArray; /* 热门动态 */ let next_offset = modDR.nextinfo.next_offset; for (let index = 0; index < 3; index++) { - console.log(`成功读取${index + 1}页动态`); + Base.tooltip.log(`成功读取${index + 1}页动态`); const newdy = await BiliAPI.getOneDynamicInfoByTag(tag_name, next_offset); const _modify = self.modifyDynamicRes(newdy); if (_modify === null) return null; @@ -210,7 +210,7 @@ class Public { hasOfficialLottery: o.hasOfficialLottery }; }) - console.log(`成功获取带话题#${tag_name}#的动态信息`); + Base.tooltip.log(`成功获取带话题#${tag_name}#的动态信息`); return fomatdata } /** @@ -220,7 +220,7 @@ class Public { * @returns {Promise} */ async getLotteryInfoByUID(UID) { - console.log(`开始获取用户${UID}的动态信息`); + Base.tooltip.log(`开始获取用户${UID}的动态信息`); const { allModifyDynamicResArray: aMDRA } = await this.checkAllDynamic(UID, 3, 500); if (!aMDRA.length) return null; const fomatdata = aMDRA.map(o => { @@ -238,7 +238,7 @@ class Public { hasOfficialLottery: o.origin_hasOfficialLottery } }).filter(a => a.type === 0 ? false : true) - console.log(`成功获取用户${UID}的动态信息`); + Base.tooltip.log(`成功获取用户${UID}的动态信息`); return fomatdata; } } diff --git a/lib/clear.js b/lib/clear.js index 381367e..6a9b235 100644 --- a/lib/clear.js +++ b/lib/clear.js @@ -11,9 +11,9 @@ async function delDynamic () { const { allModifyDynamicResArray, offset: _offset } = await Public.prototype.checkAllDynamic(GlobalVar.myUID, 1, 5 * 1000, offset); offset = _offset; if (index < 2) { - console.log(`跳过第${index + 1}页(12条)`); + Base.tooltip.log(`跳过第${index + 1}页(12条)`); } else { - console.log(`开始读取第${index + 1}页(12条)`); + Base.tooltip.log(`开始读取第${index + 1}页(12条)`); for (let index = 0; index < allModifyDynamicResArray.length; index++) { const res = allModifyDynamicResArray[index]; const { type, dynamic_id } = res; @@ -23,14 +23,14 @@ async function delDynamic () { } await Base.delay(8e3); } - console.log(`第${index}页中的转发动态全部删除成功`) + Base.tooltip.log(`第${index}页中的转发动态全部删除成功`) } if (offset === '0') break; } } async function unFollow () { const tagid = await checkMyPartition(); - if (tagid === 0) { console.log('未能成功获取关注分区id'); return } + if (tagid === 0) { Base.tooltip.log('未能成功获取关注分区id'); return } let rmup = []; for (let index = 1; index < 42; index++) { const uids = await BiliAPI.getPartitionUID(tagid, index); diff --git a/lib/lottery-in-nodejs.js b/lib/lottery-in-nodejs.js index 3f53e71..b4f036a 100644 --- a/lib/lottery-in-nodejs.js +++ b/lib/lottery-in-nodejs.js @@ -35,8 +35,8 @@ function start() { /* 注册事件 */ eventBus.on('Turn_on_the_Monitor', () => { if (times.value() === GlobalVar.Lottery.length) { - console.log('所有动态转发完毕'); - console.log('[运行结束]目前无抽奖信息,过一会儿再来看看吧'); + Base.tooltip.log('所有动态转发完毕'); + Base.tooltip.log('[运行结束]目前无抽奖信息,过一会儿再来看看吧'); times.clear(); createRandomDynamic() resolve() @@ -47,7 +47,7 @@ function start() { (new Monitor(isNaN(nlottery) ? lottery : nlottery)).init(); }); eventBus.on('Turn_off_the_Monitor', () => { - console.log('[运行结束]出现异常程序自动关闭'); + Base.tooltip.log('[运行结束]出现异常程序自动关闭'); createRandomDynamic() resolve() }) @@ -55,12 +55,12 @@ function start() { eventBus.emit('Turn_on_the_Monitor'); } else { setTimeout(() => { - console.log('运行时间超过Actions上限 - 6小时'); + Base.tooltip.log('运行时间超过Actions上限 - 6小时'); eventBus.emit('Turn_off_the_Monitor') }, MAX_TIME); GihubAPI.hasLotteryRun().then(s => { if (s) { - console.log("有冲突的工作流故终止此任务"); + Base.tooltip.log("有冲突的工作流故终止此任务"); resolve() } else { eventBus.emit('Turn_on_the_Monitor'); @@ -78,7 +78,7 @@ async function isMe() { let MySession = await BiliAPI.getSessionInfo(); let desp = ''; if (MyAtInfo.length) { - console.log('<-- 正在检查at'); + Base.tooltip.log('<-- 正在检查at'); MyAtInfo.forEach(async AtInfo => { const { at_time, up_uname, business, source_content, url } = AtInfo if ((Date.now() / 1000 - at_time) / 3600 >= 2) { @@ -91,10 +91,10 @@ async function isMe() { desp += `[直达链接](${url}) \n\n` desp += `--------------------- \n\n` }); - console.log('--> OK'); + Base.tooltip.log('--> OK'); } if (MySession.data.length) { - console.log('<-- 正在检查私信') + Base.tooltip.log('<-- 正在检查私信') let session_t = ''; let max = 0; do { @@ -122,13 +122,13 @@ async function isMe() { } max++ } while (MySession.has_more && max < 10); - console.log('--> OK'); + Base.tooltip.log('--> OK'); } if (desp) { - console.log(desp); + Base.tooltip.log(desp); sendNotify('可能中奖了!', desp); } else { - console.log("未中奖"); + Base.tooltip.log("未中奖"); } return; } @@ -139,10 +139,10 @@ async function isMe() { */ async function checkCookie(num) { if (await BiliAPI.getMyinfo()) { - console.log('成功登录'); + Base.tooltip.log('成功登录'); return true; } else { - console.log(`登录失败 COOKIE${num} 已失效 UID:${GlobalVar.myUID}`); + Base.tooltip.log(`登录失败 COOKIE${num} 已失效 UID:${GlobalVar.myUID}`); sendNotify('动态抽奖出错-登录失败', `COOKIE${num} 已失效 UID:${GlobalVar.myUID}`) return false; } diff --git a/lib/sendNotify.js b/lib/sendNotify.js index 9b78b12..eecd363 100644 --- a/lib/sendNotify.js +++ b/lib/sendNotify.js @@ -1,3 +1,4 @@ +const { tooltip } = require("./Base"); const { HttpRequest } = require("./HttpRequest"); // =======================================微信server酱通知设置区域=========================================== @@ -173,26 +174,26 @@ function serverNotify(text, desp) { try { const data = JSON.parse(res.body); if (data.errno === 0) { - console.log('server酱发送通知消息成功\n') + tooltip.log('server酱发送通知消息成功\n') } else if (data.errno === 1024) { // 一分钟内发送相同的内容会触发 - console.log(`server酱发送通知消息异常: ${data.errmsg}\n`) + tooltip.log(`server酱发送通知消息异常: ${data.errmsg}\n`) } else { - console.log(`server酱发送通知消息异常\n${JSON.stringify(data)}`) + tooltip.log(`server酱发送通知消息异常\n${JSON.stringify(data)}`) } } catch (error) { - console.log(error); + tooltip.log(error); } finally { resolve() } }, failure: err => { - console.log('发送通知调用API失败!!\n') + tooltip.log('发送通知调用API失败!!\n') throw new Error(err); } }) } else { - console.log('您未提供server酱的SCKEY,取消微信推送消息通知\n'); + tooltip.log('您未提供server酱的SCKEY,取消微信推送消息通知\n'); resolve() } }) @@ -218,26 +219,26 @@ function serverNotifyTurbo(text, desp) { try { const data = JSON.parse(res.body); if (data.errno === 0) { - console.log('server酱(Turbo版)发送通知消息成功\n') + tooltip.log('server酱(Turbo版)发送通知消息成功\n') } else if (data.errno === 1024) { // 一分钟内发送相同的内容会触发 - console.log(`server酱(Turbo版)发送通知消息异常: ${data.errmsg}\n`) + tooltip.log(`server酱(Turbo版)发送通知消息异常: ${data.errmsg}\n`) } else { - console.log(`server酱(Turbo版)发送通知消息异常\n${JSON.stringify(data)}`) + tooltip.log(`server酱(Turbo版)发送通知消息异常\n${JSON.stringify(data)}`) } } catch (error) { - console.log(error); + tooltip.log(error); } finally { resolve() } }, failure: err => { - console.log('发送通知调用API失败!!\n') + tooltip.log('发送通知调用API失败!!\n') throw new Error(err); } }) } else { - console.log('您未提供server酱(Turbo版)的SCKEY,取消微信推送消息通知\n'); + tooltip.log('您未提供server酱(Turbo版)的SCKEY,取消微信推送消息通知\n'); resolve() } }) @@ -275,25 +276,25 @@ function coolPush(text, desp) { try { const data = JSON.parse(res.body); if (data.code === 200) { - console.log(`酷推发送${pushMode(QQ_MODE)}通知消息成功\n`) + tooltip.log(`酷推发送${pushMode(QQ_MODE)}通知消息成功\n`) } else if (data.code === 400) { - console.log(`QQ酷推(Cool Push)发送${pushMode(QQ_MODE)}推送失败:${data}\n`) + tooltip.log(`QQ酷推(Cool Push)发送${pushMode(QQ_MODE)}推送失败:${data}\n`) } else { - console.log(`酷推推送异常: ${data.msg}`); + tooltip.log(`酷推推送异常: ${data.msg}`); } } catch (error) { - console.log(error); + tooltip.log(error); } finally { resolve() } }, failure: err => { - console.log(`发送${pushMode(QQ_MODE)}通知调用API失败!!\n`) + tooltip.log(`发送${pushMode(QQ_MODE)}通知调用API失败!!\n`) throw new Error(err); } }) } else { - console.log('您未提供酷推的SKEY,取消QQ推送消息通知\n'); + tooltip.log('您未提供酷推的SKEY,取消QQ推送消息通知\n'); resolve() } }) @@ -319,24 +320,24 @@ function barkNotify(text, desp, params = {}) { try { const data = JSON.parse(res.body); if (data.code === 200) { - console.log('Bark APP发送通知消息成功\n') + tooltip.log('Bark APP发送通知消息成功\n') } else { - console.log(`${data.message}\n`); + tooltip.log(`${data.message}\n`); } } catch (error) { - console.log(error); + tooltip.log(error); } finally { resolve() } }, failure: err => { - console.log('Bark APP发送通知调用API失败!!\n'); + tooltip.log('Bark APP发送通知调用API失败!!\n'); resolve(); throw new Error(err) } }) } else { - console.log('您未提供Bark的APP推送BARK_PUSH,取消Bark推送消息通知\n'); + tooltip.log('您未提供Bark的APP推送BARK_PUSH,取消Bark推送消息通知\n'); resolve() } }) @@ -365,20 +366,20 @@ function tgBotNotify(text, desp) { try { const data = JSON.parse(res.body); if (data.ok) { - console.log('Telegram发送通知消息完成。\n') + tooltip.log('Telegram发送通知消息完成。\n') } else if (data.error_code === 400) { - console.log('请主动给bot发送一条消息并检查接收用户ID是否正确。\n') + tooltip.log('请主动给bot发送一条消息并检查接收用户ID是否正确。\n') } else if (data.error_code === 401) { - console.log('Telegram bot token 填写错误。\n') + tooltip.log('Telegram bot token 填写错误。\n') } } catch (error) { - console.log(error); + tooltip.log(error); } finally { resolve() } }, failure: err => { - console.log('telegram发送通知消息失败!!\n') + tooltip.log('telegram发送通知消息失败!!\n') resolve() throw new Error(err) } @@ -391,7 +392,7 @@ function tgBotNotify(text, desp) { } HttpRequest(options) } else { - console.log('您未提供telegram机器人推送所需的TG_BOT_TOKEN和TG_USER_ID,取消telegram推送消息通知\n'); + tooltip.log('您未提供telegram机器人推送所需的TG_BOT_TOKEN和TG_USER_ID,取消telegram推送消息通知\n'); resolve() } }) @@ -430,18 +431,18 @@ function ddBotNotify(text, desp) { try { const data = JSON.parse(res.body); if (data.errcode === 0) { - console.log('钉钉发送通知消息完成。\n') + tooltip.log('钉钉发送通知消息完成。\n') } else { - console.log(`${data.errmsg}\n`) + tooltip.log(`${data.errmsg}\n`) } } catch (e) { - console.log(e); + tooltip.log(e); } finally { resolve(); } }, failure: err => { - console.log('钉钉发送通知消息失败!!\n') + tooltip.log('钉钉发送通知消息失败!!\n') throw new Error(err); } }) @@ -469,24 +470,24 @@ function ddBotNotify(text, desp) { try { const data = JSON.parse(res.body); if (data.errcode === 0) { - console.log('钉钉发送通知消息完成。\n') + tooltip.log('钉钉发送通知消息完成。\n') } else { - console.log(`${data.errmsg}\n`) + tooltip.log(`${data.errmsg}\n`) } } catch (e) { - console.log(e); + tooltip.log(e); } finally { resolve(); } }, failure: err => { - console.log('钉钉发送通知消息失败!!\n'); + tooltip.log('钉钉发送通知消息失败!!\n'); resolve(); throw new Error(err) } }) } else { - console.log('您未提供钉钉机器人推送所需的DD_BOT_TOKEN或者DD_BOT_SECRET,取消钉钉推送消息通知\n'); + tooltip.log('您未提供钉钉机器人推送所需的DD_BOT_TOKEN或者DD_BOT_SECRET,取消钉钉推送消息通知\n'); resolve() } }) @@ -515,24 +516,24 @@ function qywxBotNotify(text, desp) { try { const data = JSON.parse(res.body); if (data.errcode === 0) { - console.log('企业微信发送通知消息完成。\n'); + tooltip.log('企业微信发送通知消息完成。\n'); } else { - console.log(`${data.errmsg}\n`); + tooltip.log(`${data.errmsg}\n`); } } catch (e) { - console.log(e); + tooltip.log(e); } finally { resolve(); } }, failure: err => { - console.log('企业微信发送通知消息失败!!\n'); + tooltip.log('企业微信发送通知消息失败!!\n'); resolve(); throw new Error(err) } }) } else { - console.log('您未提供企业微信机器人推送所需的QYWX_KEY,取消企业微信推送消息通知\n'); + tooltip.log('您未提供企业微信机器人推送所需的QYWX_KEY,取消企业微信推送消息通知\n'); resolve(); } }); @@ -544,7 +545,7 @@ function iGotNotify(text, desp, params = {}) { // 校验传入的IGOT_PUSH_KEY是否有效 const IGOT_PUSH_KEY_REGX = new RegExp("^[a-zA-Z0-9]{24}$") if (!IGOT_PUSH_KEY_REGX.test(IGOT_PUSH_KEY)) { - console.log('您所提供的IGOT_PUSH_KEY无效\n') + tooltip.log('您所提供的IGOT_PUSH_KEY无效\n') resolve() return } @@ -567,24 +568,24 @@ function iGotNotify(text, desp, params = {}) { try { const data = JSON.parse(res.body); if (data.ret === 0) { - console.log('iGot发送通知消息成功\n') + tooltip.log('iGot发送通知消息成功\n') } else { - console.log(`iGot发送通知消息失败:${data.errMsg}\n`) + tooltip.log(`iGot发送通知消息失败:${data.errMsg}\n`) } } catch (e) { - console.log(e); + tooltip.log(e); } finally { resolve(); } }, failure: err => { - console.log('发送通知调用API失败!!\n') + tooltip.log('发送通知调用API失败!!\n') resolve(); throw new Error(err) } }) } else { - console.log('您未提供iGot的推送IGOT_PUSH_KEY,取消iGot推送消息通知\n'); + tooltip.log('您未提供iGot的推送IGOT_PUSH_KEY,取消iGot推送消息通知\n'); resolve() } }) @@ -613,24 +614,24 @@ function pushPlusNotify(text, desp) { try { const data = JSON.parse(res.body); if (data.code === 200) { - console.log(`push+发送${PUSH_PLUS_USER ? '一对多' : '一对一'}通知消息完成。\n`) + tooltip.log(`push+发送${PUSH_PLUS_USER ? '一对多' : '一对一'}通知消息完成。\n`) } else { - console.log(`push+发送${PUSH_PLUS_USER ? '一对多' : '一对一'}通知消息失败:${data.msg}\n`) + tooltip.log(`push+发送${PUSH_PLUS_USER ? '一对多' : '一对一'}通知消息失败:${data.msg}\n`) } } catch (e) { - console.log(e); + tooltip.log(e); } finally { resolve(); } }, failure: err => { - console.log(`push+发送${PUSH_PLUS_USER ? '一对多' : '一对一'}通知消息失败!!\n`) + tooltip.log(`push+发送${PUSH_PLUS_USER ? '一对多' : '一对一'}通知消息失败!!\n`) resolve(); throw new Error(err) } }) } else { - console.log('您未提供push+推送所需的PUSH_PLUS_TOKEN,取消push+推送消息通知\n'); + tooltip.log('您未提供push+推送所需的PUSH_PLUS_TOKEN,取消push+推送消息通知\n'); resolve() } }) diff --git a/main.js b/main.js index d14928b..9f1ec6c 100644 --- a/main.js +++ b/main.js @@ -1,10 +1,11 @@ +const { tooltip } = require("./lib/Base"); const { setVariable } = require("./lib/setVariable"); const { NUMBER, CLEAR, COOKIE, PAT, LOCALLAUNCH } = process.env; ((async () => { if (typeof COOKIE === 'string' && COOKIE.length > 10) { - if (!LOCALLAUNCH && !PAT) { console.log('请查看README文件, 填入相应的PAT'); return; } + if (!LOCALLAUNCH && !PAT) { tooltip.log('请查看README文件, 填入相应的PAT'); return; } await setVariable(COOKIE); const { start, isMe, checkCookie } = require("./lib/lottery-in-nodejs"); const { clear } = require("./lib/clear"); @@ -13,18 +14,18 @@ const { NUMBER, CLEAR, COOKIE, PAT, LOCALLAUNCH } = process.env; switch (process.argv.slice(2)[0]) { case 'start': await setVariable('', PAT); - console.log('开始参与抽奖'); + tooltip.log('开始参与抽奖'); await start(); break; case 'check': - console.log('检查是否中奖'); + tooltip.log('检查是否中奖'); await isMe(); break; case 'clear': if (CLEAR === 'true') { - console.log('开始清理动态'); + tooltip.log('开始清理动态'); await clear(); - console.log('清理动态完毕'); + tooltip.log('清理动态完毕'); } break; default: