package Ġeu . kan ade . t ach iy omi . extension . en . m ang ar ok Ċ Ċ import Ġeu . kan ade . t ach iy omi . network . GET Ċ 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 . source . online . Parsed Http Source Ċ import Ġokhttp 3 . Http Url . Companion . to Http Url Ċ import Ġokhttp 3 . Request Ċ import Ġorg . js oup . nodes . Document Ċ import Ġorg . js oup . nodes . Element Ċ import Ġjava . text . SimpleDateFormat Ċ import Ġjava . util . Locale Ċ Ċ class ĠM anga R ok Ġ: ĠParsed Http Source () Ġ{ ĊĠĠĠ Ġoverride Ġval Ġname Ġ= Ġ" M anga R ok " ĊĊĠĠĠ Ġoverride Ġval ĠbaseUrl Ġ= Ġ" https :// m ang ar ok . mob i " ĊĊĠĠĠ Ġoverride Ġval Ġlang Ġ= Ġ" en " ĊĊĠĠĠ Ġoverride Ġval Ġsupports Latest Ġ= Ġtrue ĊĊĠĠĠ Ġprivate Ġval ĠdateFormat Ġ= ĠSimpleDateFormat (" yyy / MM / dd ", ĠLocale . US ) ĊĊĠĠĠ Ġprivate Ġval Ġfloat Pattern Ġ= ĠRegex (""" \ d +( ?:\ .\ d + )? """) ĊĊĠĠĠ Ġ// ĠPop ular ĊĠĠĠ Ġoverride Ġfun Ġpopular M anga Request ( page : ĠInt ): ĠRequest Ġ= ĊĠĠĠĠĠĠĠ ĠGET ("$ baseUrl / category / all ", Ġheaders ) ĊĊĠĠĠ Ġoverride Ġfun Ġpopular M anga Selector (): ĠString Ġ= ĊĠĠĠĠĠĠĠ Ġsearch M anga Selector () ĊĊĠĠĠ Ġoverride Ġfun Ġpopular M anga From Element ( element : ĠElement ): ĠSM anga Ġ= ĊĠĠĠĠĠĠĠ Ġsearch M anga From Element ( element ) ĊĊĠĠĠ Ġoverride Ġfun Ġpopular M anga Next Page Selector (): ĠString ? Ġ= ĊĠĠĠĠĠĠĠ Ġsearch M anga Next Page Selector () ĊĊĠĠĠ Ġ// ĠSearch ĊĠĠĠ Ġoverride Ġfun Ġsearch M anga Request ( page : ĠInt , Ġquery : ĠString , Ġfilters : ĠFilter List ): ĠRequest Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġurl Ġ= Ġ"$ baseUrl / search ". to Http Url (). newBuilder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add QueryParameter (" q ", Ġquery ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add QueryParameter (" page ", Ġpage . toString ()) ĊĊĠĠĠĠĠĠĠ Ġreturn ĠGET ( url . toString (), Ġheaders ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġoverride Ġfun Ġsearch M anga Selector (): ĠString Ġ= ĊĠĠĠĠĠĠĠ Ġ". is - half Ġ> Ġa . box " ĊĊĠĠĠ Ġoverride Ġfun Ġsearch M anga From Element ( element : ĠElement ): ĠSM anga Ġ= ĠSM anga . create (). apply Ġ{ ĊĠĠĠĠĠĠĠ Ġset Url Without Domain ( element . attr (" abs : href ")) ĊĠĠĠĠĠĠĠ Ġtitle Ġ= Ġelement . select First (". m title "). own Text () ĊĠĠĠĠĠĠĠ Ġthumbnail _ url Ġ= Ġelement . select First (" img "). attr (" abs : data - src ") ĊĊĠĠĠĠĠĠĠ Ġgenre Ġ= Ġelement . select (". tag . is - small "). join ToString Ġ{ Ġit . text () Ġ} ĊĠĠĠĠĠĠĠ Ġstatus Ġ= Ġelement . select First (". ms ub "). text (). substring Before (" Ġ"). to Status () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġsearch M anga Next Page Selector (): ĠString ? Ġ= ĊĠĠĠĠĠĠĠ Ġ". buttons Ġ> Ġa [ rel = next ]: not ([ disabled ]) " ĊĊĠĠĠ Ġ// ĠLatest ĊĠĠĠ Ġoverride Ġfun Ġlatest Updates Request ( page : ĠInt ): ĠRequest Ġ= ĊĠĠĠĠĠĠĠ ĠGET ("$ baseUrl / category / latest ", Ġheaders ) ĊĊĠĠĠ Ġoverride Ġfun Ġlatest Updates Selector (): ĠString Ġ= ĊĠĠĠĠĠĠĠ Ġsearch M anga Selector () ĊĊĠĠĠ Ġoverride Ġfun Ġlatest Updates From Element ( element : ĠElement ): ĠSM anga Ġ= ĊĠĠĠĠĠĠĠ Ġsearch M anga From Element ( element ) ĊĊĠĠĠ Ġoverride Ġfun Ġlatest Updates Next Page Selector (): ĠString ? Ġ= ĊĠĠĠĠĠĠĠ Ġsearch M anga Next Page Selector () ĊĊĠĠĠ Ġ// ĠDetails ĊĠĠĠ Ġoverride Ġfun Ġm anga Details Parse ( document : ĠDocument ): ĠSM anga Ġ= ĠSM anga . create (). apply Ġ{ ĊĠĠĠĠĠĠĠ Ġtitle Ġ= Ġdocument . select First (" h 1 "). text () ĊĠĠĠĠĠĠĠ Ġthumbnail _ url Ġ= Ġdocument . select First (" img . ath umb nail "). attr (" abs : data - src ") ĊĊĠĠĠĠĠĠĠ Ġval Ġtable Ġ= Ġdocument . select First (". table : not (. is - hover able )") ĊĠĠĠĠĠĠĠ Ġartist Ġ= Ġtable . select First (" tr Ġ> Ġtd : first - child : contains ( Artist :) Ġ+ Ġtd Ġ> Ġa "). text () ĊĠĠĠĠĠĠĠ Ġauthor Ġ= Ġtable . select First (" tr Ġ> Ġtd : first - child : contains ( Author :) Ġ+ Ġtd Ġ> Ġa "). text () ĊĊĠĠĠĠĠĠĠ Ġval Ġalt Names Ġ= Ġtable . select (" tr Ġ> Ġtd : first - child : contains ( Alt Ġnames :) Ġ+ Ġtd Ġ> Ġspan ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġit . text (). trim End (',') Ġ} ĊĊĠĠĠĠĠĠĠ Ġdescription Ġ= Ġdocument . select First (" h 2 Ġ+ Ġ. content ") !!. text () Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( alt Names . take If Ġ{ Ġit . isNotEmpty () Ġ} ?. let Ġ{ Ġ"\ n \ n Alt Ġname ( s ): Ġ${ it . join ToString () }" Ġ} Ġ?: Ġ"") ĊĊĠĠĠĠĠĠĠ Ġ// ĠIncludes Ġ" Genre ", Ġ" Demo graphic ", Ġand Ġ" Content " ĊĠĠĠĠĠĠĠ Ġgenre Ġ= Ġtable . select (". tag . is - info ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. join ToString Ġ{ Ġit . text () Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// ĠChapter s ĊĠĠĠ Ġoverride Ġfun Ġchapter List Selector (): ĠString Ġ= ĊĠĠĠĠĠĠĠ Ġ" table . is - hover able Ġ> Ġtbody Ġ> Ġtr " ĊĊĠĠĠ Ġoverride Ġfun Ġchapter From Element ( element : ĠElement ): ĠS Chapter Ġ= ĠS Chapter . create (). apply Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġa Ġ= Ġelement . select First (" a ") ĊĠĠĠĠĠĠĠ Ġset Url Without Domain ( a . attr (" abs : href ")) ĊĠĠĠĠĠĠĠ Ġname Ġ= Ġa . text () ĊĊĠĠĠĠĠĠĠ Ġval Ġdate String Ġ= Ġelement . select First (" td : nth - child ( 2 ) "). text () ĊĠĠĠĠĠĠĠ Ġdate _ upload Ġ= ĠdateFormat ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. parse ( date String ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ? . time Ġ?: Ġ 0 L ĊĊĠĠĠĠĠĠĠ Ġchapter _ number Ġ= Ġfloat Pattern . find ( name )?. value ?. toFloat OrNull () Ġ?: Ġ- 1 f ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// ĠPages ĊĠĠĠ Ġoverride Ġfun Ġpage List Parse ( document : ĠDocument ): ĠList < Page > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġdocument . select (" p Ġ> Ġimg . lz l "). map Indexed Ġ{ Ġi , Ġimg Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPage ( i , Ġ"", Ġimg . attr (" abs : data - src ")) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠimageUrl Parse ( document : ĠDocument ): ĠString Ġ= ĊĠĠĠĠĠĠĠ Ġthrow ĠUnsupportedOperationException (" Not Ġused .") ĊĊĠĠĠ Ġ// ĠFilters ĊĠĠĠ Ġoverride Ġfun Ġget Filter List (): ĠFilter List Ġ= ĠFilter List () ĊĊĠĠĠ Ġ// ĠOther ĊĠĠĠ Ġprivate Ġfun ĠString . to Status (): ĠInt Ġ= Ġwhen Ġ( this ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ" Completed " Ġ-> ĠSM anga . COMPLETED ĊĠĠĠĠĠĠĠ Ġ" O ngo ing " Ġ-> ĠSM anga . ONGO ING ĊĠĠĠĠĠĠĠ Ġelse Ġ-> ĠSM anga . UNKNOWN ĊĠĠĠ Ġ} Ċ } Ċ