From 3afe7e7fec4712ccc32f2f3e131e27ee39a1cb4e Mon Sep 17 00:00:00 2001 From: Igor Zhukov Date: Mon, 12 Dec 2016 14:15:20 +0300 Subject: [PATCH] Improved URLs with urlencoding display --- app/js/lib/ng_utils.js | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/app/js/lib/ng_utils.js b/app/js/lib/ng_utils.js index a29b5f61..e86d22c8 100755 --- a/app/js/lib/ng_utils.js +++ b/app/js/lib/ng_utils.js @@ -1664,13 +1664,20 @@ angular.module('izhukov.utils', []) skipEntity = true break } - var url = entity.url || entityText - url = wrapUrl(url, entity._ == 'messageEntityTextUrl' ? true : false) + var inner + if (entity._ == 'messageEntityTextUrl') { + url = entity.url + url = wrapUrl(url, true) + inner = wrapRichNestedText(entityText, entity.nested, options) + } else { + url = wrapUrl(entityText, false) + inner = encodeEntities(replaceUrlEncodings(entityText)) + } html.push( '', - wrapRichNestedText(entityText, entity.nested, options), + inner, '' ) break @@ -1867,6 +1874,16 @@ angular.module('izhukov.utils', []) return url } + function replaceUrlEncodings(urlWithEncoded) { + return urlWithEncoded.replace(/(%[A-Z\d]{2})+/g, function (str) { + try { + return decodeURIComponent(str); + } catch (e) { + return str + } + }) + } + function wrapPlainText (text, options) { if (emojiSupported) { return text