aboutsummaryrefslogtreecommitdiffstats
path: root/modules/libDLMangaSingleContent.js
blob: 5f658568036d8d281676769b6e08ba9be9bafb37 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
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);