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 = '' + emoji + ' Sonarr ' + ev + ': ' + healthMsg + (healthWiki ? '
Wiki' : ''); } else if (ev === 'ApplicationUpdate') { plain = emoji + ' Sonarr updated: ' + prevVer + ' \u2192 ' + newVer; html = '' + emoji + ' Sonarr updated: ' + prevVer + ' \u2192 ' + newVer; } else if (ev === 'SeriesAdd' || ev === 'SeriesDelete' || ev === 'Rename') { plain = emoji + ' Sonarr ' + ev + ': ' + series + (network ? ' (' + network + ')' : ''); html = '' + emoji + ' Sonarr ' + ev + ': ' + 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 = '' + emoji + ' Sonarr ' + ev + ': ' + series + (epStrs.length ? ' \u2014 ' + epStrs.join(', ') + '' : '') + qualPart + groupPart + upgrade + clientPart; } result = { version: 'v2', plain: plain, html: html, msgtype: 'm.notice' }; }