diff --git a/README.md b/README.md index 406f37c..e70074a 100644 --- a/README.md +++ b/README.md @@ -171,32 +171,34 @@ Chrome浏览器: 以下是支持的推送方式 -| Name | 归属 | 说明 | -| :---------------: | :--------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `SCKEY` | 微信server酱推送(于2021/4月下线) | server酱的微信通知[官方文档](http://sc.ftqq.com/3.version) | -| `SENDKEY` | 微信server酱(Turbo版)推送 | [获取SENDKEY](https://sct.ftqq.com/sendkey) [选择消息通道](https://sct.ftqq.com/forward) | -| `BARK_PUSH` | [BARK推送](https://apps.apple.com/us/app/bark-customed-notifications/id1403753865) | IOS用户下载BARK这个APP,填写内容是app提供的`设备码`,例如: ,那么此处的设备码就是`123`,再不懂看 [这个图](https://raw.githubusercontents.com/shanmiteko/LotteryAutoScript/main/doc/pic/bark.jpg)(注:支持自建填完整链接即可) | -| `BARK_SOUND` | [BARK推送](https://apps.apple.com/us/app/bark-customed-notifications/id1403753865) | bark推送声音设置,例如`choo`,具体值请在`bark`-`推送铃声`-`查看所有铃声` | -| `TG_BOT_TOKEN` | telegram推送 | tg推送(需设备可连接外网),`TG_BOT_TOKEN`和`TG_USER_ID`两者必需,填写自己申请[@BotFather](https://t.me/BotFather)的Token,如`10xxx4:AAFcqxxxxgER5uw` , [具体教程](doc/TG_PUSH.md) | -| `TG_USER_ID` | telegram推送 | tg推送(需设备可连接外网),`TG_BOT_TOKEN`和`TG_USER_ID`两者必需,填写[@getuseridbot](https://t.me/getuseridbot)中获取到的纯数字ID, [具体教程](doc/TG_PUSH.md) | -| `TG_PROXY_HOST` | Telegram 代理的 IP | 代理类型为 http。例子:http代理 则填写 127.0.0.1 | -| `TG_PROXY_PORT` | Telegram 代理的端口 | 例子:http代理 则填写 1080 | -| `DD_BOT_TOKEN` | 钉钉推送 | 钉钉推送(`DD_BOT_TOKEN`和`DD_BOT_SECRET`两者必需)[官方文档](https://ding-doc.dingtalk.com/doc#/serverapi2/qf2nxq) ,只需`https://oapi.dingtalk.com/robot/send?access_token=XXX` 等于`=`符号后面的XXX即可 | -| `DD_BOT_SECRET` | 钉钉推送 | (`DD_BOT_TOKEN`和`DD_BOT_SECRET`两者必需) ,密钥,机器人安全设置页面,加签一栏下面显示的SEC开头的`SECXXXXXXXXXX`等字符 , 注:钉钉机器人安全设置只需勾选`加签`即可,其他选项不要勾选,再不懂看 [这个图](https://raw.githubusercontents.com/shanmiteko/LotteryAutoScript/main/doc/pic/DD_bot.png) | -| `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/) | -| `QYWX_AM` | 企业微信应用 | 第一个值是企业id,第二个值是secret,第三个值@all(或者成员id),第四个值是AgentID (逗号分割) 可查看此[教程](http://note.youdao.com/s/HMiudGkb) [官方文档](https://developer.work.weixin.qq.com/document/path/90236) | -| `QYWX_KEY` | 企业微信Bot推送 | 密钥,企业微信推送 webhook 后面的 key [详见官方说明文档](https://work.weixin.qq.com/api/doc/90000/90136/91770) | -| `PUSH_PLUS_TOKEN` | pushplus推送 | 微信扫码登录后一对一推送或一对多推送下面的token(您的Token) [官方网站](http://pushplus.hxtrip.com/) | -| `PUSH_PLUS_USER` | pushplus推送 | 一对多推送的“群组编码”(一对多推送下面->您的群组(如无则新建)->群组编码)注:(1、需订阅者扫描二维码 2、如果您是创建群组所属人,也需点击“查看二维码”扫描绑定,否则不能接受群组消息推送),只填`PUSH_PLUS_TOKEN`默认为一对一推送 | -| `QMSG_KEY` | [Qmsg酱](https://qmsg.zendee.cn)私聊推送 | [Qmsg注册](https://qmsg.zendee.cn/login.html) | -| `QMSG_QQ` | 私聊消息推送接口,指定需要接收消息的QQ | 指定的QQ号必须在你的[管理台](https://qmsg.zendee.cn/me.html)已添加 | -| `SMTP_HOST` | 电子邮件 | smtp服务器的主机名 如: `smtp.qq.com` | -| `SMTP_PORT` | 电子邮件 | smtp服务器的端口 如: `465` | -| `SMTP_USER` | 电子邮件 | 发送方的电子邮件 如: `xxxxxxxxx@qq.com` | -| `SMTP_PASS` | 电子邮件 | smtp服务对应的授权码 | -| `SMTP_TO_USER` | 电子邮件 | 接收方电子邮件 | +| Name | 归属 | 说明 | +| :----------------: | :--------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `SCKEY` | 微信server酱推送(于2021/4月下线) | server酱的微信通知[官方文档](http://sc.ftqq.com/3.version) | +| `SENDKEY` | 微信server酱(Turbo版)推送 | [获取SENDKEY](https://sct.ftqq.com/sendkey) [选择消息通道](https://sct.ftqq.com/forward) | +| `BARK_PUSH` | [BARK推送](https://apps.apple.com/us/app/bark-customed-notifications/id1403753865) | IOS用户下载BARK这个APP,填写内容是app提供的`设备码`,例如: ,那么此处的设备码就是`123`,再不懂看 [这个图](https://raw.githubusercontents.com/shanmiteko/LotteryAutoScript/main/doc/pic/bark.jpg)(注:支持自建填完整链接即可) | +| `BARK_SOUND` | [BARK推送](https://apps.apple.com/us/app/bark-customed-notifications/id1403753865) | bark推送声音设置,例如`choo`,具体值请在`bark`-`推送铃声`-`查看所有铃声` | +| `PUSHDEER_URL` | [Pushdeer](https://github.com/easychen/pushdeer) | 推送api 默认: | +| `PUSHDEER_PUSHKEY` | [Pushdeer](https://github.com/easychen/pushdeer) | PushKey | +| `TG_BOT_TOKEN` | telegram推送 | tg推送(需设备可连接外网),`TG_BOT_TOKEN`和`TG_USER_ID`两者必需,填写自己申请[@BotFather](https://t.me/BotFather)的Token,如`10xxx4:AAFcqxxxxgER5uw` , [具体教程](doc/TG_PUSH.md) | +| `TG_USER_ID` | telegram推送 | tg推送(需设备可连接外网),`TG_BOT_TOKEN`和`TG_USER_ID`两者必需,填写[@getuseridbot](https://t.me/getuseridbot)中获取到的纯数字ID, [具体教程](doc/TG_PUSH.md) | +| `TG_PROXY_HOST` | Telegram 代理的 IP | 代理类型为 http。例子:http代理 则填写 127.0.0.1 | +| `TG_PROXY_PORT` | Telegram 代理的端口 | 例子:http代理 则填写 1080 | +| `DD_BOT_TOKEN` | 钉钉推送 | 钉钉推送(`DD_BOT_TOKEN`和`DD_BOT_SECRET`两者必需)[官方文档](https://ding-doc.dingtalk.com/doc#/serverapi2/qf2nxq) ,只需`https://oapi.dingtalk.com/robot/send?access_token=XXX` 等于`=`符号后面的XXX即可 | +| `DD_BOT_SECRET` | 钉钉推送 | (`DD_BOT_TOKEN`和`DD_BOT_SECRET`两者必需) ,密钥,机器人安全设置页面,加签一栏下面显示的SEC开头的`SECXXXXXXXXXX`等字符 , 注:钉钉机器人安全设置只需勾选`加签`即可,其他选项不要勾选,再不懂看 [这个图](https://raw.githubusercontents.com/shanmiteko/LotteryAutoScript/main/doc/pic/DD_bot.png) | +| `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/) | +| `QYWX_AM` | 企业微信应用 | 第一个值是企业id,第二个值是secret,第三个值@all(或者成员id),第四个值是AgentID (逗号分割) 可查看此[教程](http://note.youdao.com/s/HMiudGkb) [官方文档](https://developer.work.weixin.qq.com/document/path/90236) | +| `QYWX_KEY` | 企业微信Bot推送 | 密钥,企业微信推送 webhook 后面的 key [详见官方说明文档](https://work.weixin.qq.com/api/doc/90000/90136/91770) | +| `PUSH_PLUS_TOKEN` | pushplus推送 | 微信扫码登录后一对一推送或一对多推送下面的token(您的Token) [官方网站](http://pushplus.hxtrip.com/) | +| `PUSH_PLUS_USER` | pushplus推送 | 一对多推送的“群组编码”(一对多推送下面->您的群组(如无则新建)->群组编码)注:(1、需订阅者扫描二维码 2、如果您是创建群组所属人,也需点击“查看二维码”扫描绑定,否则不能接受群组消息推送),只填`PUSH_PLUS_TOKEN`默认为一对一推送 | +| `QMSG_KEY` | [Qmsg酱](https://qmsg.zendee.cn)私聊推送 | [Qmsg注册](https://qmsg.zendee.cn/login.html) | +| `QMSG_QQ` | 私聊消息推送接口,指定需要接收消息的QQ | 指定的QQ号必须在你的[管理台](https://qmsg.zendee.cn/me.html)已添加 | +| `SMTP_HOST` | 电子邮件 | smtp服务器的主机名 如: `smtp.qq.com` | +| `SMTP_PORT` | 电子邮件 | smtp服务器的端口 如: `465` | +| `SMTP_USER` | 电子邮件 | 发送方的电子邮件 如: `xxxxxxxxx@qq.com` | +| `SMTP_PASS` | 电子邮件 | smtp服务对应的授权码 | +| `SMTP_TO_USER` | 电子邮件 | 接收方电子邮件 | ---------------------------------------- diff --git a/env.example.js b/env.example.js index 737b27d..241fc05 100644 --- a/env.example.js +++ b/env.example.js @@ -69,6 +69,8 @@ module.exports = Object.freeze({ QQ_MODE: "", BARK_PUSH: "", BARK_SOUND: "", + PUSHDEER_URL: "", + PUSHDEER_PUSHKEY: "", TG_BOT_TOKEN: "", TG_USER_ID: "", TG_PROXY_HOST: "", diff --git a/lib/helper/notify.js b/lib/helper/notify.js index 6abb867..397c5c9 100644 --- a/lib/helper/notify.js +++ b/lib/helper/notify.js @@ -24,6 +24,9 @@ let BARK_PUSH = ''; //注:此处设置github action用户填写到Settings-Secrets里面(Name输入BARK_SOUND , Value输入app提供的铃声名称,例如:birdsong) let BARK_SOUND = ''; +// =======================================pushdeer通知设置区域=========================================== +let PUSHDEER_URL = ''; +let PUSHDEER_PUSHKEY = ''; // =======================================telegram机器人通知设置区域=========================================== //此处填你telegram bot 的Token,例如:1077xxx4424:AAFjv0FcqxxxxxxgEMGfi22B4yh15R5uw @@ -94,7 +97,6 @@ if (process.env.QQ_MODE) { QQ_MODE = process.env.QQ_MODE; } - if (process.env.BARK_PUSH) { if (process.env.BARK_PUSH.indexOf('https') > -1 || process.env.BARK_PUSH.indexOf('http') > -1) { //兼容BARK自建用户 @@ -111,15 +113,29 @@ if (process.env.BARK_PUSH) { BARK_PUSH = `https://api.day.app/${BARK_PUSH}` } } + +if (process.env.PUSHDEER_URL) { + PUSHDEER_URL = process.env.PUSHDEER_URL +} else { + PUSHDEER_URL = "https://api2.pushdeer.com/message/push"; +} + +if (process.env.PUSHDEER_PUSHKEY) { + PUSHDEER_PUSHKEY = process.env.PUSHDEER_PUSHKEY; +} + if (process.env.TG_BOT_TOKEN) { TG_BOT_TOKEN = process.env.TG_BOT_TOKEN; } + if (process.env.TG_USER_ID) { TG_USER_ID = process.env.TG_USER_ID; } + if (process.env.TG_PROXY_HOST) { TG_PROXY_HOST = process.env.TG_PROXY_HOST; } + if (process.env.TG_PROXY_PORT) { TG_PROXY_PORT = process.env.TG_PROXY_PORT; } @@ -190,6 +206,8 @@ async function sendNotify(text, desp, params = {}) { pushPlusNotify(text, desp), //iOS Bark APP barkNotify(text, desp, params), + // Pushdeer + pushdeerNotify(text, desp), //telegram 机器人 tgBotNotify(text, desp), //钉钉机器人 @@ -394,6 +412,47 @@ function barkNotify(text, desp, params = {}) { }) } +function pushdeerNotify(text, desp) { + return new Promise(resolve => { + if (PUSHDEER_URL && PUSHDEER_PUSHKEY) { + send({ + method: 'POST', + url: PUSHDEER_URL, + contents: { + pushkey: PUSHDEER_PUSHKEY, + text, + desp, + type: "markdown" + }, + config: { + retry: false + }, + success: res => { + try { + const data = JSON.parse(res.body); + if (data.code === 0) { + log.info('发送通知', 'Pushdeer推送发送通知消息成功') + } else { + log.error('发送通知', `Pushdeer推送发送通知消息异常\n${JSON.stringify(data)}`) + } + } catch (error) { + log.error('发送通知', error); + } finally { + resolve() + } + }, + failure: err => { + log.error('发送通知', 'Pushdeer推送发送通知调用API失败!!' + err) + resolve() + } + }) + } else { + log.debug('发送通知', '您未提供Pushdeer推送所需的PUSHDEER_URL 和 PUSHDEER_PUSHKEY, 取消Pushdeer推送消息通知'); + resolve() + } + }) +} + function tgBotNotify(text, desp) { return new Promise(resolve => { if (TG_BOT_TOKEN && TG_USER_ID) {