var evtype = data.type || 'EVENT'; var ed = data.eventData || {}; var streamName = ed.name || ed.streamerName || ''; var title = ed.streamTitle || ed.title || ''; var viewers = ed.viewerCount !== undefined ? String(ed.viewerCount) : (ed.viewers !== undefined ? String(ed.viewers) : ''); var url = ed.externalURL || ed.url || ed.serverURL || ''; var chatUser = (ed.user && (ed.user.displayName || ed.user.username)) || ''; var chatMsg = ed.body || ''; var emoji, label; if (evtype === 'STREAM_STARTED') { emoji = '🔴'; label = 'Now Live'; } else if (evtype === 'STREAM_STOPPED') { emoji = '⚫'; label = 'Stream Ended'; } else if (evtype === 'USER_JOINED') { emoji = '👤'; label = 'Viewer Joined'; } else if (evtype === 'CHAT') { emoji = '💬'; label = 'Chat'; } else { emoji = '📡'; label = evtype.replace(/_/g, ' '); } var lines = [emoji + ' ' + label + (streamName ? ' \u2014 ' + streamName : '')]; var htmlParts = ['' + emoji + ' ' + label + '' + (streamName ? ': ' + streamName : '')]; if (title) { lines.push(title); htmlParts.push('' + title + ''); } if (viewers) { lines.push(viewers + ' viewers'); htmlParts.push(viewers + ' viewers'); } if (chatUser && chatMsg) { lines.push(chatUser + ': ' + chatMsg); htmlParts.push('' + chatUser + ': ' + chatMsg); } if (url && evtype === 'STREAM_STARTED') { lines.push(url); htmlParts.push('' + url + ''); } result = { version: 'v2', plain: lines.join('\n'), html: htmlParts.join('
'), msgtype: 'm.notice' };