From b3ab74df53fd6fb7e63c703ec3fe9c6d95d62c28 Mon Sep 17 00:00:00 2001 From: knrt10 Date: Tue, 23 Apr 2019 13:24:24 +0530 Subject: [PATCH] some updates --- app/emoji/client/emojiParser.js | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/app/emoji/client/emojiParser.js b/app/emoji/client/emojiParser.js index 809b3c41569ab..e51727ade06b8 100644 --- a/app/emoji/client/emojiParser.js +++ b/app/emoji/client/emojiParser.js @@ -24,12 +24,24 @@ Tracker.autorun(() => { // '
' to '
' for emojis such at line breaks message.html = message.html.replace(/
/g, '
'); - message.html = Object.entries(emoji.packages).reduce((value, [, emojiPackage]) => emojiPackage.render(value), message.html); + // URL RegEx + const urlRegex = /(http(s)?:\/\/.)?(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)/gm; + + Object.keys(emoji.packages).forEach((emojiPackage) => { + // Divide into array + const splitMessage = message.html.split(' '); + for (const urlIndex in splitMessage) { + // Only change emoji for non URLs + if (!splitMessage[urlIndex].match(urlRegex)) { + splitMessage[urlIndex] = emoji.packages[emojiPackage].render(splitMessage[urlIndex]); + } + } + message.html = splitMessage.join(' '); + }); const checkEmojiOnly = $(`
${ message.html }
`); let emojiOnly = true; - for (let i = 0, len = checkEmojiOnly[0].childNodes.length; i < len; i++) { const childNode = checkEmojiOnly[0].childNodes[i];