From 6aa487269c9f6862e188b37a0d6c73f79c937d94 Mon Sep 17 00:00:00 2001 From: xiaojunnuo Date: Tue, 3 Dec 2024 10:32:47 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20=E6=96=B0=E5=A2=9Eserver=E9=85=B13?= =?UTF-8?q?=E9=80=9A=E7=9F=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/layout/components/tabs/index.vue | 2 - .../src/layout/components/user-info/index.vue | 1 - .../src/views/certd/pipeline/api.history.ts | 3 +- .../views/certd/pipeline/pipeline/index.vue | 1 - .../controller/pipeline/history-controller.ts | 10 ++- .../plugin-notification/anpush/index.ts | 2 +- .../plugins/plugin-notification/bark/index.ts | 2 +- .../plugin-notification/discord/index.ts | 2 +- .../plugin-notification/email/index.ts | 2 +- .../src/plugins/plugin-notification/index.ts | 1 + .../plugins/plugin-notification/iyuu/index.ts | 2 +- .../plugins/plugin-notification/qywx/index.ts | 2 +- .../plugin-notification/serverchan/index.ts | 4 +- .../plugin-notification/serverchan3/index.ts | 65 +++++++++++++++++++ .../plugin-notification/slack/index.ts | 2 +- .../plugin-notification/telegram/index.ts | 2 +- .../plugin-notification/vocechat/index.ts | 2 +- 17 files changed, 86 insertions(+), 19 deletions(-) create mode 100644 packages/ui/certd-server/src/plugins/plugin-notification/serverchan3/index.ts diff --git a/packages/ui/certd-client/src/layout/components/tabs/index.vue b/packages/ui/certd-client/src/layout/components/tabs/index.vue index ee92d4e5..3c1f19d0 100644 --- a/packages/ui/certd-client/src/layout/components/tabs/index.vue +++ b/packages/ui/certd-client/src/layout/components/tabs/index.vue @@ -77,9 +77,7 @@ export default { closeAll: pageStore.closeAll, openedSort: pageStore.openedSort }; - console.log("opened", pageStore.getOpened); const computeOpened = computed(() => { - console.log("opened", pageStore.getOpened); return pageStore.getOpened; }); diff --git a/packages/ui/certd-client/src/layout/components/user-info/index.vue b/packages/ui/certd-client/src/layout/components/user-info/index.vue index 51a90229..ca57b911 100644 --- a/packages/ui/certd-client/src/layout/components/user-info/index.vue +++ b/packages/ui/certd-client/src/layout/components/user-info/index.vue @@ -23,7 +23,6 @@ defineOptions({ name: "FsUserInfo" }); const userStore = useUserStore(); -console.log("user", userStore); const { t } = useI18n(); const router = useRouter(); diff --git a/packages/ui/certd-client/src/views/certd/pipeline/api.history.ts b/packages/ui/certd-client/src/views/certd/pipeline/api.history.ts index cd09c341..410ebf02 100644 --- a/packages/ui/certd-client/src/views/certd/pipeline/api.history.ts +++ b/packages/ui/certd-client/src/views/certd/pipeline/api.history.ts @@ -10,11 +10,10 @@ export async function GetList(query: any) { data: query }); for (const item of list) { - if (item.pipeline) { + if (item.pipeline && typeof item.pipeline === "string") { item.pipeline = JSON.parse(item.pipeline); } } - console.log("history", list); return list; } diff --git a/packages/ui/certd-client/src/views/certd/pipeline/pipeline/index.vue b/packages/ui/certd-client/src/views/certd/pipeline/pipeline/index.vue index 32e86d2c..de9a97a7 100644 --- a/packages/ui/certd-client/src/views/certd/pipeline/pipeline/index.vue +++ b/packages/ui/certd-client/src/views/certd/pipeline/pipeline/index.vue @@ -321,7 +321,6 @@ export default defineComponent({ currentHistory.value = history; pipeline.value = history.pipeline; await loadCurrentHistoryDetail(); - console.log("currentHistory:", currentHistory); }; async function loadHistoryList(reload = false) { diff --git a/packages/ui/certd-server/src/controller/pipeline/history-controller.ts b/packages/ui/certd-server/src/controller/pipeline/history-controller.ts index 133997f5..c2393a8e 100644 --- a/packages/ui/certd-server/src/controller/pipeline/history-controller.ts +++ b/packages/ui/certd-server/src/controller/pipeline/history-controller.ts @@ -73,8 +73,6 @@ export class HistoryController extends CrudController { buildQuery, }); - - return this.ok(res); } @@ -95,6 +93,14 @@ export class HistoryController extends CrudController { sort: { prop: 'id', asc: false }, buildQuery, }); + for (const item of listRet) { + if (!item.pipeline) { + continue; + } + const json = JSON.parse(item.pipeline); + delete json.stages; + item.pipeline = json; + } return this.ok(listRet); } diff --git a/packages/ui/certd-server/src/plugins/plugin-notification/anpush/index.ts b/packages/ui/certd-server/src/plugins/plugin-notification/anpush/index.ts index 37d589a3..45569974 100644 --- a/packages/ui/certd-server/src/plugins/plugin-notification/anpush/index.ts +++ b/packages/ui/certd-server/src/plugins/plugin-notification/anpush/index.ts @@ -40,7 +40,7 @@ export class AnPushNotification extends BaseNotification { }, data: { title: body.title, - content: body.content + '[查看详情](' + body.url + ')', + content: body.content + '\n\n[查看详情](' + body.url + ')', channel: this.channel, }, }; diff --git a/packages/ui/certd-server/src/plugins/plugin-notification/bark/index.ts b/packages/ui/certd-server/src/plugins/plugin-notification/bark/index.ts index ad3d2875..370fa6a0 100644 --- a/packages/ui/certd-server/src/plugins/plugin-notification/bark/index.ts +++ b/packages/ui/certd-server/src/plugins/plugin-notification/bark/index.ts @@ -49,7 +49,7 @@ export class BarkNotification extends BaseNotification { } const payload = { - body: body.content, // 使用传入的内容或默认内容 + body: `${body.content}\n\n[查看详情](${body.url})`, // 使用传入的内容或默认内容 title: body.title, // 使用传入的标题或默认标题 }; diff --git a/packages/ui/certd-server/src/plugins/plugin-notification/discord/index.ts b/packages/ui/certd-server/src/plugins/plugin-notification/discord/index.ts index e681adc7..e5c6299d 100644 --- a/packages/ui/certd-server/src/plugins/plugin-notification/discord/index.ts +++ b/packages/ui/certd-server/src/plugins/plugin-notification/discord/index.ts @@ -57,7 +57,7 @@ export class DiscordNotification extends BaseNotification { } // 创建 Discord 消息体 - let content = `${body.title}\n${body.content}\n[查看详情](${body.url})`; + let content = `${body.title}\n${body.content}\n\n[查看详情](${body.url})`; if (this.mentionedList && this.mentionedList.length > 0) { content += `\n${this.mentionedList.map(item => `<@${item}> `).join('')}`; } diff --git a/packages/ui/certd-server/src/plugins/plugin-notification/email/index.ts b/packages/ui/certd-server/src/plugins/plugin-notification/email/index.ts index 4f4a6dda..ddba2491 100644 --- a/packages/ui/certd-server/src/plugins/plugin-notification/email/index.ts +++ b/packages/ui/certd-server/src/plugins/plugin-notification/email/index.ts @@ -22,7 +22,7 @@ export class EmailNotification extends BaseNotification { async send(body: NotificationBody) { await this.ctx.emailService.send({ subject: body.title, - content: body.content + '\n[查看详情](' + body.url + ')', + content: body.content + '\n\n[查看详情](' + body.url + ')', receivers: this.receivers, }); } diff --git a/packages/ui/certd-server/src/plugins/plugin-notification/index.ts b/packages/ui/certd-server/src/plugins/plugin-notification/index.ts index ab4a047a..d85f071e 100644 --- a/packages/ui/certd-server/src/plugins/plugin-notification/index.ts +++ b/packages/ui/certd-server/src/plugins/plugin-notification/index.ts @@ -3,6 +3,7 @@ export * from './email/index.js'; export * from './iyuu/index.js'; export * from './webhook/index.js'; export * from './serverchan/index.js'; +export * from './serverchan3/index.js'; export * from './anpush/index.js'; export * from './telegram/index.js'; export * from './discord/index.js'; diff --git a/packages/ui/certd-server/src/plugins/plugin-notification/iyuu/index.ts b/packages/ui/certd-server/src/plugins/plugin-notification/iyuu/index.ts index a61b96cf..e289b1f4 100644 --- a/packages/ui/certd-server/src/plugins/plugin-notification/iyuu/index.ts +++ b/packages/ui/certd-server/src/plugins/plugin-notification/iyuu/index.ts @@ -26,7 +26,7 @@ export class IyuuNotification extends BaseNotification { method: 'POST', data: { text: body.title, - desp: body.content + '[查看详情](' + body.url + ')', + desp: body.content + '\n\n[查看详情](' + body.url + ')', }, }); diff --git a/packages/ui/certd-server/src/plugins/plugin-notification/qywx/index.ts b/packages/ui/certd-server/src/plugins/plugin-notification/qywx/index.ts index 0c1f8e33..abb22415 100644 --- a/packages/ui/certd-server/src/plugins/plugin-notification/qywx/index.ts +++ b/packages/ui/certd-server/src/plugins/plugin-notification/qywx/index.ts @@ -49,7 +49,7 @@ export class QywxNotification extends BaseNotification { data: { msgtype: 'markdown', markdown: { - content: `# ${body.title}\n\n${body.content}\n[查看详情](${body.url})`, + content: `# ${body.title}\n\n${body.content}\n\n[查看详情](${body.url})`, mentioned_list: this.mentionedList, }, }, diff --git a/packages/ui/certd-server/src/plugins/plugin-notification/serverchan/index.ts b/packages/ui/certd-server/src/plugins/plugin-notification/serverchan/index.ts index e37e321c..49695216 100644 --- a/packages/ui/certd-server/src/plugins/plugin-notification/serverchan/index.ts +++ b/packages/ui/certd-server/src/plugins/plugin-notification/serverchan/index.ts @@ -2,7 +2,7 @@ import { BaseNotification, IsNotification, NotificationBody, NotificationInput } @IsNotification({ name: 'serverchan', - title: 'Server酱', + title: 'Server酱ᵀ', desc: 'https://sct.ftqq.com/', needPlus: true, }) @@ -64,7 +64,7 @@ export class ServerChanNotification extends BaseNotification { method: 'POST', data: { text: body.title, - desp: body.content + '[查看详情](' + body.url + ')', + desp: body.content + '\n\n[查看详情](' + body.url + ')', }, skipSslVerify: this.skipSslVerify, }); diff --git a/packages/ui/certd-server/src/plugins/plugin-notification/serverchan3/index.ts b/packages/ui/certd-server/src/plugins/plugin-notification/serverchan3/index.ts new file mode 100644 index 00000000..67f10566 --- /dev/null +++ b/packages/ui/certd-server/src/plugins/plugin-notification/serverchan3/index.ts @@ -0,0 +1,65 @@ +import { BaseNotification, IsNotification, NotificationBody, NotificationInput } from '@certd/pipeline'; + +@IsNotification({ + name: 'serverchan3', + title: 'Server酱³', + desc: 'https://doc.sc3.ft07.com/serverchan3', + needPlus: true, +}) +export class ServerChan3Notification extends BaseNotification { + @NotificationInput({ + title: 'ApiURL', + component: { + placeholder: 'https://uid.push.ft07.com/send/sendKey.send', + }, + required: true, + }) + apiURL = ''; + + @NotificationInput({ + title: '标签Tags', + component: { + name: 'a-select', + vModel: 'value', + mode: 'tags', + open: false, + }, + helper: '支持多个,回车后填写下一个', + required: false, + }) + tags: string[]; + + @NotificationInput({ + title: 'short', + required: false, + }) + short: string; + + @NotificationInput({ + title: '忽略证书校验', + value: false, + component: { + name: 'a-switch', + vModel: 'checked', + }, + required: false, + }) + skipSslVerify: boolean; + + async send(body: NotificationBody) { + if (!this.apiURL) { + throw new Error('sendKey不能为空'); + } + await this.http.request({ + url: `${this.apiURL}`, + method: 'POST', + data: { + text: body.title, + desp: body.content + '\n\n[查看详情](' + body.url + ')', + tags: this.tags.join('|'), + short: this.short, + }, + skipSslVerify: this.skipSslVerify, + }); + } +} diff --git a/packages/ui/certd-server/src/plugins/plugin-notification/slack/index.ts b/packages/ui/certd-server/src/plugins/plugin-notification/slack/index.ts index 31a17a90..d985aecb 100644 --- a/packages/ui/certd-server/src/plugins/plugin-notification/slack/index.ts +++ b/packages/ui/certd-server/src/plugins/plugin-notification/slack/index.ts @@ -47,7 +47,7 @@ export class SlackNotification extends BaseNotification { url: this.webhook, method: 'POST', data: { - text: `${body.title}\n${body.content}\n[查看详情](${body.url})`, + text: `${body.title}\n${body.content}\n\n[查看详情](${body.url})`, }, httpProxy: this.httpsProxy, skipSslVerify: this.skipSslVerify, diff --git a/packages/ui/certd-server/src/plugins/plugin-notification/telegram/index.ts b/packages/ui/certd-server/src/plugins/plugin-notification/telegram/index.ts index 6c5f1af1..434ca2eb 100644 --- a/packages/ui/certd-server/src/plugins/plugin-notification/telegram/index.ts +++ b/packages/ui/certd-server/src/plugins/plugin-notification/telegram/index.ts @@ -64,7 +64,7 @@ export class TelegramNotification extends BaseNotification { } // 构建消息内容 - const messageContent = `*${body.title}*\n\n${body.content}\n[查看详情](${body.url})`; + const messageContent = `*${body.title}*\n\n${body.content}\n\n[查看详情](${body.url})`; // Telegram API URL const url = `https://api.telegram.org/bot${this.botToken}/sendMessage`; diff --git a/packages/ui/certd-server/src/plugins/plugin-notification/vocechat/index.ts b/packages/ui/certd-server/src/plugins/plugin-notification/vocechat/index.ts index 6a6e3219..62dd037a 100644 --- a/packages/ui/certd-server/src/plugins/plugin-notification/vocechat/index.ts +++ b/packages/ui/certd-server/src/plugins/plugin-notification/vocechat/index.ts @@ -79,7 +79,7 @@ export class VoceChatNotification extends BaseNotification { 'x-api-key': this.apiKey, 'Content-Type': 'text/markdown', }, - data: `# ${body.title}\n\n${body.content}\n[查看详情](${body.url})`, + data: `# ${body.title}\n\n${body.content}\n\n[查看详情](${body.url})`, skipSslVerify: this.skipSslVerify, }); }