package Ġcc . ao ei uv 0 2 0 . com ic . api Ċ Ċ import Ġio . reactivex . Observable Ċ import Ġjava . net . URL Encoder Ċ Ċ /** Ċ Ġ* Ġ æ³ ¡ æ³ ¡ æ¼ « çĶ» ï¼Į Ċ Ġ* ĠCreated Ġby ĠA o E iu V 0 2 0 Ġon Ġ 2 0 1 7 . 0 9 . 0 9 - 2 1 : 0 8 : 0 2 . Ċ Ġ*/ Ċ @ Suppress (" Un necessary Variable ") Ċ class ĠPop om h Context Ġ: ĠCom ic Context () Ġ{ ĊĠĠĠ Ġprivate Ġval Ġsite Ġ= ĠCom ic Site ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġ" æ³ ¡ æ³ ¡ æ¼ « çĶ» ", ĊĠĠĠĠĠĠĠĠĠĠĠ ĠbaseUrl Ġ= Ġ" http :// www . pop om h . com ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlogo Ġ= Ġ" http :// www . pop om h . com / images / logo . png " ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġoverride Ġfun Ġget Com ic Site (): ĠCom ic Site Ġ= Ġsite ĊĠĠĠ Ġoverride Ġfun Ġget Gen res (): ĠList < Com ic Genre > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġroot Ġ= Ġget Html ( site . baseUrl ) ĊĠĠĠĠĠĠĠ Ġval Ġelements Ġ= Ġroot . select ("# i H BG Ġ> Ġdiv . c H Nav Ġ> Ġdiv Ġ> Ġspan Ġ> Ġa , Ġ# i H BG Ġ> Ġdiv . c H Nav Ġ> Ġdiv Ġa : has ( span )") ĊĠĠĠĠĠĠĠ Ġreturn Ġelements . map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġa Ġ= Ġit ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCom ic Genre ( text ( a ), Ġabs Href ( a )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetNext Page ( genre : ĠCom ic Genre ): ĠCom ic Genre ? Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( is SearchResult ( genre )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ è¿Ļ ç½ĳç«Ļ æĲľç´¢ ç»ĵæŀľ åıªæľī ä¸Ģ é¡µ ï¼Į ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġroot Ġ= Ġget Html ( genre . url ) ĊĠĠĠĠĠĠĠ Ġval Ġa Ġ= Ġroot . select ("# i Com ic PC 1 Ġ> Ġspan Ġ> Ġa : nth - child ( 3 ) "). first () ĊĠĠĠĠĠĠĠ Ġval Ġurl Ġ= Ġabs Href ( a ) ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( url . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCom ic Genre ( genre . name , Ġurl ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Com ic List ( genre : ĠCom ic Genre ): ĠList < Com ic ListItem > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġroot Ġ= Ġget Html ( genre . url ) ĊĠĠĠĠĠĠĠ Ġval Ġelements Ġ= Ġroot . select ("# list Ġ> Ġdiv . c Com ic List Ġ> Ġli Ġ> Ġa ") ĊĠĠĠĠĠĠĠ Ġreturn Ġelements . map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġa Ġ= Ġit ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġimg Ġ= Ġit . select (" img "). first () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCom ic ListItem ( text ( a ), Ġsrc ( img ), Ġabs Href ( a )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġsearch ( name : ĠString ): ĠCom ic Genre Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠCom ic Genre ( name , Ġsearch Url ( name )) Ċ /* ĊĠĠĠĠĠĠĠ Ġval Ġurl Encoded Name Ġ= ĠURL Encoder . encode ( name , Ġ" UTF - 8 ") ĊĠĠĠĠĠĠĠ Ġval Ġroot Ġ= Ġget Html ( abs Url ("/ com ic /? act = search & st =$ url Encoded Name ")) ĊĠĠĠĠĠĠĠ Ġval Ġelements Ġ= Ġroot . select ("# list Ġ> Ġdiv . c Com ic List Ġ> Ġli Ġ> Ġa ") ĊĠĠĠĠĠĠĠ Ġreturn Ġelements . map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġa Ġ= Ġit ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġimg Ġ= Ġit . select (" img "). first () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCom ic ListItem ( text ( a ), Ġsrc ( img ), Ġabs Href ( a )) ĊĠĠĠĠĠĠĠ Ġ} Ċ */ ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsearch Url ( name : ĠString ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġurl Encoded Name Ġ= ĠURL Encoder . encode ( name , Ġ" UTF - 8 ") ĊĠĠĠĠĠĠĠ Ġreturn Ġabs Url ("/ com ic /? act = search & st =$ url Encoded Name ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġis SearchResult ( genre : ĠCom ic Genre ): ĠBoolean Ġ= Ġgenre . url . matches ( Regex (" .* act = search .* ")) ĊĊĠĠĠ Ġoverride Ġfun Ġget Com ic Detail ( com ic Detail Url : ĠCom ic Detail Url ): ĠCom ic Detail Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġroot Ġ= Ġget Html ( com ic Detail Url . url ) ĊĠĠĠĠĠĠĠ Ġval Ġname Ġ= Ġtext ( root . select ("# about _ kit Ġ> Ġul Ġ> Ġli : nth - child ( 1 ) Ġ> Ġh 1 ")). trim () ĊĠĠĠĠĠĠĠ Ġval Ġimg Ġ= Ġroot . select ("# about _ style Ġ> Ġimg "). first () ĊĠĠĠĠĠĠĠ Ġval Ġbig Img Ġ= Ġsrc ( img ) ĊĠĠĠĠĠĠĠ Ġval Ġinfo Ġ= Ġroot . select ("# about _ kit Ġ> Ġul Ġ> Ġli : not (: nth - child ( 1 )) ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. join ToString ("\ n ") Ġ{ Ġtext ( it ) Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġissues Ġ= Ġroot . select ("# permalink Ġ> Ġdiv . c Vol List Ġ> Ġul Ġ> Ġli Ġ> Ġa "). map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġa Ġ= Ġit ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCom ic Issue ( text ( a ). remove Prefix ( name ), Ġabs Href ( a )) ĊĠĠĠĠĠĠĠ Ġ}. as Re versed () ĊĠĠĠĠĠĠĠ Ġreturn ĠCom ic Detail ( name , Ġbig Img , Ġinfo , Ġissues ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Com ic Pages ( com ic Issue : ĠCom ic Issue ): ĠList < Com ic Page > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfirst Ġ= Ġget Html ( com ic Issue . url ) ĊĠĠĠĠĠĠĠ Ġval Ġpages Count Ġ= Ġfirst . select (" body Ġ> Ġdiv . c Header Ġ> Ġdiv . c H 1 Ġ> Ġb ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. first (). text (). split ('/ ')[ 1 ]. trim (). toInt () ĊĠĠĠĠĠĠĠ Ġreturn ĠList ( pages Count ) Ġ{ Ġindex Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCom ic Page ( Observable . from Callable Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget Com ic Image ( com ic Issue . url . replace ( Regex ("/ \\ d *. html "), Ġ"/ ${ index Ġ+ Ġ 1 }. html ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ ç½ĳç«Ļ æľī ä¸¤ä¸ª åĽ¾çīĩ æľįåĬ¡åĻ¨ ï¼Į é»ĺè®¤ ç¬¬ä¸Ģä¸ª ï¼Į ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġvar Ġdomain Index : ĠInt Ġ= Ġ 0 ĊĊĠĠĠ Ġfun Ġget Com ic Image ( url : ĠString ): ĠCom ic Image Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġroot Ġ= Ġget Html ( url ) ĊĠĠĠĠĠĠĠ Ġval Ġdomains Ġ= Ġroot . select ("# hd Domain "). first (). attr (" value "). split ('| ') ĊĠĠĠĠĠĠĠ Ġval Ġdomain Ġ= Ġdomains [ if Ġ( domain Index Ġ< Ġ 0 ) Ġ 0 Ġelse Ġif Ġ( domain Index Ġ> Ġdomains . size ) Ġdomains . size Ġelse Ġdomain Index ] ĊĠĠĠĠĠĠĠ Ġval Ġcipher Ġ= Ġroot . select ("# img 7 6 5 2 , Ġ# img 1 0 2 1 , Ġ# img 2 3 9 1 , Ġ# img Curr ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. first (). attr (" name ") ĊĠĠĠĠĠĠĠ Ġval Ġimg Ġ= Ġdomain Ġ+ Ġun s uan ( cipher ) ĊĠĠĠĠĠĠĠ Ġreturn ĠCom ic Image ( img ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġä»İ js æĸ¹æ³ķ ç¿» è¯ĳ è¿ĩ æĿ¥ ï¼Į ĊĠĠĠĠ Ġ* Ġæĸ¹æ³ķ åĲį æĦı ä¹ī æľª çŁ¥ ï¼Į ĊĠĠĠĠ Ġ* Ġhttp :// www . pop om h . com / script / view . js ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġun s uan ( cipher : ĠString ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġs Ġ= Ġcipher ĊĠĠĠĠĠĠĠ Ġval Ġx Ġ= Ġs . substring ( s . length Ġ- Ġ 1 ) ĊĠĠĠĠĠĠĠ Ġval Ġw Ġ= Ġ" abcdefgh ijkl mnopqrst uvw xyz " ĊĠĠĠĠĠĠĠ Ġval Ġxi Ġ= Ġw . indexOf ( x ) Ġ+ Ġ 1 ĊĠĠĠĠĠĠĠ Ġval Ġsk Ġ= Ġs . substring ( s . length Ġ- Ġxi Ġ- Ġ 1 2 , Ġs . length Ġ- Ġxi Ġ- Ġ 1 ) ĊĠĠĠĠĠĠĠ Ġs Ġ= Ġs . substring ( 0 , Ġs . length Ġ- Ġxi Ġ- Ġ 1 2 ) ĊĠĠĠĠĠĠĠ Ġval Ġk Ġ= Ġsk . substring ( 0 , Ġsk . length Ġ- Ġ 1 ) ĊĠĠĠĠĠĠĠ Ġval Ġf Ġ= Ġsk . substring ( sk . length Ġ- Ġ 1 ) ĊĠĠĠĠĠĠĠ Ġvar Ġi Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġwhile Ġ( i Ġ< Ġk . length ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġs Ġ= Ġs . replace ( k [ i ], Ġi . toString ()[ 0 ]) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġi ++ ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġss Ġ= Ġs . split ( f ) ĊĠĠĠĠĠĠĠ Ġs Ġ= Ġ"" ĊĠĠĠĠĠĠĠ Ġi Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġwhile Ġ( i Ġ< Ġss . size ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġs Ġ+= Ġss [ i ]. toInt (). to Char () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġi ++ ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġs ĊĠĠĠ Ġ} Ċ }