package Ġeu . kan ade . t ach iy omi . data . track . kom ga Ċ Ċ import Ġeu . kan ade . t ach iy omi . data . database . models . Track Ċ import Ġeu . kan ade . t ach iy omi . data . track . Track Manager Ċ import Ġeu . kan ade . t ach iy omi . data . track . model . Track Search Ċ import Ġeu . kan ade . t ach iy omi . network . GET Ċ import Ġeu . kan ade . t ach iy omi . network . await Ċ import Ġeu . kan ade . t ach iy omi . network . parse As Ċ import Ġeu . kan ade . t ach iy omi . util . lang . with IO Context Ċ import Ġkotlinx . serialization . encode ToString Ċ import Ġkotlinx . serialization . json . Json Ċ import Ġokhttp 3 . MediaType . Companion . to MediaType Ċ import Ġokhttp 3 . Ok HttpClient Ċ import Ġokhttp 3 . Request Ċ import Ġokhttp 3 . RequestBody . Companion . to RequestBody Ċ import Ġtim ber . log . Tim ber Ċ import Ġu y . ko hes ive . in jekt . inject Lazy Ċ Ċ const Ġval ĠREAD LIST _ API Ġ= Ġ"/ api / v 1 / read lists " Ċ Ċ class ĠKom ga Api ( private Ġval Ġclient : ĠOk HttpClient ) Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġjson : ĠJson Ġby Ġinject Lazy () ĊĊĠĠĠ Ġsuspend Ġfun Ġget Track Search ( url : ĠString ): ĠTrack Search Ġ= ĊĠĠĠĠĠĠĠ Ġwith IO Context Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtrack Ġ= Ġif Ġ( url . contains ( READ LIST _ API )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclient . new Call ( GET ( url )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. await () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. parse As < Read List Dto >() ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. to Track () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclient . new Call ( GET ( url )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. await () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. parse As < Series Dto >() ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. to Track () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġprogress Ġ= Ġclient ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. new Call ( GET ("${ url . replace ("/ api / v 1 / series /", Ġ"/ api / v 2 / series /") }/ read - progress / t ach iy omi ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. await (). let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( url . contains ("/ api / v 1 / series / ")) Ġit . parse As < Read Progress V 2 Dto >() ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġit . parse As < Read Progress Dto >(). to V 2 () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrack . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcover _ url Ġ= Ġ"$ url / thumbnail " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtracking _ url Ġ= Ġurl ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtotal _ chapter s Ġ= Ġprogress . books Count ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstatus Ġ= Ġwhen Ġ( progress . books Count ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprogress . books Un read Count Ġ-> ĠKom ga . UN READ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprogress . books Read Count Ġ-> ĠKom ga . COMPLETED ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĠKom ga . READ ING ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlast _ chapter _ read Ġ= Ġprogress . last Read Continuous Number Sort ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTim ber . w ( e , Ġ" Could Ġnot Ġget Ġitem : Ġ$ url ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow Ġe ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġsuspend Ġfun Ġupdate Progress ( track : ĠTrack ): ĠTrack Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġpayload Ġ= Ġif Ġ( track . tracking _ url . contains ("/ api / v 1 / series / ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġjson . encode ToString ( Read Progress Update V 2 Dto ( track . last _ chapter _ read )) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġjson . encode ToString ( Read Progress Update Dto ( track . last _ chapter _ read . toInt ())) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġclient . new Call ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠRequest . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. url ("${ track . tracking _ url . replace ("/ api / v 1 / series /", Ġ"/ api / v 2 / series /") }/ read - progress / t ach iy omi ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. put ( payload . to RequestBody (" application / json ". to MediaType ())) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. await () ĊĠĠĠĠĠĠĠ Ġreturn Ġget Track Search ( track . tracking _ url ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠSeries Dto . to Track (): ĠTrack Search Ġ= ĠTrack Search . create ( Track Manager . K OM GA ). also Ġ{ ĊĠĠĠĠĠĠĠ Ġit . title Ġ= Ġmetadata . title ĊĠĠĠĠĠĠĠ Ġit . summary Ġ= Ġmetadata . summary ĊĠĠĠĠĠĠĠ Ġit . publishing _ status Ġ= Ġmetadata . status ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠRead List Dto . to Track (): ĠTrack Search Ġ= ĠTrack Search . create ( Track Manager . K OM GA ). also Ġ{ ĊĠĠĠĠĠĠĠ Ġit . title Ġ= Ġname ĊĠĠĠ Ġ} Ċ } Ċ