package Ġeu . kan ade . t ach iy omi . extension . en . bil ibil ic omics Ċ Ċ import Ġeu . kan ade . t ach iy omi . annotations . N sf w Ċ import Ġeu . kan ade . t ach iy omi . lib . rate limit . RateLimit Interceptor Ċ import Ġeu . kan ade . t ach iy omi . network . POST Ċ import Ġeu . kan ade . t ach iy omi . network . as Observable Success Ċ 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 . Http Source Ċ import Ġkotlinx . serialization . decode FromString Ċ import Ġkotlinx . serialization . json . Json Ċ import Ġkotlinx . serialization . json . add Ċ import Ġkotlinx . serialization . json . build JsonArray Ċ import Ġkotlinx . serialization . json . build JsonObject Ċ import Ġkotlinx . serialization . json . put Ċ import Ġokhttp 3 . Headers Ċ import Ġokhttp 3 . Http Url . Companion . to Http Url Ċ import Ġokhttp 3 . MediaType . Companion . to MediaType Ċ import Ġokhttp 3 . Ok HttpClient Ċ import Ġokhttp 3 . Request Ċ import Ġokhttp 3 . RequestBody . Companion . to RequestBody Ċ import Ġokhttp 3 . Response Ċ import Ġorg . js oup . J soup Ċ import Ġrx . Observable Ċ import Ġu y . ko hes ive . in jekt . inject Lazy Ċ import Ġjava . text . ParseException Ċ import Ġjava . text . SimpleDateFormat Ċ import Ġjava . util . Locale Ċ import Ġjava . util . concurrent . TimeUnit Ċ Ċ @ N sf w Ċ class ĠB ilib ili Com ics Ġ: ĠHttp Source () Ġ{ ĊĊĠĠĠ Ġoverride Ġval Ġname Ġ= Ġ" B IL IB ILI ĠCOM ICS " ĊĊĠĠĠ Ġoverride Ġval ĠbaseUrl Ġ= Ġ" https :// www . bil ibil ic omics . com " ĊĊĠĠĠ Ġoverride Ġval Ġlang Ġ= Ġ" en " ĊĊĠĠĠ Ġoverride Ġval Ġsupports Latest Ġ= Ġfalse ĊĊĠĠĠ Ġoverride Ġval Ġclient : ĠOk HttpClient Ġ= Ġnetwork . cloudflare Client . newBuilder () ĊĠĠĠĠĠĠĠ Ġ. add Interceptor ( RateLimit Interceptor ( 1 , Ġ 1 , ĠTimeUnit . SECONDS )) ĊĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠ Ġoverride Ġfun Ġheaders Builder (): ĠHeaders . Builder Ġ= ĠHeaders . Builder () ĊĠĠĠĠĠĠĠ Ġ. add (" Accept ", ĠAC CEPT _ JSON ) ĊĠĠĠĠĠĠĠ Ġ. add (" Origin ", ĠbaseUrl ) ĊĠĠĠĠĠĠĠ Ġ. add (" Refer er ", Ġ"$ baseUrl /") ĊĊĠĠĠ Ġprivate Ġval Ġjson : ĠJson Ġby Ġinject Lazy () ĊĊĠĠĠ Ġoverride Ġfun Ġpopular M anga Request ( page : ĠInt ): ĠRequest Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrequest Payload Ġ= Ġbuild JsonObject Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput (" id ", ĠFEATURE D _ ID ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput (" is All ", Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput (" page _ num ", Ġ 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput (" page _ size ", Ġ 6 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġrequest Body Ġ= Ġrequest Payload . toString (). to RequestBody ( JSON _ MEDIA _ TYPE ) ĊĊĠĠĠĠĠĠĠ Ġval Ġnew Headers Ġ= Ġheaders Builder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add (" Content - Length ", Ġrequest Body . content Length (). toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add (" Content - Type ", Ġrequest Body . contentType (). toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠĠĠĠĠ Ġreturn ĠPOST ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"$ baseUrl /$ BASE _ API _ ENDPOINT / GetClass Page Six Com ics ? device = pc & platform = web ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġheaders Ġ= Ġnew Headers , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbody Ġ= Ġrequest Body ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġpopular M anga Parse ( response : ĠResponse ): ĠM ang as Page Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġjson . decode FromString < B ilib ili Result Dto < B ilib ili Feature d Dto >>( response . body !!. string ()) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( result . code Ġ!= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠM ang as Page ( emptyList (), Ġhas Next Page Ġ= Ġfalse ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġcom ic List Ġ= Ġresult . data !!. roll Six Com ics ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. map (:: popular M anga From Object ) ĊĊĠĠĠĠĠĠĠ Ġreturn ĠM ang as Page ( com ic List , Ġhas Next Page Ġ= Ġfalse ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġpopular M anga From Object ( com ic : ĠB ilib ili Com ic Dto ): ĠSM anga Ġ= ĠSM anga . create (). apply Ġ{ ĊĠĠĠĠĠĠĠ Ġtitle Ġ= Ġcom ic . title ĊĠĠĠĠĠĠĠ Ġthumbnail _ url Ġ= Ġcom ic . vertical Cover ĊĠĠĠĠĠĠĠ Ġurl Ġ= Ġ"/ detail / mc ${ com ic . com ic Id }" ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġsearch M anga Request ( page : ĠInt , Ġquery : ĠString , Ġfilters : ĠFilter List ): ĠRequest Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġjson Payload Ġ= Ġbuild JsonObject Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput (" area _ id ", Ġ- 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput (" is _ finish ", Ġ- 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput (" is _ free ", Ġ 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput (" key _ word ", Ġquery ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput (" order ", Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput (" page _ num ", Ġpage ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput (" page _ size ", Ġ 9 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput (" style _ id ", Ġ- 1 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġrequest Body Ġ= Ġjson Payload . toString (). to RequestBody ( JSON _ MEDIA _ TYPE ) ĊĊĠĠĠĠĠĠĠ Ġval Ġrefer er Url Ġ= Ġ"$ baseUrl / search ". to Http Url (). newBuilder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add QueryParameter (" keyword ", Ġquery ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. toString () ĊĠĠĠĠĠĠĠ Ġval Ġnew Headers Ġ= Ġheaders Builder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add (" Content - Length ", Ġrequest Body . content Length (). toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add (" Content - Type ", Ġrequest Body . contentType (). toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add (" X - Page ", Ġpage . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set (" Refer er ", Ġrefer er Url ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠĠĠĠĠ Ġreturn ĠPOST ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"$ baseUrl /$ BASE _ API _ ENDPOINT / Search ? device = pc & platform = web ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġheaders Ġ= Ġnew Headers , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbody Ġ= Ġrequest Body ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġsearch M anga Parse ( response : ĠResponse ): ĠM ang as Page Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġjson . decode FromString < B ilib ili Result Dto < B ilib ili Search Dto >>( response . body !!. string ()) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( result . code Ġ!= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠM ang as Page ( emptyList (), Ġhas Next Page Ġ= Ġfalse ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġcom ic List Ġ= Ġresult . data !!. list ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. map (:: search M anga From Object ) ĊĊĠĠĠĠĠĠĠ Ġreturn ĠM ang as Page ( com ic List , Ġhas Next Page Ġ= Ġfalse ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsearch M anga From Object ( com ic : ĠB ilib ili Com ic Dto ): ĠSM anga Ġ= ĠSM anga . create (). apply Ġ{ ĊĠĠĠĠĠĠĠ Ġtitle Ġ= ĠJ soup . parse ( com ic . title ). text () ĊĠĠĠĠĠĠĠ Ġthumbnail _ url Ġ= Ġcom ic . vertical Cover ĊĠĠĠĠĠĠĠ Ġurl Ġ= Ġ"/ detail / mc ${ com ic . id }" ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// ĠWork around Ġto Ġallow Ġ" Open Ġin Ġbrowser " Ġuse Ġthe Ġreal ĠURL . ĊĠĠĠ Ġoverride Ġfun Ġfetch M anga Details ( manga : ĠSM anga ): ĠObservable < SM anga > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġclient . new Call ( manga Details ApiRequest ( manga )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. as Observable Success () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġresponse Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm anga Details Parse ( response ). apply Ġ{ Ġinitialized Ġ= Ġtrue Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġm anga Details ApiRequest ( manga : ĠSM anga ): ĠRequest Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcom ic Id Ġ= Ġm anga . url . substring After Last ("/ mc "). toInt () ĊĊĠĠĠĠĠĠĠ Ġval Ġjson Payload Ġ= Ġbuild JsonObject Ġ{ Ġput (" com ic _ id ", Ġcom ic Id ) Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġrequest Body Ġ= Ġjson Payload . toString (). to RequestBody ( JSON _ MEDIA _ TYPE ) ĊĊĠĠĠĠĠĠĠ Ġval Ġnew Headers Ġ= Ġheaders Builder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add (" Content - Length ", Ġrequest Body . content Length (). toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add (" Content - Type ", Ġrequest Body . contentType (). toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set (" Refer er ", ĠbaseUrl Ġ+ Ġm anga . url ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠĠĠĠĠ Ġreturn ĠPOST ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"$ baseUrl /$ BASE _ API _ ENDPOINT / Com ic Detail ? device = pc & platform = web ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġheaders Ġ= Ġnew Headers , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbody Ġ= Ġrequest Body ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġm anga Details Parse ( response : ĠResponse ): ĠSM anga Ġ= ĠSM anga . create (). apply Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġjson . decode FromString < B ilib ili Result Dto < B ilib ili Com ic Dto >>( response . body !!. string ()) ĊĠĠĠĠĠĠĠ Ġval Ġcom ic Ġ= Ġresult . data !! ĊĊĠĠĠĠĠĠĠ Ġtitle Ġ= Ġcom ic . title ĊĠĠĠĠĠĠĠ Ġauthor Ġ= Ġcom ic . author Name . join ToString () ĊĠĠĠĠĠĠĠ Ġstatus Ġ= Ġif Ġ( com ic . is Finish Ġ== Ġ 1 ) ĠSM anga . COMPLETED Ġelse ĠSM anga . ONGO ING ĊĠĠĠĠĠĠĠ Ġgenre Ġ= Ġcom ic . styles . join ToString () ĊĠĠĠĠĠĠĠ Ġdescription Ġ= Ġcom ic . classic Lines ĊĠĠĠĠĠĠĠ Ġthumbnail _ url Ġ= Ġcom ic . vertical Cover ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// ĠChapter s Ġare Ġavailable Ġin Ġthe Ġsame Ġurl Ġof Ġthe Ġm anga Ġdetails . ĊĠĠĠ Ġoverride Ġfun Ġchapter List Request ( manga : ĠSM anga ): ĠRequest Ġ= Ġm anga Details ApiRequest ( manga ) ĊĊĠĠĠ Ġoverride Ġfun Ġchapter List Parse ( response : ĠResponse ): ĠList < S Chapter > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġjson . decode FromString < B ilib ili Result Dto < B ilib ili Com ic Dto >>( response . body !!. string ()) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( result . code Ġ!= Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġempty List () ĊĊĠĠĠĠĠĠĠ Ġreturn Ġresult . data !!. episode List ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. filter Ġ{ Ġepisode Ġ-> Ġepisode . is Locked . not () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġep Ġ-> Ġchapter From Object ( ep , Ġresult . data . id ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġchapter From Object ( episode : ĠB ilib ili Episode Dto , Ġcom ic Id : ĠInt ): ĠS Chapter Ġ= ĠS Chapter . create (). apply Ġ{ ĊĠĠĠĠĠĠĠ Ġname Ġ= Ġ" Ep . Ġ" Ġ+ Ġepisode . order . toString (). remove Suffix (". 0 ") Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Ġ- Ġ" Ġ+ Ġepisode . title ĊĠĠĠĠĠĠĠ Ġchapter _ number Ġ= Ġepisode . order ĊĠĠĠĠĠĠĠ Ġscan lator Ġ= Ġthis @ B ilib ili Com ics . name ĊĠĠĠĠĠĠĠ Ġdate _ upload Ġ= Ġepisode . publication Time . substring Before (" T "). toDate () ĊĠĠĠĠĠĠĠ Ġurl Ġ= Ġ"/ mc $ com ic Id /${ episode . id }" ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġpage List Request ( chapter : ĠS Chapter ): ĠRequest Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġchapter Id Ġ= Ġchapter . url . substring After Last ("/ "). toInt () ĊĊĠĠĠĠĠĠĠ Ġval Ġjson Payload Ġ= Ġbuild JsonObject Ġ{ Ġput (" ep _ id ", Ġchapter Id ) Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġrequest Body Ġ= Ġjson Payload . toString (). to RequestBody ( JSON _ MEDIA _ TYPE ) ĊĊĠĠĠĠĠĠĠ Ġval Ġnew Headers Ġ= Ġheaders Builder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add (" Content - Length ", Ġrequest Body . content Length (). toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add (" Content - Type ", Ġrequest Body . contentType (). toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set (" Refer er ", ĠbaseUrl Ġ+ Ġchapter . url ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠĠĠĠĠ Ġreturn ĠPOST ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"$ baseUrl /$ BASE _ API _ ENDPOINT / Get Image Index ? device = pc & platform = web ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġheaders Ġ= Ġnew Headers , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbody Ġ= Ġrequest Body ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġpage List Parse ( response : ĠResponse ): ĠList < Page > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġjson . decode FromString < B ilib ili Result Dto < B ilib ili Reader >>( response . body !!. string ()) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( result . code Ġ!= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġempty List () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġresult . data !!. images ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Indexed Ġ{ Ġi , Ġpage Ġ-> ĠPage ( i , Ġpage . path , Ġ"") Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠimageUrl Request ( page : ĠPage ): ĠRequest Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġjson Payload Ġ= Ġbuild JsonObject Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput (" urls ", Ġbuild JsonArray Ġ{ Ġadd ( page . url ) Ġ}. toString ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġrequest Body Ġ= Ġjson Payload . toString (). to RequestBody ( JSON _ MEDIA _ TYPE ) ĊĊĠĠĠĠĠĠĠ Ġval Ġnew Headers Ġ= Ġheaders Builder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add (" Content - Length ", Ġrequest Body . content Length (). toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add (" Content - Type ", Ġrequest Body . contentType (). toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠĠĠĠĠ Ġreturn ĠPOST ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"$ baseUrl /$ BASE _ API _ ENDPOINT / Image Token ? device = pc & platform = web ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġheaders Ġ= Ġnew Headers , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbody Ġ= Ġrequest Body ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠimageUrl Parse ( response : ĠResponse ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġjson . decode FromString < B ilib ili Result Dto < List < B ilib ili Page Dto >> >( response . body !!. string ()) ĊĠĠĠĠĠĠĠ Ġval Ġpage Ġ= Ġresult . data ! ![ 0 ] ĊĊĠĠĠĠĠĠĠ Ġreturn Ġ"${ page . url }? token =${ page . token }" ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġlatest Updates Request ( page : ĠInt ): ĠRequest Ġ= Ġthrow ĠUnsupportedOperationException (" Not Ġused ") ĊĊĠĠĠ Ġoverride Ġfun Ġlatest Updates Parse ( response : ĠResponse ): ĠM ang as Page Ġ= Ġthrow ĠUnsupportedOperationException (" Not Ġused ") ĊĊĠĠĠ Ġprivate Ġfun ĠString . toDate (): ĠLong Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDATE _ FORMAT TER . parse ( this )?. time Ġ?: Ġ 0 L ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠParseException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 L ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠBASE _ API _ ENDPOINT Ġ= Ġ" tw ir p / com ic . v 1 . Com ic " ĊĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠAC CEPT _ JSON Ġ= Ġ" application / json , Ġtext / plain , Ġ*/ *" ĊĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠJSON _ MEDIA _ TYPE Ġ= Ġ" application / json ; charset = UTF - 8 ". to MediaType () ĊĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠFEATURE D _ ID Ġ= Ġ 3 ĊĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠDATE _ FORMAT TER Ġby Ġlazy Ġ{ ĠSimpleDateFormat (" yyyy - MM - dd ", ĠLocale . EN GL ISH ) Ġ} ĊĠĠĠ Ġ} Ċ } Ċ