1+ var headers = {
2+ 'Cookie' : 'nw=1' ,
3+ 'User-Agent' : 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:79.0) Gecko/20100101 Firefox/79.0'
4+ } ;
5+
6+ var data = [ ]
7+ var pageCount = 0 ;
8+
9+ function listChapters ( url ) {
10+
11+ var html = mango . get ( url , headers ) . body
12+
13+ var titleNode = mango . css ( html , '.post-title' ) [ 0 ]
14+
15+ var title = mango . text ( titleNode ) . trim ( )
16+
17+ var chaptersNode = mango . css ( html , '.wp-manga-chapter' )
18+
19+ var chapters = [ ]
20+
21+ chaptersNode . forEach ( function ( element ) {
22+ var chapterTitleNode = mango . css ( element , '[href]' ) [ 0 ]
23+ var chapterTitle = mango . text ( chapterTitleNode ) . trim ( ) . split ( " " ) . slice ( 0 , 2 ) . join ( " " )
24+ var id = mango . attribute ( chapterTitleNode , 'href' )
25+ chapters . push ( { id : toHex ( id ) , title : chapterTitle } )
26+ } )
27+
28+ return JSON . stringify ( { chapters : chapters , title : title } )
29+ }
30+
31+ function selectChapter ( id ) {
32+
33+ var link = fromHex ( id )
34+
35+ var html = mango . get ( link , headers ) . body
36+
37+ var titleNode = mango . css ( html , '.main-col h1' ) [ 0 ]
38+
39+ var title = mango . text ( titleNode ) . trim ( )
40+
41+ var readingContentNode = mango . css ( html , '.reading-content .page-break img' )
42+
43+ readingContentNode . forEach ( function ( element ) {
44+ var url = mango . attribute ( element , 'data-src' )
45+ var id = mango . attribute ( element , 'id' )
46+ data . push ( { url : url , id : id } )
47+ } )
48+
49+ return JSON . stringify ( {
50+ title : title ,
51+ pages : data . length
52+ } ) ;
53+ }
54+
55+ function nextPage ( ) {
56+
57+ if ( pageCount == data . length ) {
58+ return JSON . stringify ( { } ) ;
59+ }
60+
61+ var url = data [ pageCount ] . url
62+
63+ var filename = data [ pageCount ] . id
64+
65+ pageCount += 1 ;
66+
67+ return JSON . stringify ( {
68+ url : url ,
69+ filename : filename + '.jpg' ,
70+ headers : headers
71+ } ) ;
72+ }
73+
74+ // convert url to hex string
75+ function toHex ( s ) {
76+ // utf8 to latin1
77+ var s = unescape ( encodeURIComponent ( s ) )
78+ var h = ''
79+ for ( var i = 0 ; i < s . length ; i ++ ) {
80+ h += s . charCodeAt ( i ) . toString ( 16 )
81+ }
82+ return h
83+ }
84+
85+ // convert hex string to url
86+ function fromHex ( h ) {
87+ var s = ''
88+ for ( var i = 0 ; i < h . length ; i += 2 ) {
89+ s += String . fromCharCode ( parseInt ( h . substr ( i , 2 ) , 16 ) )
90+ }
91+ return decodeURIComponent ( escape ( s ) )
92+ }
0 commit comments