/* Ċ Ġ* ĠCopyright Ġ 2 0 1 5 - 2 0 1 9 ĠThe Ġtw it lat te Ġauthors Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġcom . github . mo ko 2 5 6 . lat te . client . twitter Ċ Ċ import Ġcom . github . mo ko 2 5 6 . lat te . client . base . ApiClient Ċ import Ġcom . github . mo ko 2 5 6 . lat te . client . base . Status Counter Ċ import Ġcom . github . mo ko 2 5 6 . lat te . client . base . entity .* Ċ import Ġtwitter 4 j . Geo Location Ċ import Ġtwitter 4 j . Status Update Ċ import Ġtwitter 4 j . conf . Configuration Builder Ċ import Ġtwitter 4 j . create Twitter Instance Ċ import Ġjava . io . InputStream Ċ Ċ /** Ċ Ġ* ĠCreated Ġby Ġm oko 2 5 6 Ġon Ġ 2 0 1 8 / 1 1 / 3 0 . Ċ Ġ* Ċ Ġ* Ġ@ author Ġm oko 2 5 6 Ċ Ġ*/ Ċ const Ġval ĠCLIENT _ TYPE _ TW IT TER Ġ= Ġ 0 Ċ Ċ class ĠTwitter ApiClient Impl ( ĊĠĠĠĠĠĠĠ Ġconsumer Key : ĠString , ĊĠĠĠĠĠĠĠ Ġconsumer Secret : ĠString , ĊĠĠĠĠĠĠĠ Ġtoken : ĠString , ĊĠĠĠĠĠĠĠ Ġtoken Secret : ĠString ? Ċ ) Ġ: ĠApi Client Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġclient Ġ= ĠConfiguration Builder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Tweet Mode Extended ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set OAuth Consumer Key ( consumer Key ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set OAuth Consumer Secret ( consumer Secret ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set OAuth AccessToken ( token ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set OAuth AccessToken Secret ( token Secret ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. create Twitter Instance () ĊĊĠĠĠ Ġ@ Suppress (" UN CHECK ED _ CAST ") ĊĠĠĠ Ġoverride Ġfun Ġ< T > Ġget Base Client (): ĠT Ġ= Ġclient Ġas ĠT ĊĊĠĠĠ Ġoverride Ġfun Ġgenerate Counter (): ĠStatus Counter Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠTwitter Status Counter () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġshow Post ( status Id : ĠLong ): ĠPost Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġclient . show Status ( status Id ). convertTo Post () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġshow User ( userId : ĠLong ): ĠUser Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġclient . show User ( userId ). convertTo Common User () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġshow User ( screen Name : ĠString ): ĠUser Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġclient . show User ( screen Name ). convertTo Common User () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Home Timeline ( paging : ĠP aging ): ĠList < Post > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġclient . get Home Timeline ( paging . convertTo Twitter Paging ()). map Ġ{ Ġit . convertTo Post () Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Ment ions Timeline ( paging : ĠP aging ): ĠList < Post > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġclient . getM ent ions Timeline ( paging . convertTo Twitter Paging ()). map Ġ{ Ġit . convertTo Post () Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Med ias Timeline ( userId : ĠLong , Ġpaging : ĠP aging ): ĠList < Post > Ġ{ ĊĠĠĠĠĠĠĠ Ġthrow ĠUnsupportedOperationException () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget F avorites ( userId : ĠLong , Ġpaging : ĠP aging ): ĠList < Post > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġclient . getF avorites ( userId , Ġpaging . convertTo Twitter Paging ()). map Ġ{ Ġit . convertTo Post () Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetUser Timeline ( userId : ĠLong , Ġpaging : ĠP aging ): ĠList < Post > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġclient . getUser Timeline ( userId , Ġpaging . convertTo Twitter Paging ()). map Ġ{ Ġit . convertTo Post () Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Post By Query ( query : ĠString , Ġpaging : ĠP aging ): ĠList < Post > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġclient . search ( paging . convertTo Twitter Query ( query )). tweets . map Ġ{ Ġit . convertTo Post () Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Friends List ( userId : ĠLong , Ġcursor : ĠLong ): ĠPage able Response < User > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġclient . getF riends List ( userId , Ġcursor ). let Ġ{ Ġresponse List Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPage able Response ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresponse List . previous Cursor , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresponse List . next Cursor , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresponse List . map Ġ{ Ġit . convertTo Common User () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Follow ers List ( userId : ĠLong , Ġcursor : ĠLong ): ĠPage able Response < User > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġclient . get Follow ers List ( userId , Ġcursor ). let Ġ{ Ġresponse List Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPage able Response ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresponse List . previous Cursor , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresponse List . next Cursor , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresponse List . map Ġ{ Ġit . convertTo Common User () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġverify Credentials (): ĠUser Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġclient . verify Credentials (). convertTo Common User () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Closest Trend s ( latitude : ĠDouble , Ġlongitude : ĠDouble ): ĠList < Trend > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġclient ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. get Place Trend s ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclient . get Closest Trend s ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGeo Location ( latitude , Ġlongitude ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) [ 0 ]. wo eid ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. trend s . map Ġ{ ĠT rend ( it . name , Ġit . tweet Volume ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġcreate Favorite ( status Id : ĠLong ): ĠPost Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġclient . create Favorite ( status Id ). convertTo Post () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġdestroy Favorite ( status Id : ĠLong ): ĠPost Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġclient . destroy Favorite ( status Id ). convertTo Post () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġcreate Repeat ( status Id : ĠLong ): ĠPost Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġclient . ret weet Status ( status Id ). convertTo Post () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġdestroy Repeat ( status Id : ĠLong ): ĠPost Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġclient . un Ret weet Status ( status Id ). convertTo Post () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Friend ship ( userId : ĠLong ): ĠFriend ship Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġclient . lookup Friend ships ( userId ). single (). convertTo Common Friend ship () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġcreate Friend ship ( userId : ĠLong ): ĠFriend ship Ġ{ ĊĠĠĠĠĠĠĠ Ġclient . create Friend ship ( userId ) ĊĠĠĠĠĠĠĠ Ġreturn Ġget Friend ship ( userId ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġdestroy Friend ship ( userId : ĠLong ): ĠFriend ship Ġ{ ĊĠĠĠĠĠĠĠ Ġclient . destroy Friend ship ( userId ) ĊĠĠĠĠĠĠĠ Ġreturn Ġget Friend ship ( userId ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġcreate Block ( userId : ĠLong ): ĠFriend ship Ġ{ ĊĠĠĠĠĠĠĠ Ġclient . create Block ( userId ) ĊĠĠĠĠĠĠĠ Ġreturn Ġget Friend ship ( userId ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġdestroy Block ( userId : ĠLong ): ĠFriend ship Ġ{ ĊĠĠĠĠĠĠĠ Ġclient . destroy Block ( userId ) ĊĠĠĠĠĠĠĠ Ġreturn Ġget Friend ship ( userId ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġcreate Mute ( userId : ĠLong ) Ġ{ ĊĠĠĠĠĠĠĠ Ġclient . create Mute ( userId ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġdestroy Mute ( userId : ĠLong ) Ġ{ ĊĠĠĠĠĠĠĠ Ġclient . destroy Mute ( userId ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġreport Sp am ( userId : ĠLong ) Ġ{ ĊĠĠĠĠĠĠĠ Ġclient . report Sp am ( userId ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Lists ( userId : ĠLong ): ĠList < ListEntry > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġclient . getUser Lists ( userId ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠList Entry ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . name , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . description . take If Ġ{ Ġstring Ġ-> Ġstring . isNotEmpty () Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . is Public ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠaddTo Lists ( list Id : ĠLong , ĠuserId : ĠLong ) Ġ{ ĊĠĠĠĠĠĠĠ Ġclient . create UserList Member ( list Id , ĠuserId ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetList Timeline ( list Id : ĠLong , Ġpaging : ĠP aging ): ĠList < Post > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġclient . getUser List Statuses ( list Id , Ġpaging . convertTo Twitter Paging ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġit . convertTo Post () Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Custom E moj is (): ĠList < Emoji > Ġ{ ĊĠĠĠĠĠĠĠ Ġthrow ĠUnsupportedOperationException () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġupload Media ( inputStream : ĠInputStream , Ġname : ĠString , Ġtype : ĠString ): ĠLong Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( type . startsWith (" video / ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclient . upload Media Chunk ed ( name , ĠinputStream ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclient . upload Media ( name , ĠinputStream ) ĊĠĠĠĠĠĠĠ Ġ}. media Id ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġpost Status ( update Status : ĠUpdate Status ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġstatus Update Ġ= ĠStatus Update ( update Status . context ) ĊĠĠĠĠĠĠĠ Ġupdate Status . image IdList ?. take If Ġ{ Ġit . isNotEmpty () Ġ} ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstatus Update . set Media Ids (* it . to Long Array ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstatus Update . is Po ss ibly Sensitive Ġ= Ġupdate Status . is Po ss ibly Sensitive ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( update Status . in Reply To Status Id Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstatus Update . in Reply To Status Id Ġ= Ġupdate Status . in Reply To Status Id ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġlocation Ġ= Ġupdate Status . location ĊĠĠĠĠĠĠĠ Ġif Ġ( location Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstatus Update . location Ġ= ĠGeo Location ( location . first , Ġlocation . second ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġclient . update Status ( status Update ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġvote Poll ( id : ĠLong , Ġindexes : ĠList < Int >) Ġ{ ĊĠĠĠĠĠĠĠ Ġthrow ĠUnsupportedOperationException () ĊĠĠĠ Ġ} Ċ }