18 lines
1.1 KiB
JavaScript
18 lines
1.1 KiB
JavaScript
|
|
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' };
|