82 lines
1.8 KiB
JavaScript
82 lines
1.8 KiB
JavaScript
|
function getCurrentTabUrl(callback) {
|
||
|
var queryInfo = {
|
||
|
active: true,
|
||
|
currentWindow: true
|
||
|
};
|
||
|
|
||
|
chrome.tabs.query(queryInfo, function(tabs) {
|
||
|
var tab = tabs[0];
|
||
|
|
||
|
var url = tab.url;
|
||
|
|
||
|
callback(url);
|
||
|
});
|
||
|
}
|
||
|
|
||
|
chrome.pageAction.onClicked.addListener(function(tab) {
|
||
|
getCurrentTabUrl(function(url) {
|
||
|
var filename = url.substr(url.lastIndexOf("/"));
|
||
|
|
||
|
chrome.storage.sync.get({url: '', behaviour: ''}, function(items) {
|
||
|
if(items.url == '') {
|
||
|
alert("Please select a Pomf clone.");
|
||
|
chrome.tabs.create({ url: "options.html" });
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
var worker = new Worker('worker.js');
|
||
|
worker.onmessage = function(event) {
|
||
|
var response = JSON.parse(event.data);
|
||
|
|
||
|
var newUrl = response.files[0].url;
|
||
|
|
||
|
switch(items.behaviour)
|
||
|
{
|
||
|
case "newtab":
|
||
|
chrome.tabs.create({url: newUrl});
|
||
|
break;
|
||
|
case "replacetab":
|
||
|
chrome.tabs.update({url: newUrl});
|
||
|
break;
|
||
|
}
|
||
|
};
|
||
|
worker.postMessage(JSON.stringify({pomfclone: items.url, url: url, filename: filename}));
|
||
|
});
|
||
|
});
|
||
|
});
|
||
|
|
||
|
function isCoolUrl(url) {
|
||
|
url = url.toLowerCase();
|
||
|
|
||
|
var extensionIndex = url.lastIndexOf('.');
|
||
|
var extension = url.substr(extensionIndex + 1);
|
||
|
|
||
|
var validExtensions = ["jpg", "jpeg", "png", "gif", "webm"];
|
||
|
|
||
|
var blackList = ["pomf", "mixtape.moe", "catgirlsare.sexy", "cocaine.ninja"];
|
||
|
|
||
|
for(black of blackList) {
|
||
|
if(url.indexOf(black) != -1) {
|
||
|
return false;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
return validExtensions.indexOf(extension) != -1;
|
||
|
}
|
||
|
|
||
|
chrome.tabs.onUpdated.addListener(function(tabId, changeInfo, tab) {
|
||
|
if(isCoolUrl(tab.url) && tab.active)
|
||
|
{
|
||
|
chrome.pageAction.show(tabId);
|
||
|
}
|
||
|
});
|
||
|
|
||
|
chrome.tabs.onActivated.addListener(function(activeInfo) {
|
||
|
chrome.tabs.get(activeInfo.tabId, function(tab) {
|
||
|
if(isCoolUrl(tab.url))
|
||
|
{
|
||
|
chrome.pageAction.show(activeInfo.tabId);
|
||
|
}
|
||
|
});
|
||
|
});
|