diff --git a/back/data/notify.ts b/back/data/notify.ts index d744f01a..0bbe9c82 100644 --- a/back/data/notify.ts +++ b/back/data/notify.ts @@ -15,6 +15,7 @@ export enum NotificationMode { 'iGot' = 'iGot', 'pushPlus' = 'pushPlus', 'email' = 'email', + 'pushMe' = 'pushMe', 'feishu' = 'feishu', 'webhook' = 'webhook', } @@ -101,6 +102,10 @@ export class EmailNotification extends NotificationBaseInfo { public emailPass: string = ''; } +export class PushMeNotification extends NotificationBaseInfo { + public pushMeKey: string = ''; +} + export class WebhookNotification extends NotificationBaseInfo { public webhookHeaders: string = ''; public webhookBody: string = ''; @@ -131,5 +136,6 @@ export interface NotificationInfo IGotNotification, PushPlusNotification, EmailNotification, + PushMeNotification, WebhookNotification, LarkNotification {} diff --git a/back/services/notify.ts b/back/services/notify.ts index 54e036c0..5bd85bde 100644 --- a/back/services/notify.ts +++ b/back/services/notify.ts @@ -28,6 +28,7 @@ export default class NotificationService { ['iGot', this.iGot], ['pushPlus', this.pushPlus], ['email', this.email], + ['pushMe', this.pushMe], ['webhook', this.webhook], ['lark', this.lark], ]); @@ -561,6 +562,28 @@ export default class NotificationService { } } + private async pushMe() { + const { pushMeKey } = this.params; + try { + const res: any = await got + .post(`https://push.i-i.me/?push_key=${pushMeKey}`, { + ...this.gotOption, + json: { + title: this.title, + content: this.content + }, + headers: { 'Content-Type': 'application/json' }, + }); + if (res === 'success') { + return true; + } else { + throw new Error(res); + } + } catch (error: any) { + throw new Error(error.response ? error.response.body : error); + } + } + private async webhook() { const { webhookUrl, diff --git a/src/utils/config.ts b/src/utils/config.ts index 640026c4..afa99905 100644 --- a/src/utils/config.ts +++ b/src/utils/config.ts @@ -96,6 +96,7 @@ export default { { value: 'chat', label: '群晖chat' }, { value: 'email', label: '邮箱' }, { value: 'lark', label: '飞书机器人' }, + { value: 'pushMe', label: 'PushMe' }, { value: 'webhook', label: '自定义通知' }, { value: 'closed', label: '已关闭' }, ], @@ -268,6 +269,13 @@ export default { { label: 'emailUser', tip: '邮箱地址', required: true }, { label: 'emailPass', tip: '邮箱SMTP授权码', required: true }, ], + pushMe: [ + { + label: 'pushMeKey', + tip: 'PushMe的Key,https://push.i-i.me/', + required: true, + }, + ], webhook: [ { label: 'webhookMethod',