package Ġcom . cz b ix . v 2 ex . network Ċ Ċ import Ġcom . cz b ix . v 2 ex . db . Comment Ċ import Ġcom . cz b ix . v 2 ex . model .* Ċ import Ġcom . cz b ix . v 2 ex . parser . Parser Ċ import Ġcom . cz b ix . v 2 ex . parser . Topic Parser Ċ import Ġcom . cz b ix . v 2 ex . util . Tracker Utils Ċ import Ġcom . google . common . base . Stop watch Ċ import Ġokhttp 3 . Form Body Ċ import Ġokhttp 3 . internal . EMPTY _ REQUEST Ċ import Ġtim ber . log . Tim ber Ċ import Ġjava . util . concurrent . TimeUnit Ċ import Ġjavax . inject . Inject Ċ import Ġkotlin . system . measure Time Millis Ċ Ċ class ĠV 2 ex Service Ġ@ Inject Ġconstructor ( ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġhelper : ĠRequest Helper Ċ ) Ġ{ ĊĊĠĠĠ Ġsuspend Ġfun Ġget Topic ( topic : ĠTopic , Ġpage : ĠInt ): ĠTopic Response Ġ{ ĊĠĠĠĠĠĠĠ Ġrequire ( page Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Page Ġmust Ġgreater Ġthan Ġzero " ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠTim ber . d (" Request Ġtopic Ġwith Ġcomments , Ġtopic : Ġ% s , Ġpage : Ġ% d ", Ġtopic , Ġpage ) ĊĊĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= Ġhelper . new Request ( use Mobile Ġ= Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. url ( topic . url Ġ+ Ġ"? p =" Ġ+ Ġpage ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠĠĠĠĠ Ġval Ġhtml Ġ= Ġhelper . send Request Suspend ( request ) Ġ{ Ġresponse Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcheck (! response . is Redirect ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Topic Ġpage Ġshouldn 't Ġredirect " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresponse . body !!. string () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġdoc Ġ= ĠParser . to Doc ( html ) ĊĠĠĠĠĠĠĠ Ġhelper . process User State ( doc , ĠParser . Page Type . Topic ) ĊĊĠĠĠĠĠĠĠ Ġlateinit Ġvar Ġresult : ĠTopic Response ĊĠĠĠĠĠĠĠ Ġval Ġmeasure Time Ġ= Ġmeasure Time Millis Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresult Ġ= ĠTopic Parser . parse Doc ( doc , Ġtopic , Ġpage ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠTracker Utils . on Parse Topic ( measure Time , Ġresult . comments . size ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġresult ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġsuspend Ġfun Ġpost Comment ( topic : ĠTopic , Ġcontent : ĠString , Ġonce Token : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ ĠTim ber . d (" Post Ġcomment Ġto Ġtopic : Ġ% s ", Ġtopic ) Ċ Ċ // ĠĠĠĠĠĠĠ Ġ@ Suppress (" NAME _ SH ADO WING ") Ċ // ĠĠĠĠĠĠĠ Ġval Ġonce Token Ġ= Ġonce Token Ġ?: Ġhelper . get Once Token (). await () ĊĊĠĠĠĠĠĠĠ Ġval Ġrequest Body Ġ= ĠForm Body . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add (" once ", Ġonce Token ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add (" content ", Ġcontent . replace ("\ n ", Ġ"\ r \ n ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= ĠRequest Helper . new Request ( use Mobile Ġ= Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. url ( topic . url ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. post ( request Body ). build () ĊĊĠĠĠĠĠĠĠ Ġhelper . send Request Suspend ( request , Ġfalse ) Ġ{ Ġresponse Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġv 2 ex Ġwill Ġredirect Ġif Ġreply Ġsuccess ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcheck ( response . is Redirect ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġsuspend Ġfun Ġfavor ( fav able : ĠF av able , Ġbool : ĠBoolean , Ġcsrf Token : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ ĠTim ber . d (" Favorite Ġ% s , Ġbool : Ġ% s ", Ġfav able , Ġbool ) ĊĊĠĠĠĠĠĠĠ Ġval Ġurl Ġ= Ġif Ġ( bool ) Ġfav able . getF av Url ( csrf Token ) Ġelse Ġfav able . getUn Fav Url ( csrf Token ) ĊĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= ĠRequest Helper . new Request (). url ( url ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠĠĠĠĠ Ġhelper . send Request Suspend ( request , Ġfalse ) Ġ{ Ġresponse Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcheck ( response . is Redirect ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġsuspend Ġfun Ġthank ( obj : ĠThank able , Ġonce Token : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ ĠTim ber . d (" Thank Ġ% s ", Ġobj ) ĊĊĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= ĠRequest Helper . new Request (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġurl ( obj . th ank Url Ġ+ Ġ"? once =" Ġ+ Ġonce Token ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpost ( EMPTY _ REQUEST ) ĊĠĠĠĠĠĠĠ Ġ}. build () ĊĊĠĠĠĠĠĠĠ Ġhelper . send Request Suspend ( request ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġsuspend Ġfun Ġignore ( obj : ĠIgn orable , Ġonce Token : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ ĠTim ber . d (" Ignore Ġ% s ", Ġobj ) ĊĊĠĠĠĠĠĠĠ Ġval Ġbuilder Ġ= ĠRequest Helper . new Request (). url ( obj . ignore Url Ġ+ Ġ"? once =" Ġ+ Ġonce Token ) ĊĠĠĠĠĠĠĠ Ġval Ġis Comment Ġ= Ġobj Ġis ĠComment ĊĠĠĠĠĠĠĠ Ġif Ġ( is Comment ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder . post ( EMPTY _ REQUEST ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= Ġbuilder . build () ĊĊĠĠĠĠĠĠĠ Ġhelper . send Request Suspend ( request , Ġis Comment ) Ġ{} ĊĠĠĠ Ġ} Ċ }