diff --git a/back/services/notify.ts b/back/services/notify.ts index ea2925bb..f2d0b30a 100644 --- a/back/services/notify.ts +++ b/back/services/notify.ts @@ -152,14 +152,15 @@ export default class NotificationService { private async serverChan() { const { serverChanKey } = this.params; - const url = serverChanKey.startsWith('sctp') - ? `https://${serverChanKey}.push.ft07.com/send` + const matchResult = serverChanKey.match(/^sctp(\d+)t/i); + const url = matchResult && matchResult[1] + ? `https://${matchResult[1]}.push.ft07.com/send/${serverChanKey}.send` : `https://sctapi.ftqq.com/${serverChanKey}.send`; try { const res: any = await got .post(url, { ...this.gotOption, - body: `title=${this.title}&desp=${this.content}`, + body: `title=${encodeURIComponent(this.title)}&desp=${encodeURIComponent(this.content)}`, headers: { 'Content-Type': 'application/x-www-form-urlencoded' }, }) .json(); diff --git a/sample/notify.js b/sample/notify.js index bf832da2..242cd185 100644 --- a/sample/notify.js +++ b/sample/notify.js @@ -228,11 +228,13 @@ function serverNotify(text, desp) { if (PUSH_KEY) { // 微信server酱推送通知一个\n不会换行,需要两个\n才能换行,故做此替换 desp = desp.replace(/[\n\r]/g, '\n\n'); + + const matchResult = PUSH_KEY.match(/^sctp(\d+)t/i); const options = { - url: PUSH_KEY.startsWith('sctp') - ? `https://${PUSH_KEY}.push.ft07.com/send` - : `https://sctapi.ftqq.com/${PUSH_KEY}.send`, - body: `text=${text}&desp=${desp}`, + url: matchResult && matchResult[1] + ? `https://${matchResult[1]}.push.ft07.com/send/${PUSH_KEY}.send` + : `https://sctapi.ftqq.com/${PUSH_KEY}.send`, + body: `text=${encodeURIComponent(text)}&desp=${encodeURIComponent(desp)}`, headers: { 'Content-Type': 'application/x-www-form-urlencoded', }, @@ -1194,7 +1196,7 @@ function webhookNotify(text, desp) { function ntfyNotify(text, desp) { function encodeRFC2047(text) { - const encodedBase64 = btoa(String.fromCharCode(...new TextEncoder().encode(text))); + const encodedBase64 = Buffer.from(text).toString('base64'); return `=?utf-8?B?${encodedBase64}?=`; } diff --git a/sample/notify.py b/sample/notify.py index 93274c36..3dc9e1b4 100644 --- a/sample/notify.py +++ b/sample/notify.py @@ -780,10 +780,6 @@ def chronocat(title: str, content: str) -> None: else: print(f"QQ群消息:{ids}推送失败!") - -import base64 -import requests - def ntfy(title: str, content: str) -> None: """ 通过 Ntfy 推送消息