From 56efe6d2c73e9cea8a61dff908af8014a7cc6503 Mon Sep 17 00:00:00 2001 From: lxk0301 <778732665@qq.com> Date: Tue, 22 Dec 2020 12:46:26 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D(=E6=8E=A8=E9=80=81=E5=A4=B1?= =?UTF-8?q?=E8=B4=A5)=E4=B8=8E=E5=AE=8C=E5=96=84pushplus=EF=BC=8C=E4=B8=AD?= =?UTF-8?q?=E6=96=87=E5=90=8D=E2=80=9C=E6=8E=A8=E9=80=81=E5=8A=A0=E2=80=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- githubAction.md | 6 +++--- sendNotify.js | 51 ++++++++++++++++++++++++++++++------------------- 2 files changed, 34 insertions(+), 23 deletions(-) diff --git a/githubAction.md b/githubAction.md index e284c8c6..64e3a911 100644 --- a/githubAction.md +++ b/githubAction.md @@ -83,7 +83,7 @@ | `JD_BEAN_SIGN_NOTIFY_SIMPLE`| 京东 | 非必须 | `jd_bean_sign.js`脚本运行后推送签到结果简洁版通知,默认推送全部签到结果,填`true`表示推送简洁通知,[效果图](./icon/bean_sign_simple.jpg) | | `JD_DEBUG` | 脚本打印log | 非必须 | 运行脚本时,是否显示log,默认显示。改成false表示不显示,注重隐私的人可以在设置secret -> `Name:JD_DEBUG,Value:false` | | `PUSH_KEY` | 微信推送 | 非必须 | cookie失效推送[server酱的微信通知](http://sc.ftqq.com/3.version) | -| `BARK_PUSH` | [BARK推送](https://apps.apple.com/us/app/bark-customed-notifications/id1403753865) | 非必须 | cookie失效推送BARK这个APP,填写内容是app提供的`设备码`,例如:https://api.day.app/123 ,那么此处的设备码就是`123`,再不懂看 [这个图](icon/bark.jpg) | +| `BARK_PUSH` | [BARK推送](https://apps.apple.com/us/app/bark-customed-notifications/id1403753865) | 非必须 | cookie失效推送BARK这个APP,填写内容是app提供的`设备码`,例如:https://api.day.app/123 ,那么此处的设备码就是`123`,再不懂看 [这个图](icon/bark.jpg)(注:支持自建填完整链接即可) | | `BARK_SOUND` | [BARK推送](https://apps.apple.com/us/app/bark-customed-notifications/id1403753865) | 非必须 | bark推送声音设置,例如`choo`,具体值请在`bark`-`推送铃声`-`查看所有铃声` | | `TG_BOT_TOKEN` | telegram推送 | 非必须 | tg推送,填写自己申请[@BotFather](https://t.me/BotFather)的Token,如`10xxx4:AAFcqxxxxgER5uw` , [具体教程](./backUp/TG_PUSH.md) | | `TG_USER_ID` | telegram推送 | 非必须 | tg推送,填写[@getuseridbot](https://t.me/getuseridbot)中获取到的纯数字ID, [具体教程](./backUp/TG_PUSH.md) | @@ -92,8 +92,8 @@ | `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/) | -| `PUSH_PLUS_TOKEN` | pushplus推送 | 非必须 | pushplus微信推送,支持一对一,一对多推送 [官方网站](http://pushplus.hxtrip.com/) | -| `PUSH_PLUS_USER` | pushplus推送 | 非必须 | pushplus微信推送,一对多推送所需的群组 (需订阅者扫描二维码),只填TOKEN默认为一对一推送 | +| `PUSH_PLUS_TOKEN` | pushplus推送 | 非必须 | 微信扫码登录后一对一推送或一对多推送下面的token(您的Token) [官方网站](http://pushplus.hxtrip.com/) | +| `PUSH_PLUS_USER` | pushplus推送 | 非必须 | 一对多推送的“群组编码”(一对多推送下面->您的群组(如无则新建)->群组编码)注:(1、需订阅者扫描二维码 2、如果您是创建群组所属人,也需点击“查看二维码”扫描绑定,否则不能接受群组消息推送),只填`PUSH_PLUS_TOKEN`默认为一对一推送 | | `PET_NOTIFY_CONTROL` | 东东萌宠推送开关 | 非必须 | 控制京东萌宠是否静默运行,`false`为否(发送推送通知消息),`true`为是(即:不发送推送通知消息) | | `FRUIT_NOTIFY_CONTROL` | 东东农场推送开关 | 非必须 | 控制京东农场是否静默运行,`false`为否(发送推送通知消息),`true`为是(即:不发送推送通知消息) | | `JD_JOY_REWARD_NOTIFY` | 宠汪汪兑换京豆推送开关 | 非必须 | 控制jd_joy_reward.js脚本是否静默运行,`false`为否(发送推送通知消息),`true`为是(即:不发送推送通知消息) diff --git a/sendNotify.js b/sendNotify.js index 2c9f91e6..0092d1d3 100644 --- a/sendNotify.js +++ b/sendNotify.js @@ -13,7 +13,7 @@ let SCKEY = ''; // =======================================QQ酷推通知设置区域=========================================== -//此处填你申请的SKEY(具体详见文档https://cp.xuthus.cc/) +//此处填你申请的SKEY(具体详见文档 https://cp.xuthus.cc/) //注:此处设置github action用户填写到Settings-Secrets里面(Name输入QQ_SKEY) let QQ_SKEY = ''; //此处填写私聊或群组推送,默认私聊(send或group或者wx) @@ -49,15 +49,17 @@ let DD_BOT_SECRET = ''; let IGOT_PUSH_KEY = ''; // =======================================push+设置区域======================================= -//PUSH_PLUS_USER 填一对多推送的订阅组, 官网叫做(topic) +//官方文档:https://pushplus.hxtrip.com/ +//PUSH_PLUS_TOKEN:微信扫码登录后一对一推送或一对多推送下面的token(您的Token),不提供PUSH_PLUS_USER则默认为一对一推送 +//PUSH_PLUS_USER: 一对多推送的“群组编码”(一对多推送下面->您的群组(如无则新建)->群组编码,如果您是创建群组人。也需点击“查看二维码”扫描绑定,否则不能接受群组消息推送) let PUSH_PLUS_TOKEN = ''; let PUSH_PLUS_USER = ''; +//==========================云端环境变量的判断与接收========================= if (process.env.PUSH_KEY) { SCKEY = process.env.PUSH_KEY; } -//========================酷推(Cool Push)设置区域=============== if (process.env.QQ_SKEY) { QQ_SKEY = process.env.QQ_SKEY; } @@ -107,17 +109,20 @@ if (process.env.PUSH_PLUS_TOKEN) { if (process.env.PUSH_PLUS_USER) { PUSH_PLUS_USER = process.env.PUSH_PLUS_USER; } +//==========================云端环境变量的判断与接收========================= + async function sendNotify(text, desp, params = {}) { - //提供六种通知 - await serverNotify(text, desp); + //提供7种通知 + await serverNotify(text, desp);//微信server酱 + await pushPlusNotify(text, desp);//pushplus(推送加) + //由于上述两种微信通知需点击进去才能查看到详情,故text(标题内容)携带了账号序号以及昵称信息,方便不点击也可知道是哪个京东哪个活动 text = text.match(/.*?(?=\s?-)/g) ? text.match(/.*?(?=\s?-)/g)[0] : text; - await BarkNotify(text, desp, params); - await tgBotNotify(text, desp); - await ddBotNotify(text, desp); - await iGotNotify(text, desp, params); - await CoolPush(text, desp); - await pushPlusNotify(text, desp); + await BarkNotify(text, desp, params);//iOS Bark APP + await tgBotNotify(text, desp);//telegram 机器人 + await ddBotNotify(text, desp);//钉钉机器人 + await iGotNotify(text, desp, params);//iGot + await CoolPush(text, desp);//QQ酷推 } function serverNotify(text, desp, timeout = 2100) { @@ -176,14 +181,14 @@ function CoolPush(text, desp) { $.post(options, (err, resp, data) => { try { if (err) { - console.log('发送通知调用API失败!!\n') + console.log(`发送${QQ_MODE === 'send' ? '个人' : QQ_MODE === 'group' ? 'QQ群' : QQ_MODE === 'wx' ? '微信' : ''}通知调用API失败!!\n`) console.log(err); } else { data = JSON.parse(data); if (data.code === 200) { - console.log('酷推发送通知消息成功\n') + console.log(`酷推发送${QQ_MODE === 'send' ? '个人' : QQ_MODE === 'group' ? 'QQ群' : QQ_MODE === 'wx' ? '微信' : ''}通知消息成功\n`) } else if (data.code === 400) { - console.log(`推送失败:${data.msg}\n`) + console.log(`QQ酷推(Cool Push)发送${QQ_MODE === 'send' ? '个人' : QQ_MODE === 'group' ? 'QQ群' : QQ_MODE === 'wx' ? '微信' : ''}推送失败:${data.msg}\n`) } } } catch (e) { @@ -397,24 +402,30 @@ function pushPlusNotify(text, desp) { return new Promise(resolve => { if (PUSH_PLUS_TOKEN) { desp = desp.replace(/[\n\r]/g, '
'); // 默认为html, 不支持plaintext + const body = { + token: `${PUSH_PLUS_TOKEN}`, + title: `${text}`, + content:`${desp}`, + topic: `${PUSH_PLUS_USER}` + }; const options = { - url: `http://pushplus.hxtrip.com/send`, - body: `token=${PUSH_PLUS_TOKEN}&title=${text}&content=${desp}&topic=${PUSH_PLUS_USER}`, + url: `https://pushplus.hxtrip.com/send`, + body: JSON.stringify(body), headers: { - 'Content-Type': 'application/x-www-form-urlencoded' + 'Content-Type': ' application/json' } } $.post(options, (err, resp, data) => { try { if (err) { - console.log('\npush+发送通知消息失败!!\n') + console.log(`push+发送${PUSH_PLUS_USER ? '一对多' : '一对一'}通知消息失败!!\n`) console.log(err); } else { data = JSON.parse(data); if (data.code === 200) { - console.log('\npush+发送通知消息完成。\n') + console.log(`push+发送${PUSH_PLUS_USER ? '一对多' : '一对一'}通知消息完成。\n`) } else { - console.log('\npush+发送通知消息失败!!\n') + console.log(`push+发送${PUSH_PLUS_USER ? '一对多' : '一对一'}通知消息失败:${data.msg}\n`) } } } catch (e) {