aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--_libly.js2
-rw-r--r--pixiv.js81
-rw-r--r--simg.js80
3 files changed, 78 insertions, 85 deletions
diff --git a/_libly.js b/_libly.js
index db17233..9471fc4 100644
--- a/_libly.js
+++ b/_libly.js
@@ -245,7 +245,7 @@ libly.$U = {//{{{
let pluginPath;
Error('hoge').stack.split(/\n/).some(
function (s)
- let (m = s.match(/^(?:\(\))?@chrome:\/\/liberator\/content\/liberator\.js -> (.+):\d+$/))
+ let (m = s.match(/-> liberator:\/\/template\/chrome:\/\/liberator\/content\/liberator\.js -> (.+):\d+$/))
(m && (pluginPath = m[1].replace(/\?.*$/, '')))
);
return pluginPath;
diff --git a/pixiv.js b/pixiv.js
index ba34834..35490bc 100644
--- a/pixiv.js
+++ b/pixiv.js
@@ -43,6 +43,12 @@ commands.addUserCommand(
let cookie=contents.cookie;
// }}}
+ let fp;
+ let url;
+ let type;
+ let saveDirectory;
+ let xhrImgInfo;
+
// {{{ convert to DOM Document from text
let getDOMHtmlDocument=function(str){
let doc;
@@ -163,21 +169,6 @@ commands.addUserCommand(
},false);
// }}}
-// {{{ directory picker
- let directoryPicker=function() {
- let path;
- let fp=Cc["@mozilla.org/filepicker;1"].createInstance(Ci.nsIFilePicker);
- fp.init(window,'Select Directory',Ci.nsIFilePicker.modeGetFolder);
- let result=fp.show();
- if(result==Ci.nsIFilePicker.returnOK){
- return fp.file;
- }
- return null;
- };
- let saveDirectory=directoryPicker();
- if(saveDirectory==null) return false;
-// }}}
-
// {{{ send request save image
let saveImage=function(imgUrl,savePath,referer,cookie){
let objMessage={
@@ -282,19 +273,7 @@ commands.addUserCommand(
};
// }}}
-// {{{ first XMLHttpRequest
- let url;
- let type=contents.getElementsByClassName('works_display')
- .item(0).firstChild.getAttribute('href');
- if(-1!=type.search(/big&illust_id=/i)){
- url=contents.documentURI.replace('medium','big');
- }else if(-1!=type.search(/manga&illust_id=/i)){
- url=contents.documentURI.replace('medium','manga')+'&type=scroll';
- }else{
- liberator.echoerr("This page is not image page and not manga page.");
- return false;
- }
-
+// {{{ trueImgINfo
let trueImgInfo=function(){
if(-1!=type.search(/big&illust_id=/i)){
saveImageFile();
@@ -305,23 +284,49 @@ commands.addUserCommand(
return false;
}
};
+// }}}
+// {{{ falseImgInfo
let falseImgInfo=function(){
liberator.echo("Image Infomation page accept error.");
return false;
};
+// }}}
- let xhrImgInfo;
- xhrImgInfo=Cc["@mozilla.org/xmlextras/xmlhttprequest;1"].createInstance();
- xhrImgInfo.QueryInterface(Ci.nsIDOMEventTarget);
- xhrImgInfo.addEventListener("load",trueImgInfo,false);
- xhrImgInfo.addEventListener("error",falseImgInfo,false);
- xhrImgInfo.QueryInterface(Ci.nsIXMLHttpRequest);
- xhrImgInfo.open("GET",url,true);
- xhrImgInfo.setRequestHeader('Referer',contents.URL);
- xhrImgInfo.setRequestHeader('Cookie',cookie);
- xhrImgInfo.send(null);
+// {{{ fpCallback
+ let fpCallback = {
+ done : function (aResult) {
+ if ( aResult == fp.returnOK ) {
+ saveDirectory = fp.file;
+ xhrImgInfo = Cc["@mozilla.org/xmlextras/xmlhttprequest;1"]
+ .createInstance();
+ xhrImgInfo.QueryInterface( Ci.nsIDOMEventTarget );
+ xhrImgInfo.addEventListener( "load", trueImgInfo, false );
+ xhrImgInfo.addEventListener( "error", falseImgInfo, false );
+ xhrImgInfo.QueryInterface( Ci.nsIXMLHttpRequest );
+ xhrImgInfo.open( "GET", url, true);
+ xhrImgInfo.setRequestHeader( 'Referer', contents.URL );
+ xhrImgInfo.setRequestHeader( 'Cookie', cookie );
+ xhrImgInfo.send( null );
+ }
+ }
+ };
// }}}
+
+ type = contents.getElementsByClassName('works_display')
+ .item(0).firstChild.getAttribute('href');
+ if(-1!=type.search(/big&illust_id=/i)){
+ url=contents.documentURI.replace('medium','big');
+ }else if(-1!=type.search(/manga&illust_id=/i)){
+ url=contents.documentURI.replace('medium','manga')+'&type=scroll';
+ }else{
+ liberator.echoerr("This page is not image page and not manga page.");
+ return false;
+ }
+
+ fp = Cc["@mozilla.org/filepicker;1"].createInstance( Ci.nsIFilePicker );
+ fp.init( window, 'Select Directory', fp.modeGetFolder );
+ let result=fp.open( fpCallback );
},
{},
true
diff --git a/simg.js b/simg.js
index b3eaeee..afbc477 100644
--- a/simg.js
+++ b/simg.js
@@ -28,33 +28,12 @@ commands.addUserCommand(
let Ci=Components.interfaces;
let cookie=contents.cookie;
let xhrImg;
-
- let directoryPicker=function() {
- let path;
- let fp=Cc["@mozilla.org/filepicker;1"].createInstance(Ci.nsIFilePicker);
- fp.init(window,'Select Directory',Ci.nsIFilePicker.modeGetFolder);
- let result=fp.show();
- switch(result){
- case Ci.nsIFilePicker.returnOK:
- path=fp.file.path;
- break;
- default:
- case Ci.nsIFilePicker.returnCancel:
- return '';
- }
- return path;
- };
-
- let saveDirectory=directoryPicker();
- if(saveDirectory.length<1){
- delete saveDirectory;
- delete cookie;
- delete contents;
- return;
- }
+ let fp;
let imgURL=contents.URL;
let savePath;
+ let saveDirectory;
+// {{{ trueCurrnetImg
let trueCurrntImg=function(){
let fileName=imgURL.substr(imgURL.lastIndexOf('/'));
if (-1!=fileName.indexOf('?')){
@@ -90,32 +69,41 @@ commands.addUserCommand(
}else{
outstream.close();
}
- delete instream;
- delete outstream;
- delete imgURL;
- delete saveDirectory;
- delete cookie;
- delete contents;
};
+// }}}
+
+// {{{ falseCurrnetImg
let falseCurrntImg=function(){
liberator.echo("Image file accept error.");
- delete imgURL;
- delete saveDirectory;
- delete cookie;
- delete contents;
return false;
};
+// }}}
+
+// {{{ fpCallback
+ let fpCallback = {
+ done : function (aResult) {
+ if ( aResult == fp.returnOK ) {
+ saveDirectory = fp.file.path;
+ xhrImg=Cc["@mozilla.org/xmlextras/xmlhttprequest;1"].createInstance();
+ xhrImg.QueryInterface(Ci.nsIDOMEventTarget);
+ xhrImg.addEventListener("load",trueCurrntImg,false);
+ xhrImg.addEventListener("error",falseCurrntImg,false);
+ xhrImg.QueryInterface(Ci.nsIXMLHttpRequest);
+ xhrImg.open("GET",imgURL,true);
+ xhrImg.overrideMimeType('text/plain;charset=x-user-defined');
+ xhrImg.setRequestHeader('Referer',contents.URL);
+ xhrImg.setRequestHeader('Cookie',cookie);
+ xhrImg.send(null);
+ }
+ }
+ };
+// }}}
+
+ fp = Cc["@mozilla.org/filepicker;1"].createInstance( Ci.nsIFilePicker );
+ fp.init( window, 'Select Directory', fp.modeGetFolder );
+ fp.open( fpCallback );
+ },
+ {},
+ true
- xhrImg=Cc["@mozilla.org/xmlextras/xmlhttprequest;1"]
- .createInstance();
- xhrImg.QueryInterface(Ci.nsIDOMEventTarget);
- xhrImg.addEventListener("load",trueCurrntImg,false);
- xhrImg.addEventListener("error",falseCurrntImg,false);
- xhrImg.QueryInterface(Ci.nsIXMLHttpRequest);
- xhrImg.open("GET",imgURL,true);
- xhrImg.overrideMimeType('text/plain;charset=x-user-defined');
- xhrImg.setRequestHeader('Referer',contents.URL);
- xhrImg.setRequestHeader('Cookie',cookie);
- xhrImg.send(null);
- }
);