package Ġeu . kan ade . t ach iy omi . extension . id . kom ik ind oid čĊč Ċ import Ġeu . kan ade . t ach iy omi . network . GET č Ċ 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 . source . online . Parsed Http Source č Ċ import Ġokhttp 3 . Headers č Ċ import Ġokhttp 3 . Http Url . Companion . to Http Url OrNull č Ċ import Ġokhttp 3 . Ok HttpClient č Ċ import Ġokhttp 3 . Request č Ċ import Ġorg . js oup . nodes . Document č Ċ import Ġorg . js oup . nodes . Element č Ċ import Ġjava . text . SimpleDateFormat č Ċ import Ġjava . util . Calendar č Ċ import Ġjava . util . Locale čĊč Ċ class ĠKom ik In do ID Ġ: ĠParsed Http Source () Ġ{ čĊĠĠĠ Ġoverride Ġval Ġname Ġ= Ġ" K om ik In do ID " čĊĠĠĠ Ġoverride Ġval ĠbaseUrl Ġ= Ġ" https :// kom ik indo . id " čĊĠĠĠ Ġoverride Ġval Ġlang Ġ= Ġ" id " čĊĠĠĠ Ġoverride Ġval Ġsupports Latest Ġ= Ġtrue čĊĠĠĠ Ġoverride Ġval Ġclient : ĠOk HttpClient Ġ= Ġnetwork . cloudflare Client čĊĠĠĠ Ġprivate Ġval ĠdateFormat : ĠSimpleDateFormat Ġ= ĠSimpleDateFormat (" MMM Ġd , Ġy yyy ", ĠLocale . US ) čĊčĊĠĠĠ Ġ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 / da ftar - kom ik / page /$ page /? order = update ", Ġheaders ) čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġoverride Ġfun Ġpopular M anga Selector () Ġ= Ġ" div . anime post " čĊĠĠĠ Ġoverride Ġfun Ġlatest Updates Selector () Ġ= Ġpopular M anga Selector () čĊĠĠĠ Ġoverride Ġfun Ġsearch M anga Selector () Ġ= Ġpopular M anga Selector () čĊčĊĠĠĠ Ġoverride Ġfun Ġpopular M anga From Element ( element : ĠElement ): ĠSM anga Ġ= Ġsearch M anga From Element ( element ) čĊĠĠĠ Ġoverride Ġfun Ġlatest Updates From Element ( element : ĠElement ): ĠSM anga Ġ= Ġsearch M anga From Element ( element ) čĊčĊĠĠĠ Ġoverride Ġfun Ġpopular M anga Next Page Selector () Ġ= Ġ" a . next . page - numbers " čĊĠĠĠ Ġoverride Ġfun Ġlatest Updates Next Page Selector () Ġ= Ġpopular M anga Next Page Selector () čĊĠĠĠ Ġoverride Ġfun Ġsearch M anga Next Page Selector () Ġ= Ġpopular M anga Next Page Selector () čĊčĊĠĠĠ Ġoverride Ġfun Ġsearch 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 ") čĊĠĠĠĠĠĠĠ Ġm anga . title Ġ= Ġelement . select (" div . tt Ġh 4 "). text () čĊĠĠĠĠĠĠĠ Ġelement . select (" div . an imp osx Ġ> Ġa "). first (). let Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġm anga . set Url Without Domain ( it . attr (" href ")) čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġreturn Ġm anga čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġoverride Ġfun Ġsearch M anga Request ( page : ĠInt , Ġquery : ĠString , Ġfilters : ĠFilter List ): ĠRequest Ġ{ čĊĠĠĠĠĠĠĠ Ġval Ġbuilt Url Ġ= Ġif Ġ( page Ġ== Ġ 1 ) Ġ"$ baseUrl / da ftar - kom ik /" Ġelse Ġ"$ baseUrl / da ftar - kom ik / page /$ page /? order =" čĊĠĠĠĠĠĠĠ Ġval Ġurl Ġ= Ġbuilt Url . to Http Url OrNull () !!. newBuilder () čĊĠĠĠĠĠĠĠ Ġurl . add QueryParameter (" title ", Ġquery ) čĊĠĠĠĠĠĠĠ Ġurl . add QueryParameter (" page ", Ġpage . toString ()) čĊĠĠĠĠĠĠĠ Ġfilters . forEach Ġ{ Ġfilter Ġ-> čĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( filter ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠAuthor Filter Ġ-> Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġurl . add QueryParameter (" author ", Ġfilter . state ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠYear Filter Ġ-> Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġurl . add QueryParameter (" year x ", Ġfilter . state ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠStatus Filter Ġ-> Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstatus Ġ= Ġwhen Ġ( filter . state ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFilter . Tri State . STATE _ INCLUDE Ġ-> Ġ" completed " čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFilter . Tri State . STATE _ EXCL UDE Ġ-> Ġ" ongo ing " čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ"" čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġurl . add QueryParameter (" status ", Ġstatus ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠType Filter Ġ-> Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġurl . add QueryParameter (" type ", Ġfilter . to Uri Part ()) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠSort By Filter Ġ-> Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġurl . add QueryParameter (" order ", Ġfilter . to Uri Part ()) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠGen re List Filter Ġ-> Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfilter . state čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. filter Ġ{ Ġit . state Ġ!= ĠFilter . Tri State . STATE _ IGNORE Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. forEach Ġ{ Ġurl . add QueryParameter (" genre [] ", Ġit . id ) Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġreturn ĠGET ( url . build (). toString (), Ġheaders ) čĊĠĠĠ Ġ} čĊĠĠĠ Ġoverride Ġfun Ġm anga Details Parse ( document : ĠDocument ): ĠSM anga Ġ{ čĊĠĠĠĠĠĠĠ Ġval Ġinfo Element Ġ= Ġdocument . select (" div . info anime "). first () čĊĠĠĠĠĠĠĠ Ġval Ġdesc Element Ġ= Ġdocument . select (" div . desc Ġ> Ġ. entry - content . entry - content - single "). first () čĊĠĠĠĠĠĠĠ Ġval Ġsep Name Ġ= Ġinfo Element . select (". info x Ġ> Ġ. spe Ġ> Ġspan : nth - child ( 2 ) "). last () čĊĠĠĠĠĠĠĠ Ġval Ġm anga Ġ= ĠSM anga . create () čĊĠĠĠĠĠĠĠ Ġ// Ġneed Ġauthor Clean er Ġto Ġtake Ġ" peng arang :" Ġstring Ġto Ġremove Ġit Ġfrom Ġauthor čĊĠĠĠĠĠĠĠ Ġval Ġauthor Clean er Ġ= Ġdocument . select (". info x Ġ. spe Ġb : contains ( Peng arang ) "). text () čĊĠĠĠĠĠĠĠ Ġm anga . author Ġ= Ġdocument . select (". info x Ġ. spe Ġspan : contains ( Peng arang ) "). text (). substring After ( author Clean er ) čĊĠĠĠĠĠĠĠ Ġm anga . artist Ġ= Ġm anga . author čĊĠĠĠĠĠĠĠ Ġval Ġgen res Ġ= Ġmutable ListOf < String >() čĊĠĠĠĠĠĠĠ Ġinfo Element . select (". info x Ġ> Ġ. genre - info Ġ> Ġ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 (". info x Ġ> Ġ. spe Ġ> Ġspan : nth - child ( 1 ) "). text ()) čĊĠĠĠĠĠĠĠ Ġm anga . description Ġ= Ġdesc Element . select (" p "). text () čĊĠĠĠĠĠĠĠ Ġm anga . thumbnail _ url Ġ= Ġdocument . select (". thumb Ġ> Ġimg : nth - child ( 1 ) "). attr (" src ") čĊĠĠĠĠĠĠĠ Ġreturn Ġm anga čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġprivate Ġfun Ġparse Status ( element : ĠString ): ĠInt Ġ= Ġwhen Ġ{ čĊĠĠĠĠĠĠĠ Ġelement . toLowerCase (). contains (" ber j alan ") Ġ-> ĠSM anga . ONGO ING čĊĠĠĠĠĠĠĠ Ġelement . toLowerCase (). contains (" tam at ") Ġ-> ĠSM anga . COMPLETED čĊĠĠĠĠĠĠĠ Ġelse Ġ-> ĠSM anga . UNKNOWN čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġoverride Ġfun Ġchapter List Selector () Ġ= Ġ"# chapter _ list Ġli " čĊčĊĠĠĠ Ġoverride Ġfun Ġchapter From Element ( element : ĠElement ): ĠS Chapter Ġ{ čĊĠĠĠĠĠĠĠ Ġval Ġurl Element Ġ= Ġelement . select (". l ch x Ġa "). first () čĊĠĠĠĠĠĠĠ Ġval Ġchapter Ġ= ĠS Chapter . create () čĊĠĠĠĠĠĠĠ Ġchapter . set Url Without Domain ( url Element . attr (" href ")) čĊĠĠĠĠĠĠĠ Ġchapter . name Ġ= Ġurl Element . text () čĊĠĠĠĠĠĠĠ Ġchapter . date _ upload Ġ= Ġelement . select (". dt Ġa "). first ()?. text ()?. let Ġ{ Ġparse Chapter Date ( it ) Ġ} Ġ?: Ġ 0 čĊĠĠĠĠĠĠĠ Ġreturn Ġchapter čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġfun Ġparse Chapter Date ( date : ĠString ): ĠLong Ġ{ čĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( date . contains (" l alu ")) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġvalue Ġ= Ġdate . split (' Ġ' )[ 0 ]. toInt () čĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" det ik " Ġin Ġdate Ġ-> ĠCalendar . getInstance (). apply Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd ( Calendar . SECOND , Ġvalue Ġ* Ġ- 1 ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}. time In Millis čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" men it " Ġin Ġdate Ġ-> ĠCalendar . getInstance (). apply Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd ( Calendar . MINUTE , Ġvalue Ġ* Ġ- 1 ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}. time In Millis čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" jam " Ġin Ġdate Ġ-> ĠCalendar . getInstance (). apply Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd ( Calendar . HOUR _ OF _ DAY , Ġvalue Ġ* Ġ- 1 ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}. time In Millis čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" h ari " Ġin Ġdate Ġ-> ĠCalendar . getInstance (). apply Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd ( Calendar . DATE , Ġvalue Ġ* Ġ- 1 ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}. time In Millis čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" ming gu " Ġin Ġdate Ġ-> ĠCalendar . getInstance (). apply Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd ( Calendar . DATE , Ġvalue Ġ* Ġ 7 Ġ* Ġ- 1 ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}. time In Millis čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" bulan " Ġin Ġdate Ġ-> ĠCalendar . getInstance (). apply Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd ( Calendar . MONTH , Ġvalue Ġ* Ġ- 1 ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}. time In Millis čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" tahun " Ġin Ġdate Ġ-> ĠCalendar . getInstance (). apply Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd ( Calendar . YEAR , Ġvalue Ġ* Ġ- 1 ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}. time In Millis čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 L čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠdateFormat . parse ( date )?. time Ġ?: Ġ 0 čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ(_ : ĠException ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 L čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġoverride Ġfun Ġprepare New Chapter ( chapter : ĠS Chapter , Ġm anga : ĠSM anga ) Ġ{ čĊĠĠĠĠĠĠĠ Ġval Ġbasic Ġ= ĠRegex (""" Chapter \ s ([ 0 - 9 ]+) """) čĊĠĠĠĠĠĠĠ Ġwhen Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġbasic . contains Match In ( chapter . name ) Ġ-> Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbasic . find ( chapter . name )?. let Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchapter . chapter _ number Ġ= Ġit . groups [ 1 ]?. value !!. toFloat () čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġoverride Ġfun Ġpage List Parse ( document : ĠDocument ): ĠList < Page > Ġ{ čĊĠĠĠĠĠĠĠ Ġval Ġpages Ġ= Ġmutable ListOf < Page >() čĊĠĠĠĠĠĠĠ Ġvar Ġi Ġ= Ġ 0 čĊĠĠĠĠĠĠĠ Ġdocument . select (" div . img ch Ġimg "). forEach Ġ{ Ġelement Ġ-> čĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġurl Ġ= Ġelement . attr (" src ") čĊĠĠĠĠĠĠĠĠĠĠĠ Ġi ++ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( url . isNotEmpty ()) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpages . add ( Page ( i , Ġ"", Ġurl )) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġreturn Ġpages čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġoverride Ġfun ĠimageUrl Parse ( document : ĠDocument ): ĠString Ġ= Ġthrow ĠUnsupportedOperationException (" Not ĠUsed ") čĊčĊĠĠĠ Ġprivate Ġclass ĠAuthor Filter Ġ: ĠFilter . Text (" Author ") čĊčĊĠĠĠ Ġprivate Ġclass ĠYear Filter Ġ: ĠFilter . Text (" Year ") čĊčĊĠĠĠ Ġprivate Ġclass ĠType Filter Ġ: ĠUri Part Filter ( čĊĠĠĠĠĠĠĠ Ġ" Type ", čĊĠĠĠĠĠĠĠ ĠarrayOf ( čĊĠĠĠĠĠĠĠĠĠĠĠ ĠPair (" Default ", Ġ""), čĊĠĠĠĠĠĠĠĠĠĠĠ ĠPair (" M anga ", Ġ" M anga "), čĊĠĠĠĠĠĠĠĠĠĠĠ ĠPair (" Man hw a ", Ġ" Man hw a "), čĊĠĠĠĠĠĠĠĠĠĠĠ ĠPair (" Man h ua ", Ġ" Man h ua "), čĊĠĠĠĠĠĠĠĠĠĠĠ ĠPair (" Com ic ", Ġ" Com ic ") čĊĠĠĠĠĠĠĠ Ġ) čĊĠĠĠ Ġ) čĊčĊĠĠĠ Ġprivate Ġclass ĠSort By Filter Ġ: ĠUri Part Filter ( čĊĠĠĠĠĠĠĠ Ġ" Sort ĠBy ", čĊĠĠĠĠĠĠĠ ĠarrayOf ( čĊĠĠĠĠĠĠĠĠĠĠĠ ĠPair (" Default ", Ġ""), čĊĠĠĠĠĠĠĠĠĠĠĠ ĠPair (" A - Z ", Ġ" title "), čĊĠĠĠĠĠĠĠĠĠĠĠ ĠPair (" Z - A ", Ġ" tit l ere verse "), čĊĠĠĠĠĠĠĠĠĠĠĠ ĠPair (" Latest ĠUpdate ", Ġ" update "), čĊĠĠĠĠĠĠĠĠĠĠĠ ĠPair (" Latest ĠAdded ", Ġ" latest "), čĊĠĠĠĠĠĠĠĠĠĠĠ ĠPair (" Pop ular ", Ġ" popular ") čĊĠĠĠĠĠĠĠ Ġ) čĊĠĠĠ Ġ) čĊčĊĠĠĠ Ġprivate Ġclass ĠStatus Filter Ġ: ĠUri Part Filter ( čĊĠĠĠĠĠĠĠ Ġ" Status ", čĊĠĠĠĠĠĠĠ ĠarrayOf ( čĊĠĠĠĠĠĠĠĠĠĠĠ ĠPair (" All ", Ġ""), čĊĠĠĠĠĠĠĠĠĠĠĠ ĠPair (" O ngo ing ", Ġ" ongo ing "), čĊĠĠĠĠĠĠĠĠĠĠĠ ĠPair (" Completed ", Ġ" completed ") čĊĠĠĠĠĠĠĠ Ġ) čĊĠĠĠ Ġ) čĊčĊĠĠĠ Ġprivate Ġclass ĠGen re ( name : ĠString , Ġval Ġid : ĠString Ġ= Ġname ) Ġ: ĠFilter . Tri State ( name ) čĊĠĠĠ Ġprivate Ġclass ĠGen re List Filter ( genres : ĠList < Genre >) Ġ: ĠFilter . Group < Genre >(" Genre ", Ġgen res ) čĊčĊĠĠĠ Ġoverride Ġfun Ġget Filter List () Ġ= ĠFilter List ( čĊĠĠĠĠĠĠĠ ĠFilter . Header (" NOTE : ĠIgnore d Ġif Ġusing Ġtext Ġsearch ! "), čĊĠĠĠĠĠĠĠ ĠFilter . Separator (), čĊĠĠĠĠĠĠĠ ĠAuthor Filter (), čĊĠĠĠĠĠĠĠ ĠYear Filter (), čĊĠĠĠĠĠĠĠ ĠStatus Filter (), čĊĠĠĠĠĠĠĠ ĠType Filter (), čĊĠĠĠĠĠĠĠ ĠSort By Filter (), čĊĠĠĠĠĠĠĠ ĠGen re List Filter ( get Genre List ()) čĊĠĠĠ Ġ) čĊčĊĠĠĠ Ġprivate Ġfun Ġget Genre List () Ġ= ĠlistOf ( čĊĠĠĠĠĠĠĠ ĠGen re (" Action ", Ġ" action "), čĊĠĠĠĠĠĠĠ ĠGen re (" Adventure ", Ġ" ad venture "), čĊĠĠĠĠĠĠĠ ĠGen re (" Come dy ", Ġ" co med y "), čĊĠĠĠĠĠĠĠ ĠGen re (" Cri me ", Ġ" cri me "), čĊĠĠĠĠĠĠĠ ĠGen re (" D ram a ", Ġ" dr ama "), čĊĠĠĠĠĠĠĠ ĠGen re (" F antasy ", Ġ" f antasy "), čĊĠĠĠĠĠĠĠ ĠGen re (" G ir ls ĠLove ", Ġ" gir ls - love "), čĊĠĠĠĠĠĠĠ Ġ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 (" Mag ical ĠG ir ls ", Ġ" mag ical - gir ls "), čĊĠĠĠĠĠĠĠ ĠGen re (" Me cha ", Ġ" me cha "), čĊĠĠĠĠĠĠĠ ĠGen re (" Medical ", Ġ" medical "), čĊĠĠĠĠĠĠĠ ĠGen re (" Ph ilo sop h ical ", Ġ" phi lo sop h ical "), čĊĠĠĠĠĠĠĠ ĠGen re (" P sy cho logical ", Ġ" psy cho logical "), čĊĠĠĠĠĠĠĠ ĠGen re (" Rom ance ", Ġ" rom ance "), čĊĠĠĠĠĠĠĠ ĠGen re (" S ci - Fi ", Ġ" sci - fi "), čĊĠĠĠĠĠĠĠ ĠGen re (" Sh ou jo ĠA i ", Ġ" sh ou jo - ai "), čĊĠĠĠĠĠĠĠ ĠGen re (" Sh o unen ĠA i ", Ġ" sh o unen - ai "), čĊĠĠĠĠĠĠĠ ĠGen re (" Slice Ġof ĠLife ", Ġ" slice - of - life "), čĊĠĠĠĠĠĠĠ ĠGen re (" S ports ", Ġ" sport s "), čĊĠĠĠĠĠĠĠ ĠGen re (" Super hero ", Ġ" super hero "), čĊĠĠĠĠĠĠĠ ĠGen re (" Th r iller ", Ġ" thr iller "), čĊĠĠĠĠĠĠĠ ĠGen re (" Tr aged y ", Ġ" tr aged y "), čĊĠĠĠĠĠĠĠ ĠGen re (" W ux ia ", Ġ" w ux ia "), čĊĠĠĠĠĠĠĠ ĠGen re (" Y uri ", Ġ" y uri ") čĊĠĠĠ Ġ) čĊčĊĠĠĠ Ġprivate Ġopen Ġclass ĠUri Part Filter ( displayName : ĠString , Ġval Ġvals : ĠArray < Pair < String , ĠString >>) Ġ: čĊĠĠĠĠĠĠĠ ĠFilter . Select < String >( displayName , Ġvals . map Ġ{ Ġit . first Ġ}. to Typed Array ()) Ġ{ čĊĠĠĠĠĠĠĠ Ġfun Ġto Uri Part () Ġ= Ġvals [ state ]. second čĊĠĠĠ Ġ} č Ċ } čĊ