diff --git a/back/services/notify.ts b/back/services/notify.ts index 5acccfa3c47..64201278871 100644 --- a/back/services/notify.ts +++ b/back/services/notify.ts @@ -152,14 +152,16 @@ 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 ed67c478368..54f651b824c 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', }, diff --git a/sample/notify.py b/sample/notify.py index 4d5fe315e77..a16da51b4d5 100644 --- a/sample/notify.py +++ b/sample/notify.py @@ -302,10 +302,14 @@ def serverJ(title: str, content: str) -> None: print("serverJ 服务启动") data = {"text": title, "desp": content.replace("\n", "\n\n")} - if push_config.get("PUSH_KEY").startswith("sctp"): - url = f'https://{push_config.get("PUSH_KEY")}.push.ft07.com/send' + + match = re.match(r'sctp(\d+)t', push_config.get("PUSH_KEY")) + if match: + num = match.group(1) + url = f'https://{num}.push.ft07.com/send/{push_config.get("PUSH_KEY")}.send' else: url = f'https://sctapi.ftqq.com/{push_config.get("PUSH_KEY")}.send' + response = requests.post(url, data=data).json() if response.get("errno") == 0 or response.get("code") == 0: