diff options
author | mitsugu oyama | 2011-12-25 14:13:37 +0900 |
---|---|---|
committer | mitsugu oyama | 2011-12-26 19:37:01 +0900 |
commit | 5b627b357297761c975187ea291f38092b26cfe3 (patch) | |
tree | fb22ac90cdd94ef7de261db9e144007e754018ca /modules | |
parent | 0077ab8c1711c0ee473d92c70e9bf37850b76f1e (diff) | |
download | vimperator-plugins-5b627b357297761c975187ea291f38092b26cfe3.tar.bz2 |
fix cannot save some manga page
Diffstat (limited to 'modules')
-rw-r--r-- | modules/libDLMangaSingleContent.js | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/modules/libDLMangaSingleContent.js b/modules/libDLMangaSingleContent.js new file mode 100644 index 0000000..5f65856 --- /dev/null +++ b/modules/libDLMangaSingleContent.js @@ -0,0 +1,71 @@ +//
+// libDLMangaSingleContent.js
+//
+// libDLMangaSingleContent.js is code for download content of Manga's
+// single page.
+// libDLMangaSingleContent.js is ran on ChromeWorker thread.
+//
+//
+// accept message:
+// {
+// 'pageUrl' :string,
+// 'refererUrl':string,
+// 'cookie' :string
+// }
+//
+// pageUrl : Manga Single Content URL
+// refererUrl : referer string
+// cookie : cookie string
+//
+//
+// send message:
+// {
+// 'status' :string,
+// 'message' :string,
+// 'refererUrl':string,
+// }
+//
+// status : 'normarl' or 'error'
+// message : error message (string) or content text data (HTML)
+// refererUrl : referer string
+//
+var JSONMessage;
+var xhr;
+
+function trueContent(){
+ let content=xhr.responseText;
+ self.postMessage(
+ {'status':'normal','message':content,'refererUrl':JSONMessage.pageUrl}
+ );
+ return;
+};
+
+function falseContent(){
+ self.postMessage({'status':'error','message':'MANGA CONTENT FILE ACCEPT ERROR!!'});
+ return false;
+};
+
+function downloadContent(){
+ xhr=new XMLHttpRequest();
+ xhr.addEventListener("load",trueContent,false);
+ xhr.addEventListener("error",falseContent,false);
+ xhr.open("GET",JSONMessage.pageUrl,false);
+ if(0<JSONMessage.refererUrl.length){
+ xhr.setRequestHeader('Referer',JSONMessage.refererUrl);
+ };
+ if(0<JSONMessage.cookie.length){
+ xhr.setRequestHeader('Cookie',JSONMessage.cookie);
+ };
+ xhr.send(null);
+};
+
+addEventListener("message",function(event){
+ JSONMessage=JSON.parse(event.data);
+ if(JSONMessage.pageUrl===undefined
+ ||JSONMessage.refererUrl===undefined
+ ||JSONMessage.cookie===undefined){
+ self.postMessage({'status':'error','message':'PARAMETA ERROR!!'});
+ return false;
+ }
+ downloadContent();
+}, false);
|