import { Notifier, NotifyParams, NotifyResult, NotifierParam } from './notifier.types'; const params: NotifierParam[] = [ { key: 'token', label: 'Bot Token', type: 'password', required: true, placeholder: '123456:ABC-def' }, { key: 'chat_id', label: 'Chat ID', type: 'text', required: true, placeholder: '@频道 或 -1001234567890' }, ]; export const telegramNotifier: Notifier = { name: 'telegram', label: 'Telegram', params, async notify(params) { try { const iconMap = { error: '\ud83d\udea8', warn: '\u26a0\ufe0f', info: '\u2139\ufe0f' }; const level = params.level || 'info'; const text = `${iconMap[level] || iconMap.info} *${params.title || 'CloudSearch'}*\n\n${params.content || ''}`; const resp = await fetch(`https://api.telegram.org/bot${params.token}/sendMessage`, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ chat_id: params.chat_id, text, parse_mode: 'Markdown', disable_web_page_preview: true, }), }); const data: any = await resp.json(); if (data.ok) return { success: true, message: 'Telegram 推送成功' }; return { success: false, message: data.description || `HTTP ${resp.status}` }; } catch (err: any) { return { success: false, message: err.message }; } }, };