diff options
Diffstat (limited to 'static/js/pichat.js')
| -rwxr-xr-x | static/js/pichat.js | 66 |
1 files changed, 40 insertions, 26 deletions
diff --git a/static/js/pichat.js b/static/js/pichat.js index 895cfc7..67969d8 100755 --- a/static/js/pichat.js +++ b/static/js/pichat.js @@ -203,6 +203,9 @@ var SHA1 = { window.RootDomain = location.href.match(/http:\/\/(\w)+\./) ? '/' : '/'; +if (typeof window.Nick === 'undefined') { window.Nick = null; } +if (typeof window.Domain === 'undefined') { window.Domain = ''; } + window.cache = {}; window.PendingMessages = {}; window.MessageContentCache = {}; @@ -229,9 +232,17 @@ window.Anim = { "logThumbBig": {"width": "64px", "height": "64px", "marginRight": "-2px", "marginTop": "-2px"} } +function getCookieDomain() { + if (!location || !location.hostname) { return null; } + var hostname = location.hostname; + if (hostname == 'localhost' || hostname.match(/^\\d+\\.\\d+\\.\\d+\\.\\d+$/)) { return null; } + var parts = hostname.split("."); + if (parts.length < 2) { return null; } + return "." + parts.slice(-2).join("."); +} window.Preferences = { - "Domain": '.dump.fm', + "Domain": getCookieDomain(), "getProperty": function(prop, defaultValue) { var value = $.cookie(prop); @@ -246,7 +257,6 @@ window.Preferences = { $.cookie(prop, null, { domain: Preferences.Domain, path: '/' }); } }; - window.Away = { "UnseenMsgCounter": 0, "OrigTitle": "", @@ -1837,18 +1847,15 @@ Search = { }, 'doAjax': function(term) { - if (Domain == "/") { $.ajax({ "dataType": "json", "url": "/cmd/search/" + term, "success": Search.results, - "error": Search.error, + "error": function(_xhr, _status, error){ + Search.searchError(error || "search failed") + }, "timeout": 20000, }) - } else { // search main site via jsonp - $("#search-script").remove() - $("head").append("<s"+"cript src='/cmd/search/"+term+"?callback=Search.results' id='search-script'></s"+"cript>") - } }, 'click': function(e){ @@ -1884,7 +1891,7 @@ Search = { if (url.charAt(0) == '/') url = '/images' + url else - url = 'http://' + url + url = normalizeUrl(url) urls.push(url) }) ImgCache.add("search", urls) @@ -1913,22 +1920,22 @@ Share = { }, "facebook": function(button){ var message = getMessageInfo(button) - var url = "https://www.facebook.com/share.php?u=" + message.img + "&t=" + message.via + var url = "https://www.facebook.com/share.php?u=" + encodeURIComponent(message.img) + "&t=" + encodeURIComponent(message.via) Share.openLink(url) }, "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=" + encodeURIComponent(message.img) + "&t=" + encodeURIComponent(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/intent/tweet?text=" + encodeURIComponent(message.img + " " + 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=" + encodeURIComponent(message.img) + "&title=" + encodeURIComponent(message.img) + "¬es=" + encodeURIComponent(message.via) Share.openLink(url) } } @@ -2082,7 +2089,7 @@ Tag = { if (isAdding) { var link = $('<a>') - .attr('href', Domain + '/' + Nick + '/popular') + .attr('href', RootDomain + Nick + '/popular') .append($('<b>').text(Nick)) .append(" "); $dump.find('.faver-list').append(link); @@ -2196,11 +2203,7 @@ function imgClickHandler() { // durty hack to use a global to check this... but otherwise i'd have to rewrite the String.replace function? :/ var LastMsgContainsImage = false function linkReplace(url) { - var lowerurl = url.toLowerCase(); - if (lowerurl.indexOf('http://') == 0 || lowerurl.indexOf('https://') == 0 || lowerurl.indexOf('ftp://') == 0) - linkUrl = url; - else - linkUrl = 'http://' + url; + linkUrl = normalizeUrl(url); var uri = parseUri(url) var type = getUriType(uri) @@ -2255,7 +2258,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>" } @@ -2325,6 +2328,15 @@ isEmptyObject = function(obj) { String.prototype.trim = function(){ return this.replace(/^\s+|\s+$/g,'') } +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; +} + function isCSSPropertySupported(prop){ return prop in document.body.style } function track(group, name) { @@ -2402,7 +2414,6 @@ window.requestAnimFrame = (function(){ function text_off(){ setTextEnable.call( $("#textbutton input").attr("checked",false) ) } - Youtube = { "timer": 0, @@ -2422,16 +2433,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" }, } |
