package Ġeu . kan ade . t ach iy omi . extension . pt . hq dragon Ċ Ċ import Ġeu . kan ade . t ach iy omi . lib . rate limit . RateLimit Interceptor Ċ import Ġeu . kan ade . t ach iy omi . network . GET Ċ import Ġeu . kan ade . t ach iy omi . network . POST Ċ import Ġeu . kan ade . t ach iy omi . source . model . Filter List Ċ import Ġeu . kan ade . t ach iy omi . source . model . M ang as Page Ċ import Ġeu . kan ade . t ach iy omi . source . model . Page Ċ import Ġeu . kan ade . t ach iy omi . source . model . S Chapter Ċ import Ġeu . kan ade . t ach iy omi . source . model . SM anga Ċ import Ġeu . kan ade . t ach iy omi . source . online . Parsed Http Source Ċ import Ġokhttp 3 . Form Body Ċ import Ġokhttp 3 . Headers Ċ import Ġokhttp 3 . Http Url . Companion . to Http Url OrNull Ċ import Ġokhttp 3 . Ok HttpClient Ċ import Ġokhttp 3 . Request Ċ import Ġokhttp 3 . Response Ċ import Ġorg . js oup . nodes . Document Ċ import Ġorg . js oup . nodes . Element Ċ import Ġrx . Observable Ċ import Ġjava . util . concurrent . TimeUnit Ċ Ċ class ĠH Q Dragon Ġ: ĠParsed Http Source () Ġ{ ĊĊĠĠĠ Ġoverride Ġval Ġname Ġ= Ġ" HQ ĠDrag on " ĊĊĠĠĠ Ġoverride Ġval ĠbaseUrl Ġ= Ġ" https :// hq dragon . com " ĊĊĠĠĠ Ġoverride Ġval Ġlang Ġ= Ġ" pt - BR " ĊĊĠĠĠ Ġoverride Ġval Ġsupports Latest Ġ= Ġtrue ĊĊĠĠĠ Ġoverride Ġval Ġclient : ĠOk HttpClient Ġ= Ġnetwork . cloudflare Client . newBuilder () ĊĠĠĠĠĠĠĠ Ġ. add Interceptor ( RateLimit Interceptor ( 1 , Ġ 2 , ĠTimeUnit . SECONDS )) ĊĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠ Ġoverride Ġfun Ġheaders Builder (): ĠHeaders . Builder Ġ= ĠHeaders . Builder () ĊĠĠĠĠĠĠĠ Ġ. add (" Accept ", ĠAC CEPT ) ĊĠĠĠĠĠĠĠ Ġ. add (" Accept - Language ", ĠAC CEPT _ LANGUAGE ) ĊĠĠĠĠĠĠĠ Ġ. add (" Refer er ", Ġ"$ baseUrl /") ĊĊĠĠĠ Ġ// ĠPop ular ĊĊĠĠĠ Ġ// ĠTop Ġ 1 0 ĊĠĠĠ Ġoverride Ġfun Ġpopular M anga Request ( page : ĠInt ): ĠRequest Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠGET ( baseUrl , Ġheaders ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġpopular M anga Parse ( response : ĠResponse ): ĠM ang as Page Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresults Ġ= Ġsuper . popular M anga Parse ( response ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( results . m ang as . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠException ( BLOCK _ MESSAGE ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġresults ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġpopular M anga Selector () Ġ= Ġ" h 4 : contains ( Top Ġ 1 0 ) Ġ+ Ġol . mb - 0 Ġli Ġa " ĊĊĠĠĠ Ġoverride Ġfun Ġpopular M anga From Element ( element : ĠElement ): ĠSM anga Ġ= ĠSM anga . create (). apply Ġ{ ĊĠĠĠĠĠĠĠ Ġtitle Ġ= Ġelement . text () ĊĠĠĠĠĠĠĠ Ġset Url Without Domain ( element . attr (" href ")) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġpopular M anga Next Page Selector (): ĠString ? Ġ= Ġnull ĊĊĠĠĠ Ġ// ĠLatest ĊĊĠĠĠ Ġoverride Ġfun Ġfetch Latest Updates ( page : ĠInt ): ĠObservable < M ang as Page > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġsuper . fetch Latest Updates ( page ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġresults Ġ-> Ġresults . copy ( hasNext Page Ġ= Ġpage Ġ< Ġ 5 ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġlatest Updates Request ( page : ĠInt ): ĠRequest Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġform Body Ġ= ĠForm Body . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add (" pag ina ", Ġpage . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠĠĠĠĠ Ġval Ġheaders Ġ= Ġheaders Builder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add (" Content - Length ", Ġform Body . content Length (). toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add (" Content - Type ", Ġform Body . contentType (). toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add (" Origin ", ĠbaseUrl ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add (" X - Requested - With ", Ġ" XML HttpRequest ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set (" Accept ", Ġ"* /* ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠĠĠĠĠ Ġreturn ĠPOST ("$ baseUrl / assets / php / index _ pag inar . php ", Ġheaders , Ġform Body ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġlatest Updates Parse ( response : ĠResponse ): ĠM ang as Page Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresults Ġ= Ġsuper . latest Updates Parse ( response ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( results . m ang as . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠException ( BLOCK _ MESSAGE ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġresults ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġlatest Updates Selector () Ġ= Ġ" a : has ( img )" ĊĊĠĠĠ Ġoverride Ġfun Ġlatest Updates From Element ( element : ĠElement ): ĠSM anga Ġ= ĠSM anga . create (). apply Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġimage Ġ= Ġelement . select (" img "). first () ĊĊĠĠĠĠĠĠĠ Ġtitle Ġ= Ġimage . attr (" alt ") ĊĠĠĠĠĠĠĠ Ġthumbnail _ url Ġ= Ġimage . attr (" abs : src ") ĊĠĠĠĠĠĠĠ Ġset Url Without Domain ( element . attr (" href ")) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġlatest Updates Next Page Selector (): ĠString ? Ġ= Ġnull ĊĊĠĠĠ Ġ// ĠSearch ĊĊĠĠĠ Ġoverride Ġfun Ġsearch M anga Request ( page : ĠInt , Ġquery : ĠString , Ġfilters : ĠFilter List ): ĠRequest Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġurl Ġ= Ġ"$ baseUrl / pes quis a ". to Http Url OrNull () !!. newBuilder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add QueryParameter (" titulo ", Ġquery ) ĊĊĠĠĠĠĠĠĠ Ġreturn ĠGET ( url . toString (), Ġheaders ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġsearch M anga Parse ( response : ĠResponse ): ĠM ang as Page Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresults Ġ= Ġsuper . search M anga Parse ( response ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( results . m ang as . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠException ( BLOCK _ MESSAGE ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġresults ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġsearch M anga Selector () Ġ= Ġ" div . col - sm - 6 . col - md - 3 : has ( img . img - thumbnail )" ĊĊĠĠĠ Ġoverride Ġfun Ġsearch M anga From Element ( element : ĠElement ): ĠSM anga Ġ= ĠSM anga . create (). apply Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlink Ġ= Ġelement . select (" a Ġ+ Ġa "). first () ĊĊĠĠĠĠĠĠĠ Ġtitle Ġ= Ġlink . text () ĊĠĠĠĠĠĠĠ Ġthumbnail _ url Ġ= Ġelement . select (" img "). first (). attr (" abs : src ") ĊĠĠĠĠĠĠĠ Ġset Url Without Domain ( link . attr (" href ")) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġsearch M anga Next Page Selector (): ĠString ? Ġ= Ġnull ĊĊĠĠĠ Ġ// ĠM anga Ġsummary Ġpage ĊĊĠĠĠ Ġoverride Ġfun Ġm anga Details Parse ( document : ĠDocument ): ĠSM anga Ġ= ĠSM anga . create (). apply Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġinfo Element Ġ= Ġdocument . select (" div . blog - post Ġdiv . row "). first OrNull () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġthrow ĠException ( BLOCK _ MESSAGE ) ĊĊĠĠĠĠĠĠĠ Ġtitle Ġ= Ġinfo Element . select (" h 3 "). first (). text () ĊĠĠĠĠĠĠĠ Ġauthor Ġ= Ġinfo Element . select (" p : contains ( Editor a :) "). first (). text Without Label () ĊĠĠĠĠĠĠĠ Ġstatus Ġ= Ġinfo Element . select (" p : contains ( Status :) Ġspan "). first (). text (). to Status () ĊĠĠĠĠĠĠĠ Ġdescription Ġ= Ġinfo Element . select (" p : contains ( Sin op se :) "). first (). own Text () ĊĠĠĠĠĠĠĠ Ġthumbnail _ url Ġ= Ġinfo Element . select (" div . col - md - 4 Ġ. img - fluid "). first (). attr (" src ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// ĠChapter s ĊĊĠĠĠ Ġoverride Ġfun Ġchapter List Selector () Ġ= Ġ" table . table Ġtr Ġa " ĊĊĠĠĠ Ġoverride Ġfun Ġchapter From Element ( element : ĠElement ): ĠS Chapter Ġ= ĠS Chapter . create (). apply Ġ{ ĊĠĠĠĠĠĠĠ Ġname Ġ= Ġelement . text (). replace (" L er Ġ", Ġ"") ĊĠĠĠĠĠĠĠ Ġset Url Without Domain ( element . attr (" href ")) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// ĠPages ĊĊĠĠĠ Ġoverride Ġfun Ġpage List Parse ( document : ĠDocument ): ĠList < Page > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġdocument . select (" img . img - responsive . img - manga ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. filter Ġ{ Ġit . attr (" src "). contains ("/ le itor /") Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Indexed Ġ{ Ġi , Ġelement Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPage ( i , Ġdocument . location (), Ġelement . abs Url (" src ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠimageUrl Parse ( document : ĠDocument ) Ġ= Ġ"" ĊĊĠĠĠ Ġoverride Ġfun Ġimage Request ( page : ĠPage ): ĠRequest Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġnew Headers Ġ= Ġheaders Builder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set (" Accept ", ĠAC CEPT _ IMAGE ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set (" Refer er ", Ġpage . url ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠĠĠĠĠ Ġreturn ĠGET ( page . imageUrl !! , Ġnew Headers ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠElement . text Without Label (): ĠString Ġ= Ġtext () !!. substring After (": "). trim () ĊĊĠĠĠ Ġprivate Ġfun ĠString . to Status (): ĠInt Ġ= Ġwhen Ġ{ ĊĠĠĠĠĠĠĠ Ġcontains (" At ivo ") Ġ-> ĠSM anga . ONGO ING ĊĠĠĠĠĠĠĠ Ġcontains (" Comp leto ") Ġ-> ĠSM anga . COMPLETED ĊĠĠĠĠĠĠĠ Ġelse Ġ-> ĠSM anga . UNKNOWN ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠAC CEPT Ġ= Ġ" text / html , application / xhtml + xml , application / xml ; q = 0 . 9 ," Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" image / av if , image / webp , image / ap ng ,* /* ; q = 0 . 8 , application / signed - exchange ; v = b 3 ; q = 0 . 9 " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠAC CEPT _ IMAGE Ġ= Ġ" image / av if , image / webp , image / ap ng , image / svg + xml , image /* ,* /* ; q = 0 . 8 " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠAC CEPT _ LANGUAGE Ġ= Ġ" pt - BR , pt ; q = 0 . 9 , en - US ; q = 0 . 8 , en ; q = 0 . 7 , es ; q = 0 . 6 , gl ; q = 0 . 5 " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠUSER _ AGENT Ġ= Ġ" Mozilla / 5 . 0 Ġ( Windows ĠNT Ġ 1 0 . 0 ; ĠWin 6 4 ; Ġx 6 4 ) Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Apple WebKit / 5 3 7 . 3 6 Ġ( KHTML , Ġlike ĠGecko ) ĠChrome / 8 9 . 0 . 4 3 8 9 . 1 2 8 ĠSafari / 5 3 7 . 3 6 " ĊĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠBLOCK _ MESSAGE Ġ= Ġ" O Ġsite ĠestÃ¡ Ġblo que ando Ġo ĠT ach iy omi . Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" M ig re Ġpara Ġout ra Ġfont e Ġcaso Ġo Ġproblema Ġpersist ir ." ĊĠĠĠ Ġ} Ċ } Ċ