mirror of
https://github.com/slynn1324/tinypin.git
synced 2026-01-23 02:25:08 +00:00
80 lines
No EOL
2 KiB
JavaScript
80 lines
No EOL
2 KiB
JavaScript
/**
|
|
* Returns a handler which will open a new window when activated.
|
|
*/
|
|
function getClickHandler() {
|
|
return function(info, tab) {
|
|
|
|
if ( !info.srcUrl.startsWith('http') ){
|
|
window.alert("Image source is not a URL.");
|
|
return;
|
|
}
|
|
|
|
var w = 700;
|
|
var h = 800;
|
|
var left = (screen.width/2)-(w/2);
|
|
var top = (screen.height/2)-(h/2);
|
|
|
|
let s = "";
|
|
if ( info.linkUrl ){
|
|
s = info.linkUrl;
|
|
|
|
// strip the google images redirect
|
|
if ( s.startsWith("https://www.google.com/url?") ){
|
|
let parts = s.split("?");
|
|
|
|
if ( parts.length == 2 ){
|
|
|
|
let params = parts[1].split("&");
|
|
|
|
for( let i = 0; i < params.length; ++i ){
|
|
let kv = params[i].split("=");
|
|
|
|
if ( kv.length == 2 ){
|
|
if ( kv[0] == "url" ){
|
|
s = decodeURIComponent(kv[1]);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
s = encodeURIComponent(s);
|
|
|
|
} else {
|
|
s = encodeURIComponent(info.pageUrl);
|
|
}
|
|
|
|
|
|
|
|
var q = "i=" + encodeURIComponent(info.srcUrl) + "&s=" + s;
|
|
|
|
|
|
chrome.storage.sync.get({
|
|
server: 'http://localhost:3000'
|
|
}, function(items){
|
|
let server = items.server;
|
|
|
|
if ( !server.endsWith('/') ){
|
|
server += '/';
|
|
}
|
|
|
|
var url = server + 'addpin.html#' + q;
|
|
|
|
// Create a new window to the info page.
|
|
// chrome.windows.create({ url: url, width: 520, height: 660 });
|
|
chrome.windows.create({ url: url, width: w, height: h, left: left, top: top, type: 'popup' });
|
|
});
|
|
|
|
|
|
};
|
|
};
|
|
|
|
/**
|
|
* Create a context menu which will only show up for images.
|
|
*/
|
|
chrome.contextMenus.create({
|
|
"title" : "add to tinypin",
|
|
"type" : "normal",
|
|
"contexts" : ["image"],
|
|
"onclick" : getClickHandler()
|
|
}); |