diff options
Diffstat (limited to 'static/js/pichat.butt.js')
| -rwxr-xr-x | static/js/pichat.butt.js | 35 |
1 files changed, 22 insertions, 13 deletions
diff --git a/static/js/pichat.butt.js b/static/js/pichat.butt.js index bb1d00f..3f16519 100755 --- a/static/js/pichat.butt.js +++ b/static/js/pichat.butt.js @@ -50,6 +50,15 @@ function escapeHtml(txt) { else { return $("<span>").text(txt).html(); } } +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 scheme = (location && location.protocol == 'https:') ? 'https://' : 'http://'; + return scheme + url; +} + URLRegex = /((\b(http\:\/\/|https\:\/\/|ftp\:\/\/)|(www\.))+(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?)/gi; PicRegex = /\.(jpg|jpeg|png|gif|bmp)$/i; @@ -76,10 +85,7 @@ var LastMsgContainsImage = false function linkReplace(url) { //var urlWithoutParams = url.replace(/\?.*$/i, ""); - if (url.indexOf('http://') == 0 || url.indexOf('https://') == 0 || url.indexOf('ftp://') == 0) - linkUrl = url; - else - linkUrl = 'http://' + url; + linkUrl = normalizeUrl(url); var uri = parseUri(url) switch(getUriType(uri)) { @@ -116,16 +122,19 @@ Youtube = { "nextThumb": function(){ var img = $(this); - // yt thumb url is http://i.ytimg.com/vi/0123456789A/1.jpg - var v = img.attr("src").substr(22,11) - var num = img.attr("src").charAt(34); - img.attr("src", (Youtube.nextThumbUrl(v, num))) + // yt thumb url example: https://i.ytimg.com/vi/0123456789A/1.jpg + var src = img.attr("src") || "" + var match = src.match(/\\/vi\\/([^/]{11})\\/(\\d)\\.jpg/i) + if (!match) return + var v = match[1] + var num = match[2] + img.attr("src", Youtube.nextThumbUrl(v, num)) }, "nextThumbUrl": function(v, num){ if (!num) num = 0; num = (parseInt(num) % 3) + 1 // cycle over 1,2,3 - return "http://i.ytimg.com/vi/" + v + "/" + num + ".jpg" + return "https://i.ytimg.com/vi/" + v + "/" + num + ".jpg" }, } @@ -148,7 +157,7 @@ function linkifyWithoutImage(text) { function linkReplaceWithoutImage(url){ var urlWithoutParams = url.replace(/\?.*$/i, ""); - linkUrl = url.indexOf('http://') == 0 ? url : 'http://' + url; + linkUrl = normalizeUrl(url); return "<a target='_blank' href='" + linkUrl + "'>" + url + "</a>" } @@ -839,17 +848,17 @@ Share = { }, "tumblr": function(button){ var message = getMessageInfo(button) - var url = "http://www.tumblr.com/share?v=3&u=" + message.img + "&t=" + message.via + var url = "https://www.tumblr.com/share?v=3&u=" + message.img + "&t=" + message.via Share.openLink(url) }, "twitter": function(button){ var message = getMessageInfo(button) - var url = "http://twitter.com/home?status=" + message.img + encodeURIComponent(" ") + message.via + var url = "https://twitter.com/home?status=" + message.img + encodeURIComponent(" ") + message.via Share.openLink(url) }, "delicious": function(button){ var message = getMessageInfo(button) - var url = "http://delicious.com/save?url=" + message.img + "&title=" + message.img + "¬es=" + message.via + var url = "https://delicious.com/save?url=" + message.img + "&title=" + message.img + "¬es=" + message.via Share.openLink(url) } } |
