41 lines
2.7 KiB
JavaScript
41 lines
2.7 KiB
JavaScript
|
|
var ev = data.eventType || 'Unknown';
|
|||
|
|
if (ev === 'Test') {
|
|||
|
|
result = { version: 'v2', plain: '🧪 Sonarr: Connection test successful', msgtype: 'm.notice' };
|
|||
|
|
} else {
|
|||
|
|
var series = (data.series && data.series.title) || 'Unknown Series';
|
|||
|
|
var network = (data.series && data.series.network) || '';
|
|||
|
|
var eps = data.episodes || [];
|
|||
|
|
var epStrs = eps.map(function(ep) {
|
|||
|
|
var s = 'S' + ('0'+(ep.seasonNumber||0)).slice(-2) + 'E' + ('0'+(ep.episodeNumber||0)).slice(-2);
|
|||
|
|
return ep.title ? s + ' \u2013 ' + ep.title : s;
|
|||
|
|
});
|
|||
|
|
var quality = (data.release && data.release.quality) || (data.episodeFile && data.episodeFile.quality) || '';
|
|||
|
|
var releaseGroup = (data.release && data.release.releaseGroup) || (data.episodeFile && data.episodeFile.releaseGroup) || '';
|
|||
|
|
var client = data.downloadClient || '';
|
|||
|
|
var upgrade = data.isUpgrade ? ' \u2191upgrade' : '';
|
|||
|
|
var healthMsg = data.message || '';
|
|||
|
|
var healthWiki = data.wikiUrl || '';
|
|||
|
|
var prevVer = data.previousVersion || '';
|
|||
|
|
var newVer = data.newVersion || '';
|
|||
|
|
var emojiMap = { 'Grab':'📥','Download':'✅','Rename':'✏️','SeriesAdd':'➕','SeriesDelete':'🗑️','EpisodeFileDelete':'🗑️','HealthIssue':'⚠️','HealthRestored':'💚','ApplicationUpdate':'🔄','ManualInteractionRequired':'🔔' };
|
|||
|
|
var emoji = emojiMap[ev] || '📺';
|
|||
|
|
var plain, html;
|
|||
|
|
if (ev === 'HealthIssue' || ev === 'HealthRestored') {
|
|||
|
|
plain = emoji + ' Sonarr ' + ev + ': ' + healthMsg + (healthWiki ? '\n' + healthWiki : '');
|
|||
|
|
html = '<b>' + emoji + ' Sonarr ' + ev + '</b>: ' + healthMsg + (healthWiki ? '<br><a href="' + healthWiki + '">Wiki</a>' : '');
|
|||
|
|
} else if (ev === 'ApplicationUpdate') {
|
|||
|
|
plain = emoji + ' Sonarr updated: ' + prevVer + ' \u2192 ' + newVer;
|
|||
|
|
html = '<b>' + emoji + ' Sonarr updated</b>: ' + prevVer + ' \u2192 ' + newVer;
|
|||
|
|
} else if (ev === 'SeriesAdd' || ev === 'SeriesDelete' || ev === 'Rename') {
|
|||
|
|
plain = emoji + ' Sonarr ' + ev + ': ' + series + (network ? ' (' + network + ')' : '');
|
|||
|
|
html = '<b>' + emoji + ' Sonarr ' + ev + '</b>: ' + series + (network ? ' (' + network + ')' : '');
|
|||
|
|
} else {
|
|||
|
|
var epPart = epStrs.length ? ' \u2014 ' + epStrs.join(', ') : '';
|
|||
|
|
var qualPart = quality ? ' [' + quality + ']' : '';
|
|||
|
|
var groupPart = releaseGroup ? ' {' + releaseGroup + '}' : '';
|
|||
|
|
var clientPart = client ? ' via ' + client : '';
|
|||
|
|
plain = emoji + ' Sonarr ' + ev + ': ' + series + epPart + qualPart + groupPart + upgrade + clientPart;
|
|||
|
|
html = '<b>' + emoji + ' Sonarr ' + ev + '</b>: ' + series + (epStrs.length ? ' \u2014 <i>' + epStrs.join(', ') + '</i>' : '') + qualPart + groupPart + upgrade + clientPart;
|
|||
|
|
}
|
|||
|
|
result = { version: 'v2', plain: plain, html: html, msgtype: 'm.notice' };
|
|||
|
|
}
|