package Ġtop . ease link . lc g . ui . main . source Ċ Ċ import Ġandroidx . annotation . Worker Thread Ċ import Ġorg . green robot . event bus . EventBus Ċ import Ġorg . js oup . J soup Ċ import Ġorg . js oup . nodes . Document Ċ import Ġorg . js oup . nodes . Element Ċ import Ġtim ber . log . Tim ber Ċ import Ġtop . ease link . lc g . R Ċ import Ġtop . ease link . lc g . app init . LC G App Ċ import Ġtop . ease link . lc g . account . UserInfo Ċ import Ġtop . ease link . lc g . ui . main . model . Anti Sc rap ing Exception Ċ import Ġtop . ease link . lc g . ui . main . model . New Message Event Ċ import Ġtop . ease link . lc g . ui . main . model . Notification Info Ċ import Ġtop . ease link . lc g . ui . profile . model . Extra UserInfo Ċ import Ġtop . ease link . lc g . utils . showMessage Ċ Ċ @ Worker Thread Ċ fun Ġparse Extra UserInfo Profile Page ( content : ĠString ): ĠList < Extra UserInfo > Ġ{ ĊĠĠĠ Ġreturn ĠJ soup . parse ( content ). let Ġ{ ĊĠĠĠĠĠĠĠ Ġit . getElementsBy Tag (" dt "). zip ( it . getElementsBy Tag (" dd ")). map Ġ{ Ġpairs Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠExtra UserInfo ( pairs . first . text (), Ġpairs . second . text ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ Worker Thread Ċ @ Throws ( NullPointerException :: class , ĠAnt i Sc rap ing Exception :: class ) Ċ fun Ġparse UserInfo ( doc : ĠDocument ): ĠUserInfo Ġ{ ĊĠĠĠ Ġwith ( doc ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠuserName Ġ= Ġdoc . select First (" h 2 . mt ") ?. text () ĊĠĠĠĠĠĠĠ Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠuserName . isNull OrEmpty () Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmessage Ġ= Ġget Element ById (" mess a get ext ") ?. text () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( message . isNull OrEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠAnt i Sc rap ing Exception () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Message ( message ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠUserInfo . getDefault UserInfo () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠuserName Ġ== ĠL CG App . context . getString ( R . string . login _ or _ register ) Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠUserInfo . getDefault UserInfo () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġavatar Ġ= Ġselect First (" div . av t Ġ> Ġa Ġ> Ġimg ") ?. attr (" src ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġgroup Info Ġ= Ġget Element ById (" g _ up mine ") ?. text () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġinfo List Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget Element ById (" p sts "). select First (" ul . pf _ l "). getElementsBy Tag (" li "). also Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . forEach Ġ{ Ġil Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġil . select First (" em "). append Text (" Ġ: Ġ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsign In State Ġ= Ġselect (" img . qq _ bind ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ? . first OrNull Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ!( it . attr (" src ") ?. contains (" qq ") Ġ?: Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ? . attr (" src ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠUserInfo ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠuserName Ġ= ĠuserName , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġavatar Url Ġ= Ġavatar , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgroup Info Ġ= Ġgroup Info , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġw u ai Coin Ġ= Ġinfo List [ 3 ]. text (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcredit Ġ= Ġinfo List [ 1 ]. text (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġanswer Rate Ġ= Ġinfo List [ 6 ]. text (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġent hus i astic Value Ġ= Ġinfo List [ 7 ]. text (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsign In State Url Ġ= Ġsign In State ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ Worker Thread Ċ fun Ġcheck Messages ( doc : ĠDocument ) Ġ{ ĊĠĠĠ Ġval Ġnotification Info Ġ= Ġparse Notification Info ( doc ) ĊĠĠĠ Ġif Ġ( notification Info . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠ ĠEvent Bus . getDefault (). post ( New Message Event ( notification Info )) ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ Worker Thread Ċ fun Ġextract Form Hash ( doc : ĠDocument ): ĠString ? Ġ{ ĊĠĠĠ Ġreturn Ġdoc . select First (" input [ name = form hash ]") ?. attr (" value ") Ċ } Ċ Ċ @ Worker Thread Ċ fun Ġparse Notification Info ( doc : ĠDocument ): ĠNotification Info Ġ{ ĊĠĠĠ Ġwith ( doc ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmenu : ĠElement ? Ġ= Ġget Element ById (" my prompt _ menu ") ĊĠĠĠĠĠĠĠ Ġval Ġrequest List Ġ= Ġmutable ListOf < String >() ĊĠĠĠĠĠĠĠ Ġvar Ġmessage Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġvar Ġfollow er Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġvar Ġmy Post Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġvar Ġsystem Not ifs Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġmenu ?. select (" li ") ?. forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . select (" a Ġ> Ġspan "). first ()?. text ()?. also Ġ{ Ġv Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTim ber . d ( it . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( v . isNotBlank () Ġ&& Ġv . toInt () Ġ>= Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . select First (" a ") ?. attr (" href ") ?. also Ġ{ Ġurl Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequest List . add ( url ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġurl . contains (" my post ") Ġ-> Ġmy Post ++ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġurl . contains (" follow er ") Ġ-> Ġfollow er ++ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġurl . contains (" pm ") Ġ-> Ġmessage ++ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġurl . contains (" system ") Ġ-> Ġsystem Not ifs ++ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġdo Ġnothing ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠNumber FormatException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġdon 't Ġcare ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn ĠNotification Info ( message , Ġfollow er , Ġmy Post , Ġsystem Not ifs ) ĊĠĠĠ Ġ} Ċ }