From 8f9d44ed5b849e8530950a3cf0ca2bd0e01a2090 Mon Sep 17 00:00:00 2001 From: 7777777 Date: Wed, 2 Mar 2022 00:32:03 +0800 Subject: [PATCH] 'update' --- gotifytest.js | 69 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 gotifytest.js diff --git a/gotifytest.js b/gotifytest.js new file mode 100644 index 0000000..60781b2 --- /dev/null +++ b/gotifytest.js @@ -0,0 +1,69 @@ +let GOTIFY_URL = 'https://pushplus.mcraft.cn'; +let GOTIFY_TOKEN = 'jdprotoken213'; +let GOTIFY_PRIORITY = 0; + +sendNotify('mytitle', 'despLine1\nSecond Line'); + +/** + * sendNotify 推送通知功能 + * @param text 通知头 + * @param desp 通知体 + * @param params 某些推送通知方式点击弹窗可跳转, 例:{ url: 'https://abc.com' } + * @param author 作者仓库等信息 例:`本通知 By:https://github.com/whyour/qinglong` + * @returns {Promise} + */ +async function sendNotify( + text, + desp, + params = {}, + author = '\n\n本通知 By:https://github.com/whyour/qinglong', +) { + //提供6种通知 + desp += author; //增加作者信息,防止被贩卖等 + await Promise.all([ + serverNotify(text, desp), //微信server酱 + pushPlusNotify(text, desp), //pushplus(推送加) + ]); + //由于上述两种微信通知需点击进去才能查看到详情,故text(标题内容)携带了账号序号以及昵称信息,方便不点击也可知道是哪个京东哪个活动 + text = text.match(/.*?(?=\s?-)/g) ? text.match(/.*?(?=\s?-)/g)[0] : text; + await Promise.all([ + gotifyNotify(text, desp), //gotify + ]); +} + +function gotifyNotify(text, desp) { + return new Promise((resolve) => { + if (GOTIFY_URL && GOTIFY_TOKEN) { + const options = { + url: `${GOTIFY_URL}/message?token=${GOTIFY_TOKEN}`, + body: `title=${encodeURIComponent(text)}&message=${encodeURIComponent( + desp, + )}&priority=${GOTIFY_PRIORITY}`, + headers: { + 'Content-Type': 'application/x-www-form-urlencoded', + }, + }; + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log('gotify发送通知调用API失败!!\n'); + console.log(err); + } else { + data = JSON.parse(data); + if (data.id) { + console.log('gotify发送通知消息成功🎉\n'); + } else { + console.log(`${data.message}\n`); + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(); + } + }); + } else { + resolve(); + } + }); +} \ No newline at end of file