noun_type_jd = new CmdUtils.NounType( "Selections", ["page", "tabs", "this"]);
CmdUtils.CreateCommand({
name: "jdownloader",
icon: "http://jdownloader.org/_media/de/knowledge/wiki/jd_logo.png?w=16&h=16&cache=cache",
homepage: "http://www.jdownloader.org/",
author: { name: "scr4ve, JD-Team", email: "scr4ve@jdownloader.org"},
license: "GPL",
description: "Download files using JDownloader.",
takes: {"page, tabs, this": noun_type_jd},
preview: function( pblock, type) {
switch(type.text)
{
case "tabs":
pblock.innerHTML = "Download all links from the content of every single opened tab.";
break;
case "page":
pblock.innerHTML = "Download all links on this page.";
break;
case "this":
pblock.innerHTML = "Download all links from your current selection.";
break;
default:
pblock.innerHTML = "„page“ to download all links on this page
" +
"„tabs“ to download all links from the content of your tabs
"
+"„this“ to download all links from your current selection";
break;
}
},
execute: function(type) {
var toclip;
switch(type.text)
{
case "tabs":
Application.activeWindow.tabs.forEach(function(tab){
toclip = tab.uri.spec;
for (var i = 0; i < tab.document.links.length; i++)
{
toclip += " " + tab.document.links.item(i).href;
}
});
break;
case "page":
toclip = CmdUtils.getDocument().URL;
for (var i = 0; i < CmdUtils.getDocument().links.length; i++)
{
toclip += " " + CmdUtils.getDocument().links[i].href;
}
break;
case "this":
toclip = CmdUtils.getHtmlSelection();
break;
/*
Not enough performance - jQuery is buggy, too, so not every link will get included.
Thats why i switched to the easy version.
CmdUtils.log(CmdUtils.getHtmlSelection());
var links = jQuery(CmdUtils.getHtmlSelection()).find("a");
if(links.length == 0)
{
toclip = CmdUtils.getHtmlSelection(); //Unfortunately the parser has some problems
break;
}
toclip = ""; //Avoid "undefined"
//Insert all links from the site */
/*
CmdUtils.log(links,CmdUtils.getDocument());
for (var i = 0; i < links.length; i++)
{
FindCorrect: for (var j = 0; j < CmdUtils.getDocument().links.length; j++)
{
if(links.get(i).pathname == CmdUtils.getDocument().links[j].pathname)
{
toclip += " " + CmdUtils.getDocument().links[j].href;
break FindCorrect;
}
}
}
*/
}
//Show Feedback (might be positive or negative)
if (typeof toclip != 'undefined')
{
//Copy to clipboard
CmdUtils.copyToClipboard(toclip);
displayMessage("Make sure that your Clipboard-Detection is turned on! (Or press \"Add\" in JD manually)");
}
else
{
displayMessage("Which links should i download, huh?");
}
}
});