import { GetConfiguration } from '../../api'; export const allowedColours: Map = new Map(); allowedColours.set('r', 'red'); allowedColours.set('b', 'blue'); allowedColours.set('g', 'green'); allowedColours.set('y', 'yellow'); allowedColours.set('w', 'white'); allowedColours.set('o', 'orange'); allowedColours.set('c', 'cyan'); allowedColours.set('br', 'brown'); allowedColours.set('pr', 'purple'); allowedColours.set('pk', 'pink'); allowedColours.set('black', 'black'); allowedColours.set('red', 'red'); allowedColours.set('orangered', 'orangered'); allowedColours.set('orange', 'orange'); allowedColours.set('yellow', 'yellow'); allowedColours.set('yellowgreen', 'yellowgreen'); allowedColours.set('green', 'green'); allowedColours.set('seagreen', 'seagreen'); allowedColours.set('teal', 'teal'); allowedColours.set('blue', 'blue'); allowedColours.set('darkblue', 'darkblue'); allowedColours.set('indigo', 'indigo'); allowedColours.set('purple', 'purple'); allowedColours.set('violet', 'violet'); allowedColours.set('brown', 'brown'); allowedColours.set('burlywood', 'burlywood'); allowedColours.set('rosybrown', 'rosybrown'); allowedColours.set('saddlebrown', 'saddlebrown'); allowedColours.set('maroon', 'maroon'); allowedColours.set('firebrick', 'firebrick'); allowedColours.set('darkred', 'darkred'); allowedColours.set('chocolate', 'chocolate'); allowedColours.set('sienna', 'sienna'); allowedColours.set('peru', 'peru'); allowedColours.set('darkorange', 'darkorange'); allowedColours.set('orange', 'orange'); allowedColours.set('orangered', 'orangered'); allowedColours.set('tomato', 'tomato'); allowedColours.set('coral', 'coral'); allowedColours.set('darkolivegreen', 'darkolivegreen'); allowedColours.set('olive', 'olive'); allowedColours.set('olivedrab', 'olivedrab'); allowedColours.set('greenyellow', 'greenyellow'); allowedColours.set('yellowgreen', 'yellowgreen'); allowedColours.set('darkgreen', 'darkgreen'); allowedColours.set('limegreen', 'limegreen'); allowedColours.set('lime', 'lime'); allowedColours.set('lawngreen', 'lawngreen'); allowedColours.set('palegreen', 'palegreen'); allowedColours.set('springgreen', 'springgreen'); allowedColours.set('mediumseagreen', 'mediumseagreen'); allowedColours.set('mediumaquamarine', 'mediumaquamarine'); allowedColours.set('aquamarine', 'aquamarine'); allowedColours.set('turquoise', 'turquoise'); allowedColours.set('mediumturquoise', 'mediumturquoise'); allowedColours.set('darkturquoise', 'darkturquoise'); allowedColours.set('aqua', 'aqua'); allowedColours.set('cyan', 'cyan'); allowedColours.set('lightcyan', 'lightcyan'); allowedColours.set('paleturquoise', 'paleturquoise'); allowedColours.set('azure', 'azure'); allowedColours.set('lightblue', 'lightblue'); allowedColours.set('powderblue', 'powderblue'); allowedColours.set('deepskyblue', 'deepskyblue'); allowedColours.set('skyblue', 'skyblue'); allowedColours.set('lightskyblue', 'lightskyblue'); allowedColours.set('steelblue', 'steelblue'); allowedColours.set('royalblue', 'royalblue'); allowedColours.set('mediumslateblue', 'mediumslateblue'); allowedColours.set('slateblue', 'slateblue'); allowedColours.set('darkslateblue', 'darkslateblue'); allowedColours.set('mediumpurple', 'mediumpurple'); allowedColours.set('blueviolet', 'blueviolet'); allowedColours.set('darkviolet', 'darkviolet'); allowedColours.set('darkmagenta', 'darkmagenta'); allowedColours.set('mediumvioletred', 'mediumvioletred'); allowedColours.set('violetred', 'violetred'); allowedColours.set('orchid', 'orchid'); allowedColours.set('darkorchid', 'darkorchid'); allowedColours.set('mediumorchid', 'mediumorchid'); allowedColours.set('thistle', 'thistle'); allowedColours.set('plum', 'plum'); allowedColours.set('purple', 'purple'); allowedColours.set('darkgrey', 'darkgrey'); allowedColours.set('dimgray', 'dimgray'); allowedColours.set('lightgrey', 'lightgrey'); allowedColours.set('grey', 'grey'); allowedColours.set('slategrey', 'slategrey'); allowedColours.set('lightslategrey', 'lightslategrey'); allowedColours.set('whitesmoke', 'whitesmoke'); allowedColours.set('white', 'white'); allowedColours.set('snow', 'snow'); allowedColours.set('mistyrose', 'mistyrose'); allowedColours.set('seashell', 'seashell'); allowedColours.set('antiquewhite', 'antiquewhite'); allowedColours.set('linen', 'linen'); allowedColours.set('oldlace', 'oldlace'); allowedColours.set('papayawhip', 'papayawhip'); allowedColours.set('blanchedalmond', 'blanchedalmond'); allowedColours.set('moccasin', 'moccasin'); allowedColours.set('wheat', 'wheat'); allowedColours.set('navajowhite', 'navajowhite'); allowedColours.set('burlywood', 'burlywood'); allowedColours.set('tan', 'tan'); allowedColours.set('rosybrown', 'rosybrown'); allowedColours.set('sandybrown', 'sandybrown'); allowedColours.set('goldenrod', 'goldenrod'); allowedColours.set('darkgoldenrod', 'darkgoldenrod'); allowedColours.set('peru', 'peru'); allowedColours.set('chocolate', 'chocolate'); allowedColours.set('saddlebrown', 'saddlebrown'); allowedColours.set('sienna', 'sienna'); allowedColours.set('brown', 'brown'); const encodeHTML = (str: string) => { return str.replace(/([\u00A0-\u9999<>&])(.|$)/g, (full, char, next) => { if(char !== '&' || next !== '#') { if(/[\u00A0-\u9999<>&]/.test(next)) next = '&#' + next.charCodeAt(0) + ';'; return '&#' + char.charCodeAt(0) + ';' + next; } return full; }); } export const RoomChatFormatter = (content: string) => { let result = ''; content = encodeHTML(content); content = content.replace(/\[tag\](.*?)\[\/tag\]/g, '$1'); // Youtube link if (!GetConfiguration('youtube.publish.disabled', false)) { content = content.replace( /(?:http:\/\/|https:\/\/)?(?:www\.)?(?:youtube\.com|youtu\.be)\/(?:watch\?.*v=|shorts\/)?([a-zA-Z0-9_-]{11})/g, `
YouTube IconClick on open video to see the YouTube video
Open Video
` ); } const match = content.match(/@[a-zA-Z]+@/); if (match) { const colorTag = match[0].toString(); const colorName = colorTag.substr(1, colorTag.length - 2); const text = content.replace(colorTag, ''); if (!allowedColours.has(colorName)) { result = text; } else { const color = allowedColours.get(colorName); result = `${text}`; } } else { result = content; } return result; }