编辑
2026-03-19
垃圾佬的日常
0

image.png

在探针中并没有提供gofity的推送选项。我们可以通过javascript来实现对gofity消息的推送

在发送设置中,选择javascrpit选项。然后在下面填入这段,将里面的URL参数修改为您的gofity的URL和token就行了。

js
async function sendMessage(title, message) { // 提取自你提供的 URL const url = "https://gofity.server.com/message?token=xxxxxx"; const resp = await fetch(url, { method: 'POST', headers: { 'Content-Type': 'application/json', }, body: JSON.stringify({ title: title, message: message, priority: 5 // 按照你的要求设置为最高优先级 }), }); if (!resp.ok) { console.error('Gotify 发送失败:', resp.status, resp.statusText); return false; } return true; } async function sendEvent(event) { try { // 1. 格式化时间 const formatTime = (timeStr) => { const date = new Date(timeStr); return date.toLocaleString('zh-CN', { year: 'numeric', month: '2-digit', day: '2-digit', hour: '2-digit', minute: '2-digit', second: '2-digit', timeZone: 'Asia/Shanghai' }); }; // 2. 获取 Emoji 和事件名 const getEventInfo = (eventType) => { const eventMap = { 'Offline': { emoji: '❌', desc: '服务器离线' }, 'Online': { emoji: '✅', desc: '服务器上线' }, 'Alert': { emoji: '⚠️', desc: '监控告警' }, 'Renew': { emoji: '⏰', desc: '已自动续费' }, 'Expire': { emoji: '🚨', desc: '服务到期提醒' }, 'Test': { emoji: '🧪', desc: '测试通知' } }; return eventMap[eventType] || { emoji: '📊', desc: eventType }; }; // 3. 格式化服务器信息 const getClientsString = (clients) => { if (!clients || clients.length === 0) return '无关联服务器'; return clients.map(c => `${c.name || 'Unknown'}${c.region ? `(${c.region})` : ''}`).join(', '); }; const info = getEventInfo(event.event); const timeStr = formatTime(event.time); const clientStr = getClientsString(event.clients); // --- 按照你要求的格式构建内容 --- // Title: {{emoji}} {{event}} const title = `${info.emoji} ${info.desc}`; // Message: 服务器:{{client}}\n{{message}}\n{{time}} let messageBody = `服务器:${clientStr}\n`; if (event.message) { messageBody += `${event.message}\n`; } messageBody += `${timeStr}`; // 发送 const success = await sendMessage(title, messageBody); if (success) { console.log(`Gotify 通知已发送: ${event.event}`); } return success; } catch (error) { console.error('发送 Gotify 通知时出错:', error); // 基础兜底发送 try { return await sendMessage('Komari 通知', `${event.event}: ${event.message || '未知错误'}`); } catch (e) { return false; } } }