package Ġeu . kan ade . t ach iy omi . source . online . handlers Ċ Ċ import Ġcom . el vis he w . x log . X Log Ċ import Ġcom . sky do ves . sand wich . ApiResponse Ċ import Ġcom . sky do ves . sand wich . get OrThrow Ċ import Ġcom . sky do ves . sand wich . onError Ċ import Ġcom . sky do ves . sand wich . on Exception Ċ import Ġeu . kan ade . t ach iy omi . data . preference . Preferences Helper Ċ import Ġeu . kan ade . t ach iy omi . network . Network Helper Ċ 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 . online . handlers . external . B ilib ili Handler Ċ import Ġeu . kan ade . t ach iy omi . source . online . handlers . external . Com i key Handler Ċ import Ġeu . kan ade . t ach iy omi . source . online . handlers . external . M anga Plus Handler Ċ import Ġeu . kan ade . t ach iy omi . source . online . models . dto . At Home Dto Ċ import Ġeu . kan ade . t ach iy omi . source . online . utils . Md Util Ċ import Ġeu . kan ade . t ach iy omi . util . log Ċ import Ġeu . kan ade . t ach iy omi . util . throws Ċ import Ġkotlinx . coroutines . Dispatch ers Ċ import Ġkotlinx . coroutines . with Context Ċ import Ġu y . ko hes ive . in jekt . inject Lazy Ċ import Ġjava . util . Date Ċ Ċ class ĠPage Handler Ġ{ ĊĊĠĠĠ Ġval Ġnetwork : ĠNetwork Helper Ġby Ġinject Lazy () ĊĠĠĠ Ġval Ġpreferences : ĠPreferences Helper Ġby Ġinject Lazy () ĊĠĠĠ Ġval Ġm anga Plus Handler : ĠM anga Plus Handler Ġby Ġinject Lazy () ĊĠĠĠ Ġval Ġcom i key Handler : ĠCom i key Handler Ġby Ġinject Lazy () ĊĠĠĠ Ġval Ġbil ib ili Handler : ĠB ilib ili Handler Ġby Ġinject Lazy () ĊĠĠĠ Ġval Ġimage Handler : ĠImage Handler Ġby Ġinject Lazy () ĊĊĠĠĠ Ġsuspend Ġfun Ġfetch Page List ( chapter : ĠS Chapter ): ĠList < Page > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwith Context ( Dispatch ers . IO ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠX Log . d (" fetch ing Ġpage Ġlist ") ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġchapter Attributes Dto Ġ= Ġnetwork . service . view Chapter ( chapter . manga dex _ chapter _ id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. onError Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . log (" try ing Ġto Ġfetch Ġpage Ġlist ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠException (" error Ġreturned Ġfrom Ġchapter Response ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}. on Exception Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . log (" try ing Ġto Ġfetch Ġpage Ġlist ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠException (" error Ġreturned Ġfrom Ġchapter Response ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}. get OrThrow (). data . attributes ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġexternal Url Ġ= Ġchapter Attributes Dto . external Url ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcurrent Date Ġ= ĠSystem . currentTimeMillis () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġchapter Date Ġ= ĠMd Util . parse Date ( chapter Attributes Dto . publish At ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġchapter Date New er Ġ= Ġchapter Date Ġ- Ġcurrent Date Ġ> Ġ 0 ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( external Url Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" m ang ap lus ". equals ( chapter . scan lator , Ġtrue ) Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ with Context Ġm anga Plus Handler . fetch Page List ( external Url ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ/* " com i key ". equals ( chapter . scan lator , Ġtrue ) Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ with Context Ġcom i key Handler . fetch Page List ( external Url ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}*/ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" b ilib ili Ġcom ics ". equals ( chapter . scan lator , Ġtrue ) Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( chapter Date New er ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ with Context Ġbil ib ili Handler . fetch Page List ( external Url ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġthrow ĠException ("${ chapter . scan lator } Ġnot Ġsupported ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( chapter Date New er ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠException (" This Ġchapter Ġhas Ġno Ġpages , Ġit Ġmight Ġnot Ġbe Ġrelease Ġyet , Ġtry Ġrefresh ing ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġat Home Response Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnetwork . service . get At Home Server ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchapter . manga dex _ chapter _ id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpreferences . use Port 4 4 3 Only () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( at Home Response ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠApiResponse . Success Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠX Log . d (" successfully Ġgot Ġat Ġhome Ġhost ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠApiResponse . Failure . Error , Ġis ĠApiResponse . Failure . Exception < *> Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġat Home Response . log (" try ing Ġto Ġget Ġat Ġhome Ġresponse ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġat Home Response . throws (" error Ġgetting Ġimage ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġat Home Dto Ġ= Ġat Home Response . get OrThrow () ĊĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ with Context Ġpage List Parse ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchapter . manga dex _ chapter _ id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġat Home Dto , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpreferences . data Saver () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠX Log . e (" error Ġprocessing Ġpage Ġlist Ġ", Ġe ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow Ġ( e ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġpage List Parse ( ĊĠĠĠĠĠĠĠ Ġchapter Id : ĠString , ĊĠĠĠĠĠĠĠ Ġat Home Dto : ĠAt Home Dto , ĊĠĠĠĠĠĠĠ Ġdata Saver : ĠBoolean , ĊĠĠĠ Ġ): ĠList < Page > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġhash Ġ= Ġat Home Dto . chapter . hash ĊĠĠĠĠĠĠĠ Ġval Ġpage Array Ġ= Ġif Ġ( data Saver ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġat Home Dto . chapter . data Saver . map Ġ{ Ġ"/ data - sa ver /$ hash /$ it " Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġat Home Dto . chapter . data . map Ġ{ Ġ"/ data /$ hash /$ it " Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġnow Ġ= ĠDate (). time ĊĊĠĠĠĠĠĠĠ Ġval Ġpages Ġ= Ġpage Array . map Indexed Ġ{ Ġpos , Ġimg Url Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPage ( pos Ġ+ Ġ 1 , Ġat Home Dto . baseUrl , Ġimg Url , Ġchapter Id ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġimage Handler . update Token Tracker ( chapter Id , Ġnow ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġpages ĊĠĠĠ Ġ} Ċ } Ċ