From 5aea6f7791d9a5238581b04d2198205c90495baf Mon Sep 17 00:00:00 2001 From: yo momma Date: Fri, 30 Jan 2026 08:46:18 +0000 Subject: Fix: upgrade hotlinked http URLs on HTTPS --- static/js/pichat.butt.js | 18 ++++++++++++------ static/js/pichat.js | 20 ++++++++++++++------ static/js/src/text.js | 5 +++-- static/js/src/util.js | 15 +++++++++++---- 4 files changed, 40 insertions(+), 18 deletions(-) diff --git a/static/js/pichat.butt.js b/static/js/pichat.butt.js index 3f16519..220e873 100755 --- a/static/js/pichat.butt.js +++ b/static/js/pichat.butt.js @@ -52,11 +52,16 @@ function escapeHtml(txt) { function normalizeUrl(url) { if (!url) { return url; } - var lowerurl = url.toLowerCase(); - if (lowerurl.indexOf('http://') == 0 || lowerurl.indexOf('https://') == 0 || lowerurl.indexOf('ftp://') == 0 || lowerurl.indexOf('//') == 0) - return url; + var trimmed = url.trim(); + var lowerurl = trimmed.toLowerCase(); + if (lowerurl.indexOf('//') == 0 || lowerurl.indexOf('https://') == 0 || lowerurl.indexOf('ftp://') == 0) + return trimmed; + if (lowerurl.indexOf('http://') == 0) { + if (location && location.protocol == 'https:') return 'https://' + trimmed.substr('http://'.length); + return trimmed; + } var scheme = (location && location.protocol == 'https:') ? 'https://' : 'http://'; - return scheme + url; + return scheme + trimmed; } URLRegex = /((\b(http\:\/\/|https\:\/\/|ftp\:\/\/)|(www\.))+(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?)/gi; @@ -68,9 +73,10 @@ function getImagesAsArray(text) { if (urls === null) return imgs for (var i = 0; i