From f03bf7b9653021e7e3cfee9338916d256ac06557 Mon Sep 17 00:00:00 2001 From: Les De Ridder Date: Sat, 30 Jan 2016 22:57:25 +0100 Subject: [PATCH] Add Twitter image support --- background.js | 32 ++++++++++++++++++++++---------- 1 file changed, 22 insertions(+), 10 deletions(-) diff --git a/background.js b/background.js index 5c12df0..77f2973 100644 --- a/background.js +++ b/background.js @@ -33,7 +33,7 @@ chrome.pageAction.onClicked.addListener(function(tab) { getCurrentTabUrl(function(url) { var betterUrl = getBetterUrl(url); var filename = betterUrl.substr(betterUrl.lastIndexOf("/")); - filename = removeQueryString(filename); + filename = cleanExtension(filename); chrome.storage.sync.get({url: '', tabbehaviour: '', copytoclipboard: false, replacebookmark: false}, function(config) { if(config.url == '') { @@ -78,29 +78,41 @@ function getBetterUrl(url) { var extension = url.substr(extensionIndex + 1); if(extension == "gifv") { - return url.replace("gifv", "mp4"); + url = url.replace("gifv", "mp4"); + } + + if(url.indexOf('pbs.twimg.com/media/') != -1 && url.indexOf(':orig') == -1) { + if(url.indexOf(':') != url.lastIndexOf(':')) { //Match if there are occurences of ':' other than the ':' in 'https://', such as in '.jpg:large' + url = url.substr(0, url.lastIndexOf(':')); + } + + url = url + ':orig'; } return url; } -function removeQueryString(url) { - if(url.indexOf('?') != -1) { - return url.substr(0, url.indexOf('?')); - } else { - return url; +function cleanExtension(url) { + var trailingStrings = ["?", ":orig"]; + + for(trailingString of trailingStrings) { + if(url.indexOf(trailingString) != -1) { + url = url.substr(0, url.indexOf(trailingString)); + } } + + return url; } function isCoolUrl(url) { url = url.toLowerCase(); var extensionIndex = url.lastIndexOf('.'); - var extension = removeQueryString(url.substr(extensionIndex + 1)); + var extension = cleanExtension(url.substr(extensionIndex + 1)); var validExtensions = ["jpg", "jpeg", "png", "gif", "webm", "gifv", "mp4", "mp3", "ogg", "opus"]; - var blackList = ["pomf", "mixtape.moe", "catgirlsare.sexy", "cocaine.ninja"]; + var blackList = ["pomf.", "mixtape.moe", "catgirlsare.sexy", "cocaine.ninja"]; for(black of blackList) { if(url.indexOf(black) != -1) { @@ -120,7 +132,7 @@ chrome.tabs.onUpdated.addListener(function(tabId, changeInfo, tab) { chrome.tabs.onActivated.addListener(function(activeInfo) { chrome.tabs.get(activeInfo.tabId, function(tab) { - if(isCoolUrl(tab.url)) + if(isCoolUrl(getBetterUrl(tab.url))) { chrome.pageAction.show(activeInfo.tabId); }