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 = ['' + emoji + ' ' + name + ' is ' + state + '']; if (url) { lines.push(url); htmlParts.push('' + url + ''); } 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('
'), msgtype: 'm.notice' };