package Ġeu . kan ade . t ach iy omi . extension . pt . manga host Ċ Ċ import Ġeu . kan ade . t ach iy omi . network . GET Ċ import Ġeu . kan ade . t ach iy omi . source . model .* Ċ import Ġeu . kan ade . t ach iy omi . source . online . Parsed Http Source Ċ import Ġokhttp 3 .* Ċ import Ġorg . js oup . J soup Ċ import Ġorg . js oup . nodes . Document Ċ import Ġorg . js oup . nodes . Element Ċ import Ġjava . text . ParseException Ċ import Ġjava . text . SimpleDateFormat Ċ import Ġjava . util . Locale Ċ Ċ class ĠM anga Host Ġ: ĠParsed Http Source () Ġ{ ĊĊĠĠĠ Ġoverride Ġval Ġname Ġ= Ġ" M anga ĠHost " ĊĊĠĠĠ Ġoverride Ġval ĠbaseUrl Ġ= Ġ" https :// manga hosted . com " ĊĊĠĠĠ Ġoverride Ġval Ġlang Ġ= Ġ" pt " ĊĊĠĠĠ Ġoverride Ġval Ġsupports Latest Ġ= Ġtrue ĊĊĠĠĠ Ġprivate Ġval Ġcatalog Headers Ġ= ĠHeaders . Builder (). apply Ġ{ ĊĠĠĠĠĠĠĠ Ġadd (" User - Agent ", Ġ" Mozilla / 5 . 0 Ġ( Windows ĠNT Ġ 1 0 . 0 ; ĠWin 6 4 ; Ġx 6 4 ) ĠAppleWebKit / 5 3 7 . 3 6 Ġ( KHTML , Ġlike ĠGecko ) ĠChrome / 6 9 . 0 . 3 4 9 7 . 9 2 ĠSafari / 5 3 7 . 3 6 ") ĊĠĠĠĠĠĠĠ Ġadd (" Refer er ", ĠbaseUrl ) ĊĠĠĠ Ġ}. build () ĊĊĠĠĠ Ġprivate Ġfun Ġm anga From Element ( element : ĠElement , Ġlazy : ĠBoolean Ġ= Ġtrue ): ĠSM anga Ġ= ĠSM anga . create (). apply Ġ{ ĊĠĠĠĠĠĠĠ Ġtitle Ġ= Ġelement . attr (" title "). replace ( LANG _ REGEX . to Regex (), Ġ"") ĊĠĠĠĠĠĠĠ Ġthumbnail _ url Ġ= Ġelement . select (" img . manga "). attr ( if Ġ( lazy ) Ġ" data - path " Ġelse Ġ" src ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. replace ( IMAGE _ REGEX . to Regex (), Ġ"_ large .") ĊĠĠĠĠĠĠĠ Ġset Url Without Domain ( element . attr (" href ")) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġpopular M anga Selector (): ĠString Ġ= Ġ" div . thumbnail Ġdiv Ġa . pull - left " ĊĊĠĠĠ Ġoverride Ġfun Ġpopular M anga Request ( page : ĠInt ): ĠRequest Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġpage Str Ġ= Ġif Ġ( page Ġ!= Ġ 1 ) Ġ"/ page /$ page " Ġelse Ġ"" ĊĠĠĠĠĠĠĠ Ġreturn ĠGET ("$ baseUrl / m ang as / ma is - visual izados $ page Str ", Ġcatalog Headers ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġpopular M anga From Element ( element : ĠElement ): ĠSM anga Ġ= Ġm anga From Element ( element ) ĊĊĠĠĠ Ġoverride Ġfun Ġpopular M anga Next Page Selector () Ġ= Ġ" div . wp - pag en avi : has ( a . next posts link )" ĊĊĠĠĠ Ġoverride Ġfun Ġlatest Updates Selector () Ġ= Ġ" table . table - l anc amentos Ġ> Ġtbody Ġ> Ġtr Ġ> Ġtd : eq ( 0 ) Ġ> Ġa " ĊĊĠĠĠ Ġoverride Ġfun Ġlatest Updates Request ( page : ĠInt ): ĠRequest Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġpage Str Ġ= Ġif Ġ( page Ġ!= Ġ 1 ) Ġ"/ page /$ page " Ġelse Ġ"" ĊĠĠĠĠĠĠĠ Ġreturn ĠGET ("$ baseUrl / l anc amentos $ page Str ", Ġcatalog Headers ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġlatest Updates From Element ( element : ĠElement ): ĠSM anga Ġ= Ġm anga From Element ( element , Ġfalse ) ĊĊĠĠĠ Ġoverride Ġfun Ġlatest Updates Next Page Selector () Ġ= Ġpopular M anga Next Page Selector () ĊĊĠĠĠ Ġoverride Ġfun Ġsearch M anga Request ( page : ĠInt , Ġquery : ĠString , Ġfilters : ĠFilter List ): ĠRequest Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠThe Ġsite Ġsometimes Ġrecognize Ġit 's Ġa Ġc rawler Ġand Ġreturn Ġonly Ġa ĊĠĠĠĠĠĠĠ Ġ// Ġm anga Ġcalled Ġ" Robot " Ġif Ġthe Ġ" find /$ query " Ġis Ġused Ġdirectly . ĊĠĠĠĠĠĠ Ġreturn ĠGET ("$ baseUrl / find /? this =$ query ", Ġcatalog Headers ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġsearch M anga Selector () Ġ= Ġ" table . table - search Ġ> Ġtbody Ġ> Ġtr Ġ> Ġtd : eq ( 0 ) Ġ> Ġa " ĊĊĠĠĠ Ġoverride Ġfun Ġsearch M anga From Element ( element : ĠElement ): ĠSM anga Ġ= Ġm anga From Element ( element ) ĊĊĠĠĠ Ġoverride Ġfun Ġsearch M anga Next Page Selector () Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġfun Ġm anga Details Parse ( document : ĠDocument ): ĠSM anga Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġinfo Element Ġ= Ġdocument . select (" div # page Ġ> Ġsection Ġ> Ġdiv Ġ> Ġdiv . pull - left ") ĊĊĠĠĠĠĠĠĠ Ġval Ġm anga Ġ= ĠSM anga . create () ĊĊĠĠĠĠĠĠĠ Ġval Ġauthor Ġ= Ġinfo Element . select (" li : contains ( Autor :) "). text () ĊĠĠĠĠĠĠĠ Ġm anga . author Ġ= Ġremove Label ( author ) ĊĊĠĠĠĠĠĠĠ Ġval Ġartist Ġ= Ġinfo Element . select (" li : contains ( Des en ho Ġ( Art ): ) "). text () ĊĠĠĠĠĠĠĠ Ġm anga . artist Ġ= Ġremove Label ( artist ) ĊĊĠĠĠĠĠĠĠ Ġval Ġgenre Ġ= Ġinfo Element . select (" li : contains ( Categoria ( s ): ) "). text () ĊĠĠĠĠĠĠĠ Ġm anga . genre Ġ= Ġremove Label ( genre ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠSome Ġm ang as Ġlike ĠSh ing ek i Ġno ĠK yo jin Ġhave Ġsome Ġlinks Ġin Ġdescription . ĊĠĠĠĠĠĠĠ Ġm anga . description Ġ= Ġinfo Element . select (" article "). first () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ? . text ()?. substring Before (" Rel acion ados :") ĊĊĠĠĠĠĠĠĠ Ġm anga . status Ġ= Ġinfo Element . select (" li : contains ( Status :) "). text () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. or Empty (). let Ġ{ Ġparse Status ( it ) Ġ} ĊĊĠĠĠĠĠĠĠ Ġm anga . thumbnail _ url Ġ= Ġdocument . select (" div # page Ġ> Ġsection Ġ> Ġdiv Ġ> Ġimg . thumbnail "). attr (" src ") ĊĊĠĠĠĠĠĠĠ Ġreturn Ġm anga ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġparse Status ( status : ĠString ) Ġ= Ġwhen Ġ{ ĊĠĠĠĠĠĠĠ Ġstatus . contains (" At ivo ") Ġ-> ĠSM anga . ONGO ING ĊĠĠĠĠĠĠĠ Ġstatus . contains (" Comp leto ") Ġ-> ĠSM anga . COMPLETED ĊĠĠĠĠĠĠĠ Ġelse Ġ-> ĠSM anga . UNKNOWN ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġremove Label ( text : ĠString ?): ĠString Ġ= Ġtext !!. substring After (": ") ĊĊĠĠĠ Ġoverride Ġfun Ġchapter List Selector (): ĠString ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ= Ġ" ul . list _ chapter s Ġli Ġa ," Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" table . table - hover : not (. table - m ang as ) Ġ> Ġtbody Ġ> Ġtr " ĊĊĠĠĠ Ġoverride Ġfun Ġchapter From Element ( element : ĠElement ): ĠS Chapter Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġis New Layout Ġ= Ġelement . tagName () Ġ== Ġ" a " ĊĊĠĠĠĠĠĠĠ Ġif Ġ( isNew Layout ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcontent Ġ= ĠJ soup . parse ( element . attr (" data - content ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdate Ġ= Ġcontent . select (" small . clearfix "). text (). substring After (" Ad icion ado Ġem Ġ") ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠS Chapter . create (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġelement . attr (" data - original - title "). replace ( LANG _ REGEX . to Regex (), Ġ"") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġscan lator Ġ= Ġcontent . select (" small . clearfix Ġstrong "). text () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdate _ upload Ġ= Ġparse Chapter Date ( date , ĠDATE _ FORMAT _ NEW ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchapter _ number Ġ= Ġelement . text (). toFloat OrNull () Ġ?: Ġ 1 f ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Url Without Domain ( content . select (" div . clearfix Ġa "). attr (" href ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġfirst Column Ġ= Ġelement . select (" td : eq ( 0 )") ĊĠĠĠĠĠĠĠ Ġval Ġsecond Column Ġ= Ġelement . select (" td : eq ( 1 )") ĊĠĠĠĠĠĠĠ Ġval Ġthird Column Ġ= Ġelement . select (" td : eq ( 2 )") ĊĊĠĠĠĠĠĠĠ Ġreturn ĠS Chapter . create (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġfirst Column . select (" a "). text (). replace ( LANG _ REGEX . to Regex (), Ġ"") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġscan lator Ġ= Ġsecond Column . text () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdate _ upload Ġ= Ġparse Chapter Date ( third Column . text (), ĠDATE _ FORMAT _ OLD ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Url Without Domain ( first Column . select (" a "). attr (" href ")) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġparse Chapter Date ( date : ĠString , Ġformat : ĠString ) Ġ: ĠLong Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSimpleDateFormat ( format , ĠLocale . EN GL ISH ). parse ( date ). time ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠParseException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 L ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġpage List Request ( chapter : ĠS Chapter ): ĠRequest Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠJust Ġto Ġprevent Ġthe Ġdetection Ġof Ġthe Ġc rawler . ĊĠĠĠĠĠĠĠ Ġval Ġnew Header Ġ= Ġcatalog Headers . newBuilder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set (" Refer er ", Ġ"$ baseUrl ${ chapter . url }". substring Before Last ("/ ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠĠĠĠĠ Ġreturn ĠGET ( baseUrl Ġ+ Ġchapter . url , Ġnew Header ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġpage List Parse ( document : ĠDocument ): ĠList < Page > Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġdocument Str Ġ= Ġdocument . toString () ĊĠĠĠĠĠĠĠ Ġvar Ġimages Ġ= Ġdocument Str . substring After ( SCRIPT _ BEGIN ). substring Before ( SCRIPT _ END ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. replace ( SCRIPT _ REGEX . to Regex (), Ġ"") ĊĊĠĠĠĠĠĠĠ Ġvar Ġnew Document Ġ= ĠJ soup . parse ( images ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġnew Document . select (" a Ġimg ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Indexed Ġ{ Ġi , Ġel Ġ-> ĠPage ( i , Ġ"", Ġel . attr (" src ")) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠimageUrl Parse ( document : ĠDocument ) Ġ= Ġ"" ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠLANG _ REGEX Ġ= Ġ"( Ġ) ? \\ (( PT - )? BR \\ )" ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠIMAGE _ REGEX Ġ= Ġ" _( small | medium )\\ ." ĊĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠDATE _ FORMAT _ OLD Ġ= Ġ" dd / MM / yyyy " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠDATE _ FORMAT _ NEW Ġ= Ġ" MMM Ġd , Ġy yyy " ĊĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠS CRIPT _ BEGIN Ġ= Ġ" var Ġimages Ġ= Ġ[" ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠS CRIPT _ END Ġ= Ġ" ]; " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠS CRIPT _ REGEX Ġ= Ġ"\" | ," ĊĠĠĠ Ġ} Ċ } Ċ