package Ġeu . kan ade . t ach iy omi . extension . all . w pm ang ast ream Ċ Ċ import Ġcom . github . sal om on br ys . kot son . array Ċ import Ġcom . github . sal om on br ys . kot son . obj Ċ import Ġcom . github . sal om on br ys . kot son . string Ċ import Ġcom . google . gson . Json Parser Ċ import Ġeu . kan ade . t ach iy omi . network . GET Ċ import Ġeu . kan ade . t ach iy omi . network . as Observable Success Ċ import Ġeu . kan ade . t ach iy omi . source . Source Ċ import Ġeu . kan ade . t ach iy omi . source . Source Factory Ċ import Ġeu . kan ade . t ach iy omi . source . model . Filter Ċ import Ġeu . kan ade . t ach iy omi . source . model . Filter List Ċ 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 . util . as J soup Ċ import Ġokhttp 3 . Headers Ċ import Ġokhttp 3 . Http Url Ċ import Ġokhttp 3 . Interceptor Ċ 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 . io . IOException Ċ import Ġjava . text . SimpleDateFormat Ċ import Ġjava . util . Locale Ċ Ċ class ĠW PM anga Stream Factory Ġ: ĠSource Factory Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġcreate Sources (): ĠList < Source > Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠ ĠK iry uu (), ĊĠĠĠĠĠĠĠ ĠKom ik AV (), ĊĠĠĠĠĠĠĠ ĠKom ik Station (), ĊĠĠĠĠĠĠĠ ĠKom ik Cast (), ĊĠĠĠĠĠĠĠ ĠWest M anga (), ĊĠĠĠĠĠĠĠ ĠKom ik Go (), ĊĠĠĠĠĠĠĠ ĠKom ik In do (), ĊĠĠĠĠĠĠĠ ĠL ie be Sch nee H iver (), ĊĠĠĠĠĠĠĠ ĠSe k te K om ik (), ĊĠĠĠĠĠĠĠ ĠM anga Sw at (), ĊĠĠĠĠĠĠĠ ĠM anga Raw (), ĊĠĠĠĠĠĠĠ ĠNon Stop Sc ans (), ĊĠĠĠĠĠĠĠ ĠKom ik Tap (), ĊĠĠĠĠĠĠĠ ĠM ata kom ik (), ĊĠĠĠĠĠĠĠ ĠKom ik indo Co (), ĊĠĠĠĠĠĠĠ ĠRead K om ik (), ĊĠĠĠĠĠĠĠ ĠM anga P (), ĊĠĠĠĠĠĠĠ ĠM anga Pro Z (), ĊĠĠĠĠĠĠĠ ĠB oose i (), ĊĠĠĠĠĠĠĠ ĠM ang ak yo (), ĊĠĠĠĠĠĠĠ ĠAs ura Sc ans (), ĊĠĠĠĠĠĠĠ ĠSil ence Scan (), ĊĠĠĠĠĠĠĠ ĠShe a M anga (), ĊĠĠĠĠĠĠĠ ĠFl ame Sc ans (), ĊĠĠĠĠĠĠĠ ĠG UR UK om ik (), ĊĠĠĠĠĠĠĠ ĠRaw k uma (), ĊĠĠĠĠĠĠĠ ĠK ais ar K om ik (), ĊĠĠĠĠĠĠĠ ĠMaster K om ik (), ĊĠĠĠĠĠĠĠ ĠKom ik Ru (), ĊĠĠĠĠĠĠĠ ĠM anga Sh iro (), ĊĠĠĠĠĠĠĠ ĠCh i Ot aku (), ĊĠĠĠĠĠĠĠ ĠK lan K om ik () ĊĠĠĠ Ġ) Ċ } Ċ Ċ class ĠK lan K om ik Ġ: ĠW PM anga Stream (" K lan K om ik ", Ġ" https :// kl ank om ik . com ", Ġ" id ") Ċ Ċ class ĠCh i Ot aku Ġ: ĠW PM anga Stream (" Chi Ot aku ", Ġ" https :// ch iot aku . com ", Ġ" id ") Ċ Ċ class ĠL ie be Sch nee H iver Ġ: ĠW PM anga Stream ( ĊĠĠĠ Ġ" L ie be ĠSch nee ĠH iver ", ĊĠĠĠ Ġ" https :// www . li eb esch ne eh iver . com ", ĊĠĠĠ Ġ" tr ", ĊĠĠĠ ĠSimpleDateFormat (" MMMM Ġdd , Ġy yyy ", ĠLocale . for Language Tag (" tr ")) Ċ ) Ċ Ċ class ĠM anga Sh iro Ġ: ĠW PM anga Stream (" M anga Sh iro ", Ġ" https :// m ang ash iro . co ", Ġ" id ") Ċ Ċ class ĠKom ik Ru Ġ: ĠW PM anga Stream (" K om ik Ru ", Ġ" https :// kom ik ru . com ", Ġ" id ", ĠSimpleDateFormat (" MMMM Ġdd , Ġy yyy ", ĠLocale . for Language Tag (" id "))) Ċ Ċ class ĠMaster K om ik Ġ: ĠW PM anga Stream (" Master K om ik ", Ġ" https :// master kom ik . com ", Ġ" id ") Ċ Ċ class ĠK ais ar K om ik Ġ: ĠW PM anga Stream (" K ais ar ĠKom ik ", Ġ" https :// ka is ark om ik . com ", Ġ" id ") Ċ Ċ class ĠRaw k uma Ġ: ĠW PM anga Stream (" Raw k uma ", Ġ" https :// raw k uma . com /", Ġ" ja ") Ċ Ċ class ĠG UR UK om ik Ġ: ĠW PM anga Stream (" G UR U ĠKom ik ", Ġ" https :// g ur uk om ik . com ", Ġ" id ", ĠSimpleDateFormat (" MMMM Ġdd , Ġy yyy ", ĠLocale . for Language Tag (" id "))) Ċ Ċ class ĠFl ame Sc ans Ġ: ĠW PM anga Stream (" Fl ame ĠSc ans ", Ġ" https :// www . fl ame - sc ans . com ", Ġ" en ") Ċ Ċ class ĠShe a M anga Ġ: ĠW PM anga Stream ( ĊĠĠĠ Ġ" She a ĠM anga ", ĊĠĠĠ Ġ" https :// she am anga . my . id ", ĊĠĠĠ Ġ" id ", ĊĠĠĠ ĠdateFormat Ġ= ĠSimpleDateFormat (" MMMM Ġdd , Ġy yyy ", ĠLocale . for Language Tag (" id ")) Ċ ) Ċ Ċ class ĠAs ura Sc ans Ġ: ĠW PM anga Stream (" As ura Sc ans ", Ġ" https :// as ur asc ans . com ", Ġ" en ") Ġ{ ĊĠĠĠ Ġoverride Ġval Ġpage Selector Ġ= Ġ" div # reader area Ġimg [ lazy ]" Ċ } Ċ Ċ class ĠSe k te K om ik Ġ: ĠW PM anga Stream (" Se k te ĠKom ik Ġ( WP ĠM anga ĠStream )", Ġ" https :// sek tek om ik . com ", Ġ" id ") Ċ Ċ class ĠK iry uu Ġ: ĠW PM anga Stream (" K iry uu Ġ( WP ĠM anga ĠStream )", Ġ" https :// k iry uu . co ", Ġ" id ") Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġpage List Parse ( document : ĠDocument ): ĠList < Page > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġdocument . select (" div # reader area Ġimg "). map Ġ{ Ġit . attr (" abs : src ") Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. filter Not Ġ{ Ġit . substring After Last ("/ "). contains ( Regex (""" ( filer un | photo thumb \. db ) "" ")) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Indexed Ġ{ Ġi , Ġimage Ġ-> ĠPage ( i , Ġ"", Ġimage ) Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠKom ik AV Ġ: ĠW PM anga Stream ( ĊĠĠĠ Ġ" K om ik ĠAV Ġ( WP ĠM anga ĠStream )", ĊĠĠĠ Ġ" https :// kom ik av . com ", ĊĠĠĠ Ġ" id ", ĊĠĠĠ ĠdateFormat Ġ= ĠSimpleDateFormat (" MMMM Ġdd , Ġy yyy ", ĠLocale . for Language Tag (" id ")) Ċ ) Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġimage Request ( page : ĠPage ): ĠRequest Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠGET ( page . imageUrl !! , Ġheaders ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠKom ik Station Ġ: ĠW PM anga Stream (" K om ik ĠStation Ġ( WP ĠM anga ĠStream )", Ġ" https :// kom ik station . com ", Ġ" id ") Ċ Ċ class ĠKom ik Cast Ġ: ĠW PM anga Stream (" K om ik ĠCast Ġ( WP ĠM anga ĠStream )", Ġ" https :// kom ik cast . com ", Ġ" id ") Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġpopular M anga Request ( page : ĠInt ): ĠRequest Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠGET ("$ baseUrl / da ftar - kom ik / page /$ page /? order = popular ", Ġheaders ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġlatest Updates Request ( page : ĠInt ): ĠRequest Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠGET ("$ baseUrl / kom ik / page /$ page /", Ġheaders ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġsearch M anga Request ( page : ĠInt , Ġquery : ĠString , Ġfilters : ĠFilter List ): ĠRequest Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġurl Ġ= Ġif Ġ( query . isNotBlank ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġurl Ġ= ĠHttp Url . parse ("$ baseUrl / page /$ page ") !!. newBuilder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpattern Ġ= Ġ"\\ s +". to Regex () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġq Ġ= Ġquery . replace ( pattern , Ġ"+ ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( query . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġurl . add QueryParameter (" s ", Ġq ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġurl . add QueryParameter (" s ", Ġ"") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġurl . toString () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġurl Ġ= ĠHttp Url . parse ("$ baseUrl / da ftar - kom ik / page /$ page ") !!. newBuilder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar ĠorderBy : ĠString ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( if Ġ( filters . isEmpty ()) Ġget Filter List () Ġelse Ġfilters ). forEach Ġ{ Ġfilter Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( filter ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠStatus Filter Ġ-> Ġurl . add QueryParameter (" status ", ĠarrayOf ("", Ġ" ongo ing ", Ġ" completed ")[ filter . state ]) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠGen re List Filter Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġgenre Include Ġ= Ġmutable ListOf < String >() ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfilter . state . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . state Ġ== Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgenre Include . add ( it . id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( genre Include . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgenre Include . forEach Ġ{ Ġgenre Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġurl . add QueryParameter (" genre [] ", Ġgenre ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠSort By Filter Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠorderBy Ġ= Ġfilter . to Uri Part () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġurl . add QueryParameter (" order ", ĠorderBy ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġurl . toString () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn ĠGET ( url , Ġheaders ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġpopular M anga From Element ( element : ĠElement ): ĠSM anga Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġm anga Ġ= ĠSM anga . create () ĊĠĠĠĠĠĠĠ Ġm anga . thumbnail _ url Ġ= Ġelement . select (" div . limit Ġimg "). attr (" src ") ĊĠĠĠĠĠĠĠ Ġelement . select (" div . big or Ġ> Ġa "). first (). let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm anga . set Url Without Domain ( it . attr (" href ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm anga . title Ġ= Ġit . attr (" title ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġm anga ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġpage List Parse ( document : ĠDocument ): ĠList < Page > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġdocument . select (" div # reader area Ġimg . size - full ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Indexed Ġ{ Ġi , Ġimg Ġ-> ĠPage ( i , Ġ"", Ġimg . attr (" abs : Src ")) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Filter List () Ġ= ĠFilter List ( ĊĠĠĠĠĠĠĠ ĠFilter . Header (" NOTE : ĠIgnore d Ġif Ġusing Ġtext Ġsearch ! "), ĊĠĠĠĠĠĠĠ ĠFilter . Separator (), ĊĠĠĠĠĠĠĠ ĠSort By Filter (), ĊĠĠĠĠĠĠĠ ĠFilter . Separator (), ĊĠĠĠĠĠĠĠ ĠStatus Filter (), ĊĠĠĠĠĠĠĠ ĠFilter . Separator (), ĊĠĠĠĠĠĠĠ ĠGen re List Filter ( get Genre List ()) ĊĠĠĠ Ġ) Ċ } Ċ class ĠWest M anga Ġ: ĠW PM anga Stream (" West ĠM anga Ġ( WP ĠM anga ĠStream )", Ġ" https :// west manga . info ", Ġ" id ") Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġpopular M anga Request ( page : ĠInt ): ĠRequest Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġurl Ġ= Ġif Ġ( page Ġ== Ġ 1 ) Ġ"$ baseUrl / manga - list /? popular " Ġelse Ġ"$ baseUrl / manga - list / page /$ page /? popular " ĊĠĠĠĠĠĠĠ Ġreturn ĠGET ( url , Ġheaders ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġlatest Updates Request ( page : ĠInt ): ĠRequest Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġurl Ġ= Ġif Ġ( page Ġ== Ġ 1 ) Ġ"$ baseUrl / manga - list /? latest " Ġelse Ġ"$ baseUrl / manga - list / page /$ page /? latest " ĊĠĠĠĠĠĠĠ Ġreturn ĠGET ( url , Ġheaders ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġsearch M anga Request ( page : ĠInt , Ġquery : ĠString , Ġfilters : ĠFilter List ): ĠRequest Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġbuilt Url Ġ= Ġif Ġ( page Ġ== Ġ 1 ) Ġ"$ baseUrl / manga /" Ġelse Ġ"$ baseUrl / manga / page /$ page /" ĊĠĠĠĠĠĠĠ Ġif Ġ( query Ġ!= Ġ"") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuilt Url Ġ= Ġif Ġ( page Ġ== Ġ 1 ) Ġ"$ baseUrl /? s =$ query & post _ type = manga " Ġelse Ġ"$ baseUrl / page / 2 /? s =$ query & post _ type = manga " ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( filters . size Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfilters . forEach Ġ{ Ġfilter Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( filter ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠSort By Filter Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuilt Url Ġ= Ġif Ġ( page Ġ== Ġ 1 ) Ġ"$ baseUrl / manga - list /? " Ġ+ Ġfilter . to Uri Part () Ġelse Ġ"$ baseUrl / manga - list / page /$ page /? " Ġ+ Ġfilter . to Uri Part () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠGen re List Filter Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuilt Url Ġ= Ġif Ġ( page Ġ== Ġ 1 ) Ġ"$ baseUrl / genre /" Ġ+ Ġfilter . to Uri Part () Ġelse Ġ"$ baseUrl / genre /" Ġ+ Ġfilter . to Uri Part () Ġ+ Ġ"/ page /$ page /" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġurl Ġ= ĠHttp Url . parse ( built Url ) !!. newBuilder () ĊĠĠĠĠĠĠĠ Ġreturn ĠGET ( url . build (). toString (), Ġheaders ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġpopular M anga Selector () Ġ= Ġ" div . result - search " ĊĊĠĠĠ Ġoverride Ġfun Ġpopular M anga From Element ( element : ĠElement ): ĠSM anga Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġm anga Ġ= ĠSM anga . create () ĊĠĠĠĠĠĠĠ Ġm anga . thumbnail _ url Ġ= Ġelement . select (" div . f let ch Ġ> Ġ. img _ search Ġ> Ġimg "). attr (" src ") ĊĠĠĠĠĠĠĠ Ġelement . select (". kan an _ search Ġ> Ġ. search _ title Ġ> Ġ. title x Ġ> Ġa "). first (). let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm anga . set Url Without Domain ( it . attr (" href ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm anga . title Ġ= Ġit . text () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġm anga ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġpopular M anga Next Page Selector () Ġ= Ġ". pag in ado > ul > li . dd Ġ+ Ġli . a " ĊĊĠĠĠ Ġoverride Ġfun Ġm anga Details Parse ( document : ĠDocument ): ĠSM anga Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġinfo Element Ġ= Ġdocument . select (" table . attr "). first () ĊĠĠĠĠĠĠĠ Ġval Ġdesc Element Ġ= Ġdocument . select (" div . sin "). first () ĊĠĠĠĠĠĠĠ Ġval Ġsep Name Ġ= Ġinfo Element . select (" tr : nth - child ( 5 )> td "). first () ĊĠĠĠĠĠĠĠ Ġval Ġm anga Ġ= ĠSM anga . create () ĊĠĠĠĠĠĠĠ Ġm anga . author Ġ= Ġsep Name . text () ĊĠĠĠĠĠĠĠ Ġm anga . artist Ġ= Ġsep Name . text () ĊĠĠĠĠĠĠĠ Ġval Ġgen res Ġ= Ġmutable ListOf < String >() ĊĠĠĠĠĠĠĠ Ġinfo Element . select (" tr : nth - child ( 6 )> td Ġ> Ġa "). forEach Ġ{ Ġelement Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġgenre Ġ= Ġelement . text () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgen res . add ( genre ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġm anga . genre Ġ= Ġgen res . join ToString (", Ġ") ĊĠĠĠĠĠĠĠ Ġm anga . status Ġ= Ġparse Status ( info Element . select (" tr : nth - child ( 4 )> td "). text ()) ĊĠĠĠĠĠĠĠ Ġm anga . description Ġ= Ġdesc Element . select (" p "). text () ĊĠĠĠĠĠĠĠ Ġm anga . thumbnail _ url Ġ= Ġdocument . select (". top info Ġ> Ġimg "). attr (" src ") ĊĠĠĠĠĠĠĠ Ġreturn Ġm anga ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġclass ĠSort By Filter Ġ: ĠUri Part Filter ( ĊĠĠĠĠĠĠĠ Ġ" Sort ĠBy ", ĊĠĠĠĠĠĠĠ ĠarrayOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPair (" Default ", Ġ""), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPair (" A - Z ", Ġ" A - Z "), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPair (" Latest ĠAdded ", Ġ" latest "), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPair (" Pop ular ", Ġ" popular ") ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġprivate Ġclass ĠGen re List Filter Ġ: ĠUri Part Filter ( ĊĠĠĠĠĠĠĠ Ġ" Genre ", ĊĠĠĠĠĠĠĠ ĠarrayOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPair (" Default ", Ġ""), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPair (" 4 - K oma ", Ġ" 4 - k oma "), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPair (" Action ", Ġ" action "), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPair (" Adventure ", Ġ" ad venture "), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPair (" Come dy ", Ġ" co med y "), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPair (" Cook ing ", Ġ" cook ing "), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPair (" Dem ons ", Ġ" de mon s "), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPair (" D ram a ", Ġ" dr ama "), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPair (" Ec chi ", Ġ" ec chi "), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPair (" F antasy ", Ġ" f antasy "), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPair (" F antasy Action ", Ġ" f antasy action "), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPair (" Game ", Ġ" game "), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPair (" Gender ĠB ender ", Ġ" gender - b ender "), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPair (" G ore ", Ġ" g ore "), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPair (" H are m ", Ġ" h are m "), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPair (" H istorical ", Ġ" h istorical "), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPair (" Hor ro ", Ġ" hor ro "), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPair (" Hor ror ", Ġ" hor ror "), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPair (" I sek ai ", Ġ" ise k ai "), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPair (" I sek ai ĠAction ", Ġ" ise k ai - action "), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPair (" J ose i ", Ġ" j ose i "), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPair (" Magic ", Ġ" magic "), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPair (" M anga ", Ġ" manga "), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPair (" Man h ua ", Ġ" man h ua "), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPair (" Mart ial Ġart s ", Ġ" mart ial - arts "), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPair (" M ature ", Ġ" m ature "), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPair (" Me cha ", Ġ" me cha "), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPair (" Medical ", Ġ" medical "), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPair (" Music ", Ġ" music "), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPair (" M yst ery ", Ġ" m yst ery "), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPair (" On esh ot ", Ġ" on esh ot "), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPair (" Project ", Ġ" project "), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPair (" P sy cho logical ", Ġ" psy cho logical "), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPair (" Rom ance ", Ġ" rom ance "), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPair (" School ", Ġ" school "), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPair (" School Ġlife ", Ġ" school - life "), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPair (" S ci Ġfi ", Ġ" sci - fi "), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPair (" Se inen ", Ġ" se inen "), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPair (" Sh ou jo ", Ġ" sh ou jo "), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPair (" Sh ou jo ĠA i ", Ġ" sh ou jo - ai "), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPair (" Sh o unen ", Ġ" sh o unen "), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPair (" Slice Ġof ĠLife ", Ġ" slice - of - life "), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPair (" S ports ", Ġ" sport s "), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPair (" Super ĠPower ", Ġ" super - power "), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPair (" Super natural ", Ġ" super natural "), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPair (" Sus p ense ", Ġ" sus p ense "), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPair (" Th r iller ", Ġ" thr iller "), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPair (" Tr aged y ", Ġ" tr aged y "), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPair (" V amp ire ", Ġ" v amp ire "), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPair (" Web to ons ", Ġ" web to ons "), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPair (" Y uri ", Ġ" y uri ") ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġoverride Ġfun Ġget Filter List () Ġ= ĠFilter List ( ĊĠĠĠĠĠĠĠ ĠFilter . Header (" NOTE : Ġsort Ġand Ġgenre Ġcan 't Ġbe Ġcombined Ġand Ġignored Ġwhen Ġusing Ġtext Ġsearch ! "), ĊĠĠĠĠĠĠĠ ĠFilter . Separator (), ĊĠĠĠĠĠĠĠ ĠSort By Filter (), ĊĠĠĠĠĠĠĠ ĠGen re List Filter () ĊĠĠĠ Ġ) Ċ } Ċ class ĠKom ik Go Ġ: ĠW PM anga Stream (" K om ik ĠGO Ġ( WP ĠM anga ĠStream )", Ġ" https :// kom ik go . com ", Ġ" id ") Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġpopular M anga Request ( page : ĠInt ): ĠRequest Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠGET ("$ baseUrl / page /$ page ? s & post _ type = wp - manga & m _ orderby = views ", Ġheaders ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġlatest Updates Request ( page : ĠInt ): ĠRequest Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠGET ("$ baseUrl / page /$ page ? s & post _ type = wp - manga & m _ orderby = latest ", Ġheaders ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġpopular M anga Selector () Ġ= Ġ" div . c - tabs - item __ content " ĊĊĠĠĠ Ġoverride Ġfun Ġpopular M anga From Element ( element : ĠElement ): ĠSM anga Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġm anga Ġ= ĠSM anga . create () ĊĠĠĠĠĠĠĠ Ġm anga . thumbnail _ url Ġ= Ġelement . select (" div . tab - thumb Ġ> Ġa Ġ> Ġimg "). attr (" data - src ") ĊĠĠĠĠĠĠĠ Ġelement . select (" div . tab - thumb Ġ> Ġa "). first (). let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm anga . set Url Without Domain ( it . attr (" href ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm anga . title Ġ= Ġit . attr (" title ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġm anga ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġsearch M anga Request ( page : ĠInt , Ġquery : ĠString , Ġfilters : ĠFilter List ): ĠRequest Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġurl Ġ= ĠHttp Url . parse ("$ baseUrl / page /$ page ") !!. newBuilder () ĊĠĠĠĠĠĠĠ Ġurl . add QueryParameter (" post _ type ", Ġ" wp - manga ") ĊĠĠĠĠĠĠĠ Ġval Ġpattern Ġ= Ġ"\\ s +". to Regex () ĊĠĠĠĠĠĠĠ Ġval Ġq Ġ= Ġquery . replace ( pattern , Ġ"+ ") ĊĠĠĠĠĠĠĠ Ġif Ġ( query . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġurl . add QueryParameter (" s ", Ġq ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġurl . add QueryParameter (" s ", Ġ"") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġvar ĠorderBy : ĠString ĊĊĠĠĠĠĠĠĠ Ġ( if Ġ( filters . isEmpty ()) Ġget Filter List () Ġelse Ġfilters ). forEach Ġ{ Ġfilter Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( filter ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠStatus Ġ-> Ġurl . add QueryParameter (" manga _ status ", ĠarrayOf ("", Ġ" completed ", Ġ" ongo ing ")[ filter . state ]) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠGen re List Filter Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġgenre Include Ġ= Ġmutable ListOf < String >() ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfilter . state . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . state Ġ== Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgenre Include . add ( it . id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( genre Include . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgenre Include . forEach Ġ{ Ġgenre Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġurl . add QueryParameter (" genre [] ", Ġgenre ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠStatus List Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstatuses Ġ= Ġmutable ListOf < String >() ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfilter . state . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . state Ġ== Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstatuses . add ( it . id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( statuses . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstatuses . forEach Ġ{ Ġstatus Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġurl . add QueryParameter (" status [] ", Ġstatus ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠSort By Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠorderBy Ġ= Ġfilter . to Uri Part () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġurl . add QueryParameter (" m _ orderby ", ĠorderBy ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠTextField Ġ-> Ġurl . add QueryParameter ( filter . key , Ġfilter . state ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn ĠGET ( url . toString (), Ġheaders ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġpopular M anga Next Page Selector () Ġ= Ġ"# navigation - ajax " ĊĊĠĠĠ Ġoverride Ġfun Ġm anga Details Parse ( document : ĠDocument ): ĠSM anga Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġinfo Element Ġ= Ġdocument . select (" div . site - content "). first () ĊĊĠĠĠĠĠĠĠ Ġval Ġm anga Ġ= ĠSM anga . create () ĊĠĠĠĠĠĠĠ Ġm anga . author Ġ= Ġinfo Element . select (" div . author - content ") ?. text () ĊĠĠĠĠĠĠĠ Ġm anga . artist Ġ= Ġinfo Element . select (" div . artist - content ") ?. text () ĊĊĠĠĠĠĠĠĠ Ġval Ġgen res Ġ= Ġmutable ListOf < String >() ĊĠĠĠĠĠĠĠ Ġinfo Element . select (" div . genres - content Ġa "). forEach Ġ{ Ġelement Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġgenre Ġ= Ġelement . text () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgen res . add ( genre ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġm anga . genre Ġ= Ġgen res . join ToString (", Ġ") ĊĠĠĠĠĠĠĠ Ġm anga . status Ġ= Ġparse Status ( info Element . select (" div . post - status Ġ> Ġdiv : nth - child ( 2 ) Ġ Ġdiv "). text ()) ĊĊĠĠĠĠĠĠĠ Ġm anga . description Ġ= Ġdocument . select (" div . description - summary ") ?. text () ĊĠĠĠĠĠĠĠ Ġm anga . thumbnail _ url Ġ= Ġdocument . select (" div . summary _ image Ġ> Ġa Ġ> Ġimg "). attr (" data - src ") ĊĊĠĠĠĠĠĠĠ Ġreturn Ġm anga ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġchapter List Selector () Ġ= Ġ" li . wp - manga - chapter " ĊĊĠĠĠ Ġoverride Ġfun Ġchapter From Element ( element : ĠElement ): ĠS Chapter Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġurl Element Ġ= Ġelement . select (" a "). first () ĊĠĠĠĠĠĠĠ Ġval Ġchapter Ġ= ĠS Chapter . create () ĊĠĠĠĠĠĠĠ Ġchapter . set Url Without Domain ( url Element . attr (" href ")) ĊĠĠĠĠĠĠĠ Ġchapter . name Ġ= Ġurl Element . text () ĊĠĠĠĠĠĠĠ Ġchapter . date _ upload Ġ= Ġparse Chapter Date ( element . select (" span . chapter - release - date Ġi "). text ()) ĊĠĠĠĠĠĠĠ Ġreturn Ġchapter ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġpage List Parse ( document : ĠDocument ): ĠList < Page > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġdocument . select (" div . reading - content Ġ* Ġimg "). map Indexed Ġ{ Ġi , Ġimg Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPage ( i , Ġ"", Ġimg . img Attr ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġclass ĠTextField ( name : ĠString , Ġval Ġkey : ĠString ) Ġ: ĠFilter . Text ( name ) ĊĊĠĠĠ Ġprivate Ġclass ĠSort By Ġ: ĠUri Part Filter ( ĊĠĠĠĠĠĠĠ Ġ" Sort Ġby ", ĊĠĠĠĠĠĠĠ ĠarrayOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPair (" Re levance ", Ġ""), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPair (" Latest ", Ġ" latest "), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPair (" A - Z ", Ġ" alphabet "), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPair (" Rating ", Ġ" rating "), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPair (" Trend ing ", Ġ" trend ing "), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPair (" Most ĠView ", Ġ" views "), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPair (" New ", Ġ" new - manga ") ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġprivate Ġclass ĠStatus ( name : ĠString , Ġval Ġid : ĠString Ġ= Ġname ) Ġ: ĠFilter . Tri State ( name ) ĊĠĠĠ Ġprivate Ġclass ĠStatus List ( statuses : ĠList < Status >) Ġ: ĠFilter . Group < Status >(" Status ", Ġstatuses ) ĊĊĠĠĠ Ġoverride Ġfun Ġget Filter List () Ġ= ĠFilter List ( ĊĠĠĠĠĠĠĠ ĠTextField (" Author ", Ġ" author "), ĊĠĠĠĠĠĠĠ ĠTextField (" Year ", Ġ" release "), ĊĠĠĠĠĠĠĠ ĠSort By (), ĊĠĠĠĠĠĠĠ ĠStatus List ( getStatus List ()), ĊĠĠĠĠĠĠĠ ĠGen re List Filter ( get Genre List ()) ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġprivate Ġfun ĠgetStatus List () Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠ ĠStatus (" Completed ", Ġ" end "), ĊĠĠĠĠĠĠĠ ĠStatus (" O ngo ing ", Ġ" on - going "), ĊĠĠĠĠĠĠĠ ĠStatus (" Canceled ", Ġ" c anceled "), ĊĠĠĠĠĠĠĠ ĠStatus (" On hold ", Ġ" on - hold ") ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġoverride Ġfun Ġget Genre List (): ĠList < Genre > Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠ ĠGen re (" Adventure ", Ġ" Adventure "), ĊĠĠĠĠĠĠĠ ĠGen re (" Action ", Ġ" action "), ĊĠĠĠĠĠĠĠ ĠGen re (" Adventure ", Ġ" ad venture "), ĊĠĠĠĠĠĠĠ ĠGen re (" C ars ", Ġ" cars "), ĊĠĠĠĠĠĠĠ ĠGen re (" 4 - K oma ", Ġ" 4 - k oma "), ĊĠĠĠĠĠĠĠ ĠGen re (" Come dy ", Ġ" co med y "), ĊĠĠĠĠĠĠĠ ĠGen re (" Completed ", Ġ" completed "), ĊĠĠĠĠĠĠĠ ĠGen re (" Cook ing ", Ġ" cook ing "), ĊĠĠĠĠĠĠĠ ĠGen re (" D ement ia ", Ġ" de ment ia "), ĊĠĠĠĠĠĠĠ ĠGen re (" Dem ons ", Ġ" de mon s "), ĊĠĠĠĠĠĠĠ ĠGen re (" D ou jin shi ", Ġ" dou jin shi "), ĊĠĠĠĠĠĠĠ ĠGen re (" D ram a ", Ġ" dr ama "), ĊĠĠĠĠĠĠĠ ĠGen re (" Ec chi ", Ġ" ec chi "), ĊĠĠĠĠĠĠĠ ĠGen re (" F antasy ", Ġ" f antasy "), ĊĠĠĠĠĠĠĠ ĠGen re (" Game ", Ġ" game "), ĊĠĠĠĠĠĠĠ ĠGen re (" Gender ĠB ender ", Ġ" gender - b ender "), ĊĠĠĠĠĠĠĠ ĠGen re (" H are m ", Ġ" h are m "), ĊĠĠĠĠĠĠĠ ĠGen re (" H istorical ", Ġ" h istorical "), ĊĠĠĠĠĠĠĠ ĠGen re (" Hor ror ", Ġ" hor ror "), ĊĠĠĠĠĠĠĠ ĠGen re (" I sek ai ", Ġ" ise k ai "), ĊĠĠĠĠĠĠĠ ĠGen re (" J ose i ", Ġ" j ose i "), ĊĠĠĠĠĠĠĠ ĠGen re (" K ids ", Ġ" k ids "), ĊĠĠĠĠĠĠĠ ĠGen re (" Magic ", Ġ" magic "), ĊĠĠĠĠĠĠĠ ĠGen re (" M anga ", Ġ" manga "), ĊĠĠĠĠĠĠĠ ĠGen re (" Man h ua ", Ġ" man h ua "), ĊĠĠĠĠĠĠĠ ĠGen re (" Man hw a ", Ġ" man hw a "), ĊĠĠĠĠĠĠĠ ĠGen re (" Mart ial ĠAr ts ", Ġ" mart ial - arts "), ĊĠĠĠĠĠĠĠ ĠGen re (" M ature ", Ġ" m ature "), ĊĠĠĠĠĠĠĠ ĠGen re (" Me cha ", Ġ" me cha "), ĊĠĠĠĠĠĠĠ ĠGen re (" M ilitary ", Ġ" m ilitary "), ĊĠĠĠĠĠĠĠ ĠGen re (" Music ", Ġ" music "), ĊĠĠĠĠĠĠĠ ĠGen re (" M yst ery ", Ġ" m yst ery "), ĊĠĠĠĠĠĠĠ ĠGen re (" Old ĠCom ic ", Ġ" old - com ic "), ĊĠĠĠĠĠĠĠ ĠGen re (" One ĠShot ", Ġ" one - shot "), ĊĠĠĠĠĠĠĠ ĠGen re (" On esh ot ", Ġ" on esh ot "), ĊĠĠĠĠĠĠĠ ĠGen re (" Par odi ", Ġ" par odi "), ĊĠĠĠĠĠĠĠ ĠGen re (" Par ody ", Ġ" par ody "), ĊĠĠĠĠĠĠĠ ĠGen re (" Pol ice ", Ġ" pol ice "), ĊĠĠĠĠĠĠĠ ĠGen re (" P sy cho logical ", Ġ" psy cho logical "), ĊĠĠĠĠĠĠĠ ĠGen re (" Rom ance ", Ġ" rom ance "), ĊĠĠĠĠĠĠĠ ĠGen re (" Sam ur ai ", Ġ" sam ur ai "), ĊĠĠĠĠĠĠĠ ĠGen re (" School ", Ġ" school "), ĊĠĠĠĠĠĠĠ ĠGen re (" School ĠLife ", Ġ" school - life "), ĊĠĠĠĠĠĠĠ ĠGen re (" S ci - Fi ", Ġ" sci - fi "), ĊĠĠĠĠĠĠĠ ĠGen re (" Se inen ", Ġ" se inen "), ĊĠĠĠĠĠĠĠ ĠGen re (" Sh ou jo ", Ġ" sh ou jo "), ĊĠĠĠĠĠĠĠ ĠGen re (" Sh ou jo ĠA i ", Ġ" sh ou jo - ai "), ĊĠĠĠĠĠĠĠ ĠGen re (" Sh o unen ", Ġ" sh o unen "), ĊĠĠĠĠĠĠĠ ĠGen re (" Sh o unen Ġai ", Ġ" sh o unen - ai "), ĊĠĠĠĠĠĠĠ ĠGen re (" Slice Ġof ĠLife ", Ġ" slice - of - life "), ĊĠĠĠĠĠĠĠ ĠGen re (" S ports ", Ġ" sport s "), ĊĠĠĠĠĠĠĠ ĠGen re (" Super ĠPower ", Ġ" super - power "), ĊĠĠĠĠĠĠĠ ĠGen re (" Super natural ", Ġ" super natural "), ĊĠĠĠĠĠĠĠ ĠGen re (" Th r iller ", Ġ" thr iller "), ĊĠĠĠĠĠĠĠ ĠGen re (" Tr aged y ", Ġ" tr aged y "), ĊĠĠĠĠĠĠĠ ĠGen re (" V amp ire ", Ġ" v amp ire "), ĊĠĠĠĠĠĠĠ ĠGen re (" Web to ons ", Ġ" web to ons "), ĊĠĠĠĠĠĠĠ ĠGen re (" Y ao i ", Ġ" y ao i "), ĊĠĠĠĠĠĠĠ ĠGen re (" Y uri ", Ġ" y uri ") ĊĠĠĠ Ġ) Ċ } Ċ Ċ class ĠKom ik In do Ġ: ĠW PM anga Stream (" K om ik ĠIn do Ġ( WP ĠM anga ĠStream )", Ġ" https :// www . kom ik indo . web . id ", Ġ" id ") Ċ Ċ class ĠM anga Sw at Ġ: ĠW PM anga Stream (" M anga Sw at ", Ġ" https :// m ang as wat . com ", Ġ" ar ") Ġ{ ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠUse ĠIOException Ġor Ġthe Ġapp Ġcrashes ! ĊĠĠĠĠ Ġ* Ġx - suc uri - cache Ġheader Ġis Ġnever Ġpresent Ġon Ġimages ; Ġspecify Ġweb pages Ġor Ġg lide Ġwon 't Ġload Ġimages ! ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġclass ĠSuc uri Ġ: ĠInter ceptor Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġintercept ( chain : ĠInter ceptor . Chain ): ĠResponse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= Ġchain . proceed ( chain . request ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( response . header (" x - suc uri - cache "). isNull OrEmpty () Ġ&& Ġresponse . request (). url (). toString (). contains ("// m ang as wat . com ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠIOException (" Site Ġprotected , Ġopen Ġweb view Ġ| ĠÙħ ÙĪ ÙĤ Ø¹ ĠÙħ ØŃ Ùħ ÙĬ ĠØ Į ĠØ¹ Ø± Ø¶ ĠÙĪ ÙĬ Ø¨ ĠÙħ Ùģ Øª ÙĪ ØŃ ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġresponse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġoverride Ġval Ġclient : ĠOk HttpClient Ġ= Ġsuper . client . newBuilder (). add Interceptor ( Suc uri ()). build () ĊĊĠĠĠ Ġoverride Ġfun Ġheaders Builder (): ĠHeaders . Builder Ġ= ĠHeaders . Builder () ĊĠĠĠĠĠĠĠ Ġ. add (" Refer er ", ĠbaseUrl ) ĊĠĠĠĠĠĠĠ Ġ. add (" User - Agent ", Ġ" Mozilla / 5 . 0 Ġ( Windows ĠNT Ġ 1 0 . 0 ; ĠWin 6 4 ; Ġx 6 4 ; Ġrv : 7 6 . 0 ) ĠGecko / 2 0 1 0 0 1 0 1 ĠFirefox / 7 6 . 0 ") ĊĠĠĠĠĠĠĠ Ġ. add (" Accept ", Ġ" text / html , application / xhtml + xml , application / xml ; q = 0 . 9 , image / webp , image / ap ng ,* /* ; q = 0 . 8 , application / signed - exchange ; v = b 3 ") ĊĊĠĠĠ Ġoverride Ġfun Ġm anga Details Parse ( document : ĠDocument ): ĠSM anga Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠSM anga . create (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdocument . select (" div . big content "). first OrNull ()?. let Ġ{ Ġinfo Element Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgenre Ġ= Ġinfo Element . select (" span : contains ( Ø§ÙĦ Øª Øµ ÙĨ ÙĬ Ùģ ) Ġa "). join ToString Ġ{ Ġit . text () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstatus Ġ= Ġparse Status ( info Element . select (" span : contains ( Ø§ÙĦ ØŃ Ø§ÙĦ Ø© ) "). first OrNull ()?. own Text ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġauthor Ġ= Ġinfo Element . select (" span : contains ( Ø§ÙĦ Ùħ Ø ¤ ÙĦ Ùģ ) Ġi "). first OrNull ()?. own Text () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġartist Ġ= Ġauthor ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdescription Ġ= Ġinfo Element . select (" div . desc "). text () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthumbnail _ url Ġ= Ġinfo Element . select (" img "). img Attr () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġoverride Ġfun Ġpage List Request ( chapter : ĠS Chapter ): ĠRequest Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠGET ( baseUrl Ġ+ Ġchapter . url Ġ+ Ġ"? /", Ġheaders ) Ġ// ĠB yp ass Ġ" link vertise " Ġads ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Filter List () Ġ= ĠFilter List ( ĊĠĠĠĠĠĠĠ ĠStatus Filter (), ĊĠĠĠĠĠĠĠ ĠType Filter (), ĊĠĠĠĠĠĠĠ ĠSort By Filter (), ĊĠĠĠĠĠĠĠ ĠGen re List Filter ( get Genre Pairs ()) ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġprivate Ġclass ĠGen re List Filter ( pairs : ĠArray < Pair < String , ĠString >>) Ġ: ĠUri Part Filter (" Genre ", Ġpairs ) ĊĊĠĠĠ Ġprivate Ġfun Ġget Genre Pairs () Ġ= ĠarrayOf ( ĊĠĠĠĠĠĠĠ ĠPair ("< ---> ", Ġ""), ĊĠĠĠĠĠĠĠ ĠPair (" Ø ¢ ÙĦ Ø§Øª ", Ġ"% d 8 % a 2 % d 9 % 8 4 % d 8 % a 7 % d 8 % aa "), ĊĠĠĠĠĠĠĠ ĠPair (" Ø£ Ùĥ Ø´ ÙĨ ", Ġ"% d 8 % a 3 % d 9 % 8 3 % d 8 % b 4 % d 9 % 8 6 "), ĊĠĠĠĠĠĠĠ ĠPair (" Ø ¥ Ø « Ø§Ø± Ø© ", Ġ"% d 8 % a 5 % d 8 % ab % d 8 % a 7 % d 8 % b 1 % d 8 % a 9 "), ĊĠĠĠĠĠĠĠ ĠPair (" Ø ¥ Ø¹ Ø§Ø¯ Ø© ", Ġ"% d 8 % a 5 % d 8 % b 9 % d 8 % a 7 % d 8 % af % d 8 % a 9 -% d 8 % a 5 % d 8 % ad % d 9 % 8 a % d 8 % a 7 % d 8 % a 1 "), ĊĠĠĠĠĠĠĠ ĠPair (" Ø§ÙĦ ØŃ ÙĬ Ø§Ø © ", Ġ"% d 8 % a 7 % d 9 % 8 4 % d 8 % ad % d 9 % 8 a % d 8 % a 7 % d 8 % a 9 -% d 8 % a 7 % d 9 % 8 4 % d 9 % 8 5 % d 8 % af % d 8 % b 1 % d 8 % b 3 % d 9 % 8 a % d 8 % a 9 "), ĊĠĠĠĠĠĠĠ ĠPair (" Ø§ÙĦ ØŃ ÙĬ Ø§Ø © ", Ġ"% d 8 % a 7 % d 9 % 8 4 % d 8 % ad % d 9 % 8 a % d 8 % a 7 % d 8 % a 9 -% d 8 % a 7 % d 9 % 8 4 % d 9 % 8 a % d 9 % 8 8 % d 9 % 8 5 % d 9 % 8 a % d 8 % a 9 "), ĊĠĠĠĠĠĠĠ ĠPair (" Ø§ÙĦ Ø¹ Ø§Ø¨ ", Ġ"% d 8 % a 7 % d 9 % 8 4 % d 8 % b 9 % d 8 % a 7 % d 8 % a 8 -% d 9 % 8 1 % d 9 % 8 a % d 8 % af % d 9 % 8 a % d 9 % 8 8 "), ĊĠĠĠĠĠĠĠ ĠPair (" Ø§ ÙĬ Øª Ø´ ÙĬ ", Ġ"% d 8 % a 7 % d 9 % 8 a % d 8 % aa % d 8 % b 4 % d 9 % 8 a "), ĊĠĠĠĠĠĠĠ ĠPair (" Ø§ ÙĬ Ø³ Ùĥ Ø§ ÙĬ ", Ġ"% d 8 % a 7 % d 9 % 8 a % d 8 % b 3 % d 9 % 8 3 % d 8 % a 7 % d 9 % 8 a "), ĊĠĠĠĠĠĠĠ ĠPair (" Ø¨ Ø§ÙĦ Øº ", Ġ"% d 8 % a 8 % d 8 % a 7 % d 9 % 8 4 % d 8 % ba "), ĊĠĠĠĠĠĠĠ ĠPair (" Øª Ø§Ø± ÙĬ Ø® ÙĬ ", Ġ"% d 8 % aa % d 8 % a 7 % d 8 % b 1 % d 9 % 8 a % d 8 % ae % d 9 % 8 a "), ĊĠĠĠĠĠĠĠ ĠPair (" ØªØ± Ø§Ø ¬ ÙĬ Ø¯ ÙĬ ", Ġ"% d 8 % aa % d 8 % b 1 % d 8 % a 7 % d 8 % ac % d 9 % 8 a % d 8 % af % d 9 % 8 a "), ĊĠĠĠĠĠĠĠ ĠPair (" Ø¬ ÙĪ Ø³ ÙĬ Ùĩ ", Ġ"% d 8 % ac % d 9 % 8 8 % d 8 % b 3 % d 9 % 8 a % d 9 % 8 7 "), ĊĠĠĠĠĠĠĠ ĠPair (" Ø¬ ÙĬ ÙĨØ¯ Ø± ", Ġ"% d 8 % ac % d 9 % 8 a % d 9 % 8 6 % d 8 % af % d 8 % b 1 -% d 8 % a 8 % d 9 % 8 6 % d 8 % af % d 8 % b 1 "), ĊĠĠĠĠĠĠĠ ĠPair (" ØŃ Ø± Ø¨ ÙĬ ", Ġ"% d 8 % ad % d 8 % b 1 % d 8 % a 8 % d 9 % 8 a "), ĊĠĠĠĠĠĠĠ ĠPair (" ØŃ Ø± ÙĬ Ùħ ", Ġ"% d 8 % ad % d 8 % b 1 % d 9 % 8 a % d 9 % 8 5 "), ĊĠĠĠĠĠĠĠ ĠPair (" Ø® Ø§Ø± ÙĤ ", Ġ"% d 8 % ae % d 8 % a 7 % d 8 % b 1 % d 9 % 8 2 -% d 9 % 8 4 % d 9 % 8 4 % d 8 % b 7 % d 8 % a 8 % d 9 % 8 a % d 8 % b 9 % d 8 % a 9 "), ĊĠĠĠĠĠĠĠ ĠPair (" Ø® ÙĬ Ø§ÙĦ ", Ġ"% d 8 % ae % d 9 % 8 a % d 8 % a 7 % d 9 % 8 4 "), ĊĠĠĠĠĠĠĠ ĠPair (" Ø® ÙĬ Ø§ÙĦ ", Ġ"% d 8 % ae % d 9 % 8 a % d 8 % a 7 % d 9 % 8 4 -% d 8 % b 9 % d 9 % 8 4 % d 9 % 8 5 % d 9 % 8 a "), ĊĠĠĠĠĠĠĠ ĠPair (" Ø¯ Ø± Ø§Ùħ Ø§ ", Ġ"% d 8 % af % d 8 % b 1 % d 8 % a 7 % d 9 % 8 5 % d 8 % a 7 "), ĊĠĠĠĠĠĠĠ ĠPair (" Ø¯ Ùħ ÙĪ ÙĬ ", Ġ"% d 8 % af % d 9 % 8 5 % d 9 % 8 8 % d 9 % 8 a "), ĊĠĠĠĠĠĠĠ ĠPair (" Ø± Ø¹ Ø¨ ", Ġ"% d 8 % b 1 % d 8 % b 9 % d 8 % a 8 "), ĊĠĠĠĠĠĠĠ ĠPair (" Ø± ÙĪ Ùħ Ø§ÙĨ Ø³ ÙĬ ", Ġ"% d 8 % b 1 % d 9 % 8 8 % d 9 % 8 5 % d 8 % a 7 % d 9 % 8 6 % d 8 % b 3 % d 9 % 8 a "), ĊĠĠĠĠĠĠĠ ĠPair (" Ø± ÙĬ Ø§Ø ¶ Ø© ", Ġ"% d 8 % b 1 % d 9 % 8 a % d 8 % a 7 % d 8 % b 6 % d 8 % a 9 "), ĊĠĠĠĠĠĠĠ ĠPair (" Ø² Ùħ Ùĥ Ø§ÙĨ ÙĬ ", Ġ"% d 8 % b 2 % d 9 % 8 5 % d 9 % 8 3 % d 8 % a 7 % d 9 % 8 6 % d 9 % 8 a "), ĊĠĠĠĠĠĠĠ ĠPair (" Ø² ÙĪ Ùħ Ø¨ ÙĬ ", Ġ"% d 8 % b 2 % d 9 % 8 8 % d 9 % 8 5 % d 8 % a 8 % d 9 % 8 a "), ĊĠĠĠĠĠĠĠ ĠPair (" Ø³ ØŃ Ø± ", Ġ"% d 8 % b 3 % d 8 % ad % d 8 % b 1 "), ĊĠĠĠĠĠĠĠ ĠPair (" Ø³ ÙĬÙĨ ÙĬÙĨ ", Ġ"% d 8 % b 3 % d 9 % 8 a % d 9 % 8 6 % d 9 % 8 a % d 9 % 8 6 "), ĊĠĠĠĠĠĠĠ ĠPair (" Ø´ Ø± ÙĬ ØŃ Ø© ", Ġ"% d 8 % b 4 % d 8 % b 1 % d 9 % 8 a % d 8 % ad % d 8 % a 9 -% d 9 % 8 5 % d 9 % 8 6 -% d 8 % a 7 % d 9 % 8 4 % d 8 % ad % d 9 % 8 a % d 8 % a 7 % d 8 % a 9 "), ĊĠĠĠĠĠĠĠ ĠPair (" Ø´ ÙĪ Ø¬ ÙĪ ", Ġ"% d 8 % b 4 % d 9 % 8 8 % d 8 % ac % d 9 % 8 8 "), ĊĠĠĠĠĠĠĠ ĠPair (" Ø´ ÙĪÙĨ ÙĬÙĨ ", Ġ"% d 8 % b 4 % d 9 % 8 8 % d 9 % 8 6 % d 9 % 8 a % d 9 % 8 6 "), ĊĠĠĠĠĠĠĠ ĠPair (" Ø´ ÙĬ Ø§Ø · ÙĬÙĨ ", Ġ"% d 8 % b 4 % d 9 % 8 a % d 8 % a 7 % d 8 % b 7 % d 9 % 8 a % d 9 % 8 6 "), ĊĠĠĠĠĠĠĠ ĠPair (" Ø· Ø¨ Ø® ", Ġ"% d 8 % b 7 % d 8 % a 8 % d 8 % ae "), ĊĠĠĠĠĠĠĠ ĠPair (" Ø· Ø¨ ÙĬ ", Ġ"% d 8 % b 7 % d 8 % a 8 % d 9 % 8 a "), ĊĠĠĠĠĠĠĠ ĠPair (" Øº Ùħ ÙĪ Ø¶ ", Ġ"% d 8 % ba % d 9 % 8 5 % d 9 % 8 8 % d 8 % b 6 "), ĊĠĠĠĠĠĠĠ ĠPair (" Ùģ Ø§ÙĨ Øª Ø§Ø ² ÙĬ ", Ġ"% d 9 % 8 1 % d 8 % a 7 % d 9 % 8 6 % d 8 % aa % d 8 % a 7 % d 8 % b 2 % d 9 % 8 a "), ĊĠĠĠĠĠĠĠ ĠPair (" Ùģ ÙĨ ÙĪÙĨ ", Ġ"% d 9 % 8 1 % d 9 % 8 6 % d 9 % 8 8 % d 9 % 8 6 -% d 9 % 8 2 % d 8 % aa % d 8 % a 7 % d 9 % 8 4 % d 9 % 8 a % d 8 % a 9 "), ĊĠĠĠĠĠĠĠ ĠPair (" Ùģ ÙĪ ÙĤ ", Ġ"% d 9 % 8 1 % d 9 % 8 8 % d 9 % 8 2 -% d 8 % a 7 % d 9 % 8 4 % d 8 % b 7 % d 8 % a 8 % d 9 % 8 a % d 8 % b 9 % d 8 % a 9 "), ĊĠĠĠĠĠĠĠ ĠPair (" ÙĤ ÙĪ Ùī ", Ġ"% d 9 % 8 2 % d 9 % 8 8 % d 9 % 8 9 -% d 8 % ae % d 8 % a 7 % d 8 % b 1 % d 9 % 8 2 % d 8 % a 9 "), ĊĠĠĠĠĠĠĠ ĠPair (" Ùĥ ÙĪ Ùħ ÙĬ Ø¯ ÙĬ ", Ġ"% d 9 % 8 3 % d 9 % 8 8 % d 9 % 8 5 % d 9 % 8 a % d 8 % af % d 9 % 8 a "), ĊĠĠĠĠĠĠĠ ĠPair (" ÙĦ Ø¹ Ø¨ Ø© ", Ġ"% d 9 % 8 4 % d 8 % b 9 % d 8 % a 8 % d 8 % a 9 "), ĊĠĠĠĠĠĠĠ ĠPair (" Ùħ Ø§Ùģ ÙĬ Ø§ ", Ġ"% d 9 % 8 5 % d 8 % a 7 % d 9 % 8 1 % d 9 % 8 a % d 8 % a 7 "), ĊĠĠĠĠĠĠĠ ĠPair (" Ùħ Øµ Ø§Ø µ Ùī ", Ġ"% d 9 % 8 5 % d 8 % b 5 % d 8 % a 7 % d 8 % b 5 % d 9 % 8 9 -% d 8 % a 7 % d 9 % 8 4 % d 8 % af % d 9 % 8 5 % d 8 % a 7 % d 8 % a 1 "), ĊĠĠĠĠĠĠĠ ĠPair (" Ùħ Øº Ø§Ùħ Ø± Ø§Øª ", Ġ"% d 9 % 8 5 % d 8 % ba % d 8 % a 7 % d 9 % 8 5 % d 8 % b 1 % d 8 % a 7 % d 8 % aa "), ĊĠĠĠĠĠĠĠ ĠPair (" Ùħ ÙĬ Ùĥ Ø§ ", Ġ"% d 9 % 8 5 % d 9 % 8 a % d 9 % 8 3 % d 8 % a 7 "), ĊĠĠĠĠĠĠĠ ĠPair (" ÙĨ Ùģ Ø³ ÙĬ ", Ġ"% d 9 % 8 6 % d 9 % 8 1 % d 8 % b 3 % d 9 % 8 a "), ĊĠĠĠĠĠĠĠ ĠPair (" ÙĪ ØŃ ÙĪ Ø´ ", Ġ"% d 9 % 8 8 % d 8 % ad % d 9 % 8 8 % d 8 % b 4 "), ĊĠĠĠĠĠĠĠ ĠPair (" ÙĪ ÙĬ Ø¨ - Øª ÙĪÙĨ ", Ġ"% d 9 % 8 8 % d 9 % 8 a % d 8 % a 8 -% d 8 % aa % d 9 % 8 8 % d 9 % 8 6 ") ĊĠĠĠ Ġ) Ċ } Ċ Ċ class ĠM anga Raw Ġ: ĠW PM anga Stream (" M anga ĠRaw ", Ġ" https :// m ang ar aw . org ", Ġ" ja ") Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġpopular M anga Request ( page : ĠInt ): ĠRequest Ġ= ĠGET ("$ baseUrl / search ? order = popular & page =$ page ", Ġheaders ) ĊĠĠĠ Ġoverride Ġfun Ġpopular M anga Selector () Ġ= Ġ" div . bs x " ĊĠĠĠ Ġoverride Ġfun Ġpopular M anga From Element ( element : ĠElement ): ĠSM anga Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠSM anga . create (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelement . select (" div . big or Ġ> Ġa "). let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Url Without Domain ( it . attr (" href ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Ġ= Ġit . text () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthumbnail _ url Ġ= Ġelement . select (" img "). attr (" abs : src ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġoverride Ġfun Ġpopular M anga Next Page Selector () Ġ= Ġ" a [ rel = next ]" ĊĠĠĠ Ġoverride Ġfun Ġlatest Updates Request ( page : ĠInt ): ĠRequest Ġ= ĠGET ("$ baseUrl / search ? order = update & page =$ page ", Ġheaders ) ĊĠĠĠ Ġoverride Ġfun Ġsearch M anga Request ( page : ĠInt , Ġquery : ĠString , Ġfilters : ĠFilter List ): ĠRequest Ġ= ĊĠĠĠĠĠĠĠ ĠGET ("$ baseUrl / search ? s =$ query & page =$ page ") ĊĠĠĠ Ġoverride Ġfun Ġsearch M anga From Element ( element : ĠElement ): ĠSM anga Ġ= Ġpopular M anga From Element ( element ) ĊĠĠĠ Ġoverride Ġfun Ġm anga Details Parse ( document : ĠDocument ): ĠSM anga Ġ= Ġsuper . manga Details Parse ( document ) ĊĠĠĠĠĠĠĠ Ġ. apply Ġ{ Ġdescription Ġ= Ġdocument . select (" div . bottom "). first OrNull ()?. own Text () Ġ} ĊĠĠĠ Ġoverride Ġfun Ġfetch Page List ( chapter : ĠS Chapter ): ĠObservable < List < Page >> Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġclient . new Call ( page List Request ( chapter )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. as Observable Success () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġresponse Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpage List Parse ( response , ĠbaseUrl Ġ+ Ġchapter . url . remove Suffix ("/ ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġprivate Ġfun Ġpage List Parse ( response : ĠResponse , Ġchapter Url : ĠString ): ĠList < Page > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġresponse . as J soup (). select (" span . page - link "). first (). own Text (). substring After Last (" Ġ"). toInt () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. let Ġ{ Ġlast Num Ġ-> ĠInt Range ( 1 , Ġlast Num ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġnum Ġ-> ĠPage ( num , Ġ"$ chapter Url /$ num ") Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġoverride Ġfun ĠimageUrl Parse ( document : ĠDocument ): ĠString Ġ= Ġdocument . select (" a . img - block Ġimg "). attr (" abs : src ") ĊĠĠĠ Ġoverride Ġfun Ġget Filter List (): ĠFilter List Ġ= ĠFilter List () Ċ } Ċ Ċ class ĠNon Stop Sc ans Ġ: ĠW PM anga Stream (" Non - Stop ĠSc ans ", Ġ" https :// www . non stop sc ans . com ", Ġ" en ") Ċ Ċ class ĠKom ik Tap Ġ: ĠW PM anga Stream (" K om ik Tap ", Ġ" https :// kom ik tap . in /", Ġ" id ") Ċ Ċ class ĠM ata kom ik Ġ: ĠW PM anga Stream (" M ata kom ik ", Ġ" https :// m ata kom ik . com ", Ġ" id ") Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġpage List Parse ( document : ĠDocument ): ĠList < Page > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġdocument . select (" div # reader area Ġa "). map Indexed Ġ{ Ġi , Ġa Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPage ( i , Ġ"", Ġa . attr (" abs : href ")) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠKom ik indo Co Ġ: ĠW PM anga Stream (" K om ik indo . co ", Ġ" https :// kom ik indo . co ", Ġ" id ") Ċ Ċ class ĠRead K om ik Ġ: ĠW PM anga Stream (" Read kom ik ", Ġ" https :// read kom ik . com ", Ġ" en ") Ċ Ċ class ĠM anga P Ġ: ĠW PM anga Stream (" M anga P ", Ġ" https :// m ang ap . me ", Ġ" ar ") Ċ Ċ class ĠM anga Pro Z Ġ: ĠW PM anga Stream (" M anga ĠPro ĠZ ", Ġ" https :// m ang apro z . com ", Ġ" ar ") Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġchapter From Element ( element : ĠElement ): ĠS Chapter Ġ= Ġsuper . chapter From Element ( element ). apply Ġ{ Ġname Ġ= Ġname . remove Suffix (" Ġfree ") Ġ} Ċ } Ċ Ċ class ĠB oose i Ġ: ĠW PM anga Stream (" B oose i ", Ġ" https :// b oose i . com ", Ġ" id ") Ċ Ċ class ĠM ang ak yo Ġ: ĠW PM anga Stream (" M ang ak yo ", Ġ" https :// www . m ang ak yo . me ", Ġ" id ") Ċ Ċ class ĠSil ence Scan Ġ: ĠW PM anga Stream ( ĊĠĠĠ Ġ" Sil ence ĠScan ", ĊĠĠĠ Ġ" https :// sil ences can . net ", ĊĠĠĠ Ġ" pt - BR ", ĊĠĠĠ ĠSimpleDateFormat (" MMMM Ġdd , Ġy yyy ", ĠLocale (" pt ", Ġ" BR ")) Ċ ) Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġm anga Details Parse ( document : ĠDocument ): ĠSM anga Ġ= ĠSM anga . create (). apply Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġinfo El Ġ= Ġdocument . select (" div . big content , Ġdiv . anime full "). first () ĊĊĠĠĠĠĠĠĠ Ġauthor Ġ= Ġinfo El . select (" b : contains ( Autor ) Ġ+ Ġspan "). text () ĊĠĠĠĠĠĠĠ Ġartist Ġ= Ġinfo El . select (" b : contains ( Art ista ) Ġ+ Ġspan "). text () ĊĠĠĠĠĠĠĠ Ġstatus Ġ= Ġparse Status ( info El . select (" div . imp td t : contains ( Status ) Ġi "). text ()) ĊĠĠĠĠĠĠĠ Ġdescription Ġ= Ġinfo El . select (" h 2 : contains ( Sin op se ) Ġ+ Ġdiv Ġp "). join ToString ("\ n ") Ġ{ Ġit . text () Ġ} ĊĠĠĠĠĠĠĠ Ġgenre Ġ= Ġinfo El . select (" b : contains ( G Ãª ner os ) Ġ+ Ġspan Ġa "). join ToString Ġ{ Ġit . text () Ġ} ĊĠĠĠĠĠĠĠ Ġthumbnail _ url Ġ= Ġinfo El . select (" div . thumb Ġimg "). img Attr () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġchapter From Element ( element : ĠElement ): ĠS Chapter Ġ= ĠS Chapter . create (). apply Ġ{ ĊĠĠĠĠĠĠĠ Ġname Ġ= Ġelement . select (" span . chap tern um "). text () ĊĠĠĠĠĠĠĠ Ġscan lator Ġ= Ġthis @ Sil ence Scan . name ĊĠĠĠĠĠĠĠ Ġdate _ upload Ġ= Ġelement . select (" span . chapter date "). first OrNull ()?. text () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ? . let Ġ{ Ġparse Chapter Date ( it ) Ġ} Ġ?: Ġ 0 ĊĠĠĠĠĠĠĠ Ġset Url Without Domain ( element . select (" div . e ph - num Ġ> Ġa "). attr (" href ")) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġpage List Parse ( document : ĠDocument ): ĠList < Page > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġchapter Obj Ġ= Ġdocument . select (" script : contains Data ( ts _ reader ) "). first () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. data () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. substring After (" run (" ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. substring Before Last (" ); ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. let Ġ{ ĠJSON _ PARSER . parse ( it ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. obj ĊĊĠĠĠĠĠĠĠ Ġif Ġ( chapter Obj [" sources "]. array . size () Ġ== Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġempty List () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġfirst Server Available Ġ= Ġchapter Obj [" sources "]. array [ 0 ]. obj ĊĊĠĠĠĠĠĠĠ Ġreturn Ġfirst Server Available [" images "]. array ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Indexed Ġ{ Ġi , Ġpage Url Ġ-> ĠPage ( i , Ġ"", Ġpage Url . string ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Genre List (): ĠList < Genre > Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠ ĠGen re (" 4 - k oma ", Ġ" 4 - k oma "), ĊĠĠĠĠĠĠĠ ĠGen re (" A Ã§Ã£o ", Ġ" acao "), ĊĠĠĠĠĠĠĠ ĠGen re (" Ad ul to ", Ġ" ad ul to "), ĊĠĠĠĠĠĠĠ ĠGen re (" Ar tes Ġm arc ia is ", Ġ" art es - mar cia is "), ĊĠĠĠĠĠĠĠ ĠGen re (" Com Ã© dia ", Ġ" co media "), ĊĠĠĠĠĠĠĠ ĠGen re (" Come dy ", Ġ" co med y "), ĊĠĠĠĠĠĠĠ ĠGen re (" C ul in Ã¡ ria ", Ġ" cul in aria "), ĊĠĠĠĠĠĠĠ ĠGen re (" D ram a ", Ġ" dr ama "), ĊĠĠĠĠĠĠĠ ĠGen re (" Ec chi ", Ġ" ec chi "), ĊĠĠĠĠĠĠĠ ĠGen re (" Esp orte ", Ġ" es port e "), ĊĠĠĠĠĠĠĠ ĠGen re (" F ant as ia ", Ġ" f ant as ia "), ĊĠĠĠĠĠĠĠ ĠGen re (" G ore ", Ġ" g ore "), ĊĠĠĠĠĠĠĠ ĠGen re (" Har Ã©m ", Ġ" h are m "), ĊĠĠĠĠĠĠĠ ĠGen re (" Hor ror ", Ġ" hor ror "), ĊĠĠĠĠĠĠĠ ĠGen re (" I sek ai ", Ġ" ise k ai "), ĊĠĠĠĠĠĠĠ ĠGen re (" M ilit ar ", Ġ" m ilit ar "), ĊĠĠĠĠĠĠĠ ĠGen re (" M ist Ã© rio ", Ġ" m ister io "), ĊĠĠĠĠĠĠĠ ĠGen re (" On esh ot ", Ġ" on esh ot "), ĊĠĠĠĠĠĠĠ ĠGen re (" Par c ial mente ĠDrop ado ", Ġ" par c ial mente - drop ado "), ĊĠĠĠĠĠĠĠ ĠGen re (" Ps icol Ã³g ico ", Ġ" ps ico logic o "), ĊĠĠĠĠĠĠĠ ĠGen re (" Rom ance ", Ġ" rom ance "), ĊĠĠĠĠĠĠĠ ĠGen re (" School ĠLife ", Ġ" school - life "), ĊĠĠĠĠĠĠĠ ĠGen re (" S ci - fi ", Ġ" sci - fi "), ĊĠĠĠĠĠĠĠ ĠGen re (" Se inen ", Ġ" se inen "), ĊĠĠĠĠĠĠĠ ĠGen re (" Sh ou jo ĠA i ", Ġ" sh ou jo - ai "), ĊĠĠĠĠĠĠĠ ĠGen re (" Sh o unen ", Ġ" sh o unen "), ĊĠĠĠĠĠĠĠ ĠGen re (" Slice Ġof Ġlife ", Ġ" slice - of - life "), ĊĠĠĠĠĠĠĠ ĠGen re (" S ob ren atural ", Ġ" so b ren atural "), ĊĠĠĠĠĠĠĠ ĠGen re (" Super natural ", Ġ" super natural "), ĊĠĠĠĠĠĠĠ ĠGen re (" Tr ag Ã© dia ", Ġ" tr aged ia "), ĊĠĠĠĠĠĠĠ ĠGen re (" V ida ĠEs col ar ", Ġ" vid a - es col ar "), ĊĠĠĠĠĠĠĠ ĠGen re (" Vi ol Ãªncia Ġsex ual ", Ġ" vi ol encia - sex ual "), ĊĠĠĠĠĠĠĠ ĠGen re (" Y uri ", Ġ" y uri ") ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠJSON _ PARSER Ġby Ġlazy Ġ{ ĠJson Parser () Ġ} ĊĠĠĠ Ġ} Ċ } Ċ