mirror of
https://gitcode.com/GitHub_Trending/ji/jitsi-meet.git
synced 2026-05-16 20:17:47 +00:00
The extension of the file modules/UI/side_pannels/chat/smileys.json suggests that the format of the file is JSON. However, it contains JavaScript RegExp instances which do not represent valid JSON. Such discrepancies between file extension and format cause failures in certain tools such as Webpack. Convert the file (both extension and format) into a valid ES2015 module.
56 lines
1.6 KiB
JavaScript
56 lines
1.6 KiB
JavaScript
/* jshint -W101 */
|
|
import { regexes } from './smileys';
|
|
|
|
/**
|
|
* Processes links and smileys in "body"
|
|
*/
|
|
export function processReplacements(body) {
|
|
//make links clickable
|
|
body = linkify(body);
|
|
|
|
//add smileys
|
|
body = smilify(body);
|
|
|
|
return body;
|
|
}
|
|
|
|
/**
|
|
* Finds and replaces all links in the links in "body"
|
|
* with their <a href=""></a>
|
|
*/
|
|
export function linkify(inputText) {
|
|
var replacedText, replacePattern1, replacePattern2, replacePattern3;
|
|
|
|
//URLs starting with http://, https://, or ftp://
|
|
replacePattern1 = /(\b(https?|ftp):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/gim;
|
|
replacedText = inputText.replace(replacePattern1, '<a href="$1" target="_blank">$1</a>');
|
|
|
|
//URLs starting with "www." (without // before it, or it'd re-link the ones done above).
|
|
replacePattern2 = /(^|[^\/])(www\.[\S]+(\b|$))/gim;
|
|
replacedText = replacedText.replace(replacePattern2, '$1<a href="http://$2" target="_blank">$2</a>');
|
|
|
|
//Change email addresses to mailto: links.
|
|
replacePattern3 = /(([a-zA-Z0-9\-\_\.])+@[a-zA-Z\_]+?(\.[a-zA-Z]{2,6})+)/gim;
|
|
replacedText = replacedText.replace(replacePattern3, '<a href="mailto:$1">$1</a>');
|
|
|
|
return replacedText;
|
|
}
|
|
|
|
/**
|
|
* Replaces common smiley strings with images
|
|
*/
|
|
function smilify(body) {
|
|
if(!body) {
|
|
return body;
|
|
}
|
|
|
|
for(var smiley in regexes) {
|
|
if(regexes.hasOwnProperty(smiley)) {
|
|
body = body.replace(regexes[smiley],
|
|
'<img class="smiley" src="images/smileys/' + smiley + '.svg">');
|
|
}
|
|
}
|
|
|
|
return body;
|
|
}
|