Files
matrix/hookshot/uptime-kuma.js

18 lines
1.1 KiB
JavaScript
Raw Normal View History

var monitor = data.monitor || {};
var hb = data.heartbeat || {};
var name = monitor.name || monitor.url || 'Monitor';
var url = monitor.url || '';
var status = hb.status;
var emoji = status === 1 ? '🟢' : (status === 0 ? '🔴' : '🟡');
var state = status === 1 ? 'UP' : (status === 0 ? 'DOWN' : 'Unknown');
var reason = hb.msg || '';
var ping = (hb.ping !== undefined && hb.ping !== null) ? hb.ping + 'ms' : '';
var duration = hb.duration ? hb.duration + 's' : '';
if (reason === 'OK' || reason === '200 - OK' || reason === '200') reason = '';
var lines = [emoji + ' ' + name + ' is ' + state];
var htmlParts = ['<b>' + emoji + ' ' + name + ' is ' + state + '</b>'];
if (url) { lines.push(url); htmlParts.push('<a href="' + url + '">' + url + '</a>'); }
if (reason) { lines.push('Reason: ' + reason); htmlParts.push('Reason: ' + reason); }
if (ping && status === 1) { lines.push('Ping: ' + ping); htmlParts.push('Ping: ' + ping); }
if (duration && status === 0) { lines.push('Down for: ' + duration); htmlParts.push('Down for: ' + duration); }
result = { version: 'v2', plain: lines.join('\n'), html: htmlParts.join('<br>'), msgtype: 'm.notice' };