mirror of
https://github.com/whyour/qinglong.git
synced 2025-05-22 22:36:06 +08:00
182 lines
4.7 KiB
TypeScript
182 lines
4.7 KiB
TypeScript
import { IncomingHttpHeaders } from 'http';
|
|
|
|
export enum NotificationMode {
|
|
'gotify' = 'gotify',
|
|
'goCqHttpBot' = 'goCqHttpBot',
|
|
'serverChan' = 'serverChan',
|
|
'pushDeer' = 'pushDeer',
|
|
'bark' = 'bark',
|
|
'chat' = 'chat',
|
|
'telegramBot' = 'telegramBot',
|
|
'dingtalkBot' = 'dingtalkBot',
|
|
'weWorkBot' = 'weWorkBot',
|
|
'weWorkApp' = 'weWorkApp',
|
|
'aibotk' = 'aibotk',
|
|
'iGot' = 'iGot',
|
|
'pushPlus' = 'pushPlus',
|
|
'wePlusBot' = 'wePlusBot',
|
|
'email' = 'email',
|
|
'pushMe' = 'pushMe',
|
|
'feishu' = 'feishu',
|
|
'webhook' = 'webhook',
|
|
'chronocat' = 'Chronocat',
|
|
'ntfy' = 'ntfy',
|
|
'wxPusherBot' = 'wxPusherBot',
|
|
}
|
|
|
|
abstract class NotificationBaseInfo {
|
|
public type!: NotificationMode;
|
|
}
|
|
|
|
export class GotifyNotification extends NotificationBaseInfo {
|
|
public gotifyUrl = '';
|
|
public gotifyToken = '';
|
|
public gotifyPriority = 0;
|
|
}
|
|
|
|
export class GoCqHttpBotNotification extends NotificationBaseInfo {
|
|
public goCqHttpBotUrl = '';
|
|
public goCqHttpBotToken = '';
|
|
public goCqHttpBotQq = '';
|
|
}
|
|
|
|
export class ServerChanNotification extends NotificationBaseInfo {
|
|
public serverChanKey = '';
|
|
}
|
|
|
|
export class PushDeerNotification extends NotificationBaseInfo {
|
|
public pushDeerKey = '';
|
|
public pushDeerUrl = '';
|
|
}
|
|
|
|
export class synologyChatNotification extends NotificationBaseInfo {
|
|
public synologyChatUrl = '';
|
|
}
|
|
|
|
export class BarkNotification extends NotificationBaseInfo {
|
|
public barkPush = '';
|
|
public barkIcon = 'https://qn.whyour.cn/logo.png';
|
|
public barkSound = '';
|
|
public barkGroup = 'qinglong';
|
|
public barkLevel = 'active';
|
|
public barkUrl = '';
|
|
public barkArchive = '';
|
|
}
|
|
|
|
export class TelegramBotNotification extends NotificationBaseInfo {
|
|
public telegramBotToken = '';
|
|
public telegramBotUserId = '';
|
|
public telegramBotProxyHost = '';
|
|
public telegramBotProxyPort = '';
|
|
public telegramBotProxyAuth = '';
|
|
public telegramBotApiHost = 'https://api.telegram.org';
|
|
}
|
|
|
|
export class DingtalkBotNotification extends NotificationBaseInfo {
|
|
public dingtalkBotToken = '';
|
|
public dingtalkBotSecret = '';
|
|
}
|
|
|
|
export class WeWorkBotNotification extends NotificationBaseInfo {
|
|
public weWorkBotKey = '';
|
|
public weWorkOrigin = '';
|
|
}
|
|
|
|
export class WeWorkAppNotification extends NotificationBaseInfo {
|
|
public weWorkAppKey = '';
|
|
public weWorkOrigin = '';
|
|
}
|
|
|
|
export class AibotkNotification extends NotificationBaseInfo {
|
|
public aibotkKey: string = '';
|
|
public aibotkType: 'room' | 'contact' = 'room';
|
|
public aibotkName: string = '';
|
|
}
|
|
|
|
export class IGotNotification extends NotificationBaseInfo {
|
|
public iGotPushKey = '';
|
|
}
|
|
|
|
export class PushPlusNotification extends NotificationBaseInfo {
|
|
public pushPlusToken = '';
|
|
public pushPlusUser = '';
|
|
public pushPlusTemplate = '';
|
|
public pushplusChannel = '';
|
|
public pushplusWebhook = '';
|
|
public pushplusCallbackUrl = '';
|
|
public pushplusTo = '';
|
|
}
|
|
|
|
export class WePlusBotNotification extends NotificationBaseInfo {
|
|
public wePlusBotToken = '';
|
|
public wePlusBotReceiver = '';
|
|
public wePlusBotVersion = '';
|
|
}
|
|
|
|
export class EmailNotification extends NotificationBaseInfo {
|
|
public emailService: string = '';
|
|
public emailUser: string = '';
|
|
public emailPass: string = '';
|
|
}
|
|
|
|
export class PushMeNotification extends NotificationBaseInfo {
|
|
public pushMeKey: string = '';
|
|
public pushMeUrl: string = '';
|
|
}
|
|
|
|
export class ChronocatNotification extends NotificationBaseInfo {
|
|
public chronocatURL: string = '';
|
|
public chronocatQQ: string = '';
|
|
public chronocatToken: string = '';
|
|
}
|
|
|
|
export class WebhookNotification extends NotificationBaseInfo {
|
|
public webhookHeaders: string = '';
|
|
public webhookBody: string = '';
|
|
public webhookUrl: string = '';
|
|
public webhookMethod: 'GET' | 'POST' | 'PUT' = 'GET';
|
|
public webhookContentType:
|
|
| 'application/json'
|
|
| 'multipart/form-data'
|
|
| 'application/x-www-form-urlencoded' = 'application/json';
|
|
}
|
|
|
|
export class LarkNotification extends NotificationBaseInfo {
|
|
public larkKey = '';
|
|
}
|
|
|
|
export class NtfyNotification extends NotificationBaseInfo {
|
|
public ntfyUrl = '';
|
|
public ntfyTopic = '';
|
|
public ntfyPriority = '';
|
|
}
|
|
|
|
export class WxPusherBotNotification extends NotificationBaseInfo {
|
|
public wxPusherBotAppToken = '';
|
|
public wxPusherBotTopicIds = '';
|
|
public wxPusherBotUids = '';
|
|
}
|
|
|
|
export interface NotificationInfo
|
|
extends GoCqHttpBotNotification,
|
|
GotifyNotification,
|
|
ServerChanNotification,
|
|
PushDeerNotification,
|
|
synologyChatNotification,
|
|
BarkNotification,
|
|
TelegramBotNotification,
|
|
DingtalkBotNotification,
|
|
WeWorkBotNotification,
|
|
WeWorkAppNotification,
|
|
AibotkNotification,
|
|
IGotNotification,
|
|
PushPlusNotification,
|
|
WePlusBotNotification,
|
|
EmailNotification,
|
|
PushMeNotification,
|
|
WebhookNotification,
|
|
ChronocatNotification,
|
|
LarkNotification,
|
|
NtfyNotification,
|
|
WxPusherBotNotification {}
|