package Ġcom . github . kot l inte le gram bot . dispatcher Ċ Ċ import Ġcom . github . kot l inte le gram bot . Bot Ċ import Ġcom . github . kot l inte le gram bot . bot Ċ import Ġcom . github . kot l inte le gram bot . dispatch Ċ import Ġcom . github . kot l inte le gram bot . entities . Chat Action Ċ import Ġcom . github . kot l inte le gram bot . entities . Chat Id Ċ import Ġcom . github . kot l inte le gram bot . entities . Update Ċ import Ġjava . io . BufferedReader Ċ import Ġjava . io . IOException Ċ import Ġjava . io . InputStream Reader Ċ Ċ var ĠTOKEN Ġ= Ġ" 2 8 5 1 3 0 3 3 1 1 : AA Ef um y 4 fW IM f ap w Jc 6 Tt 3 s _ Vz 1 _ ay t 1 7 w Q " Ċ Ċ fun Ġmain ( args Main : ĠArray < String >) Ġ{ ĊĠĠĠ Ġif ( args Main . size Ġ!= Ġ 1 ) ĊĠĠĠĠĠĠĠ Ġprintln (" java Ġ- jar ĠTelegram Terminal Ġ[ TOKEN ]") ĊĠĠĠ Ġelse ĊĠĠĠĠĠĠĠ ĠTOKEN Ġ= Ġargs Main [ 0 ] ĊĊĠĠĠ Ġval Ġbot Ġ= Ġbot Ġ{ ĊĠĠĠĠĠĠĠ Ġtoken Ġ= ĠTOKEN Ċ // ĠĠĠĠĠĠĠ Ġtimeout Ġ= Ġ 3 0 ĊĠĠĠĠĠĠĠ Ġdispatch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext (" help ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbot . sendMessage ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchat Id Ġ= ĠChat Id . from Id ( message . chat . id ), Ġtext Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Ping Ġuses ĠIC MP Ġto Ġsend Ġout Ġecho Ġrequests \ n Ġ/ ping \ n \ n " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Show Ġchat ĠID \ n Ġ/ chat Id \ n \ n " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Internet Ġspeed Ġtest \ n Ġ/ speed Test \ n \ n " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Start ĠFTP Ġserver \ n Ġ/ start F tp \ n \ n " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Stop ĠFTP Ġserver \ n Ġ/ stop F tp \ n \ n " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Start ĠSSH Ġserver \ n Ġ/ start Ssh \ n \ n " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Stop ĠSSH Ġserver \ n Ġ/ stop Ssh \ n \ n " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Executing Ġcommands Ġin Ġthe Ġshell \ n Ġ/ c \ n \ n ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext (" ping ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbot . sendMessage ( chat Id Ġ= ĠChat Id . from Id ( message . chat . id ), Ġtext Ġ= Ġ" p ong ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcommand (" chat Id ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġchat Ġ= Ġ"${ Chat Id . from Id ( message . chat . id )}" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġchat Id Ġ= Ġchat . drop ( 6 ). drop Last ( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbot . sendMessage ( chat Id Ġ= ĠChat Id . from Id ( message . chat . id ), Ġtext Ġ= Ġchat Id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcommand (" speed Test ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexec ( bot , Ġupdate , ĠlistOf (" speed test Ġ-- simple ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcommand (" start F tp ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexec ( bot , Ġupdate , ĠlistOf ("/ etc / init . d / vs ftp d Ġstart ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexec ( bot , Ġupdate , ĠlistOf (" echo Ġ\" if config . me ĠĠ Ġ` curl Ġif config . me ` \"" )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexec ( bot , Ġupdate , ĠlistOf (" echo Ġ\" ic anh az ip . com ĠĠ Ġ` curl Ġic anh az ip . com ` \"" )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexec ( bot , Ġupdate , ĠlistOf (" echo Ġ\" ipe cho . net / plain ĠĠ Ġ` curl Ġi pe cho . net / plain ` \"" )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexec ( bot , Ġupdate , ĠlistOf (" echo Ġ\" if config . co ĠĠ Ġ` curl Ġif config . co ` \"" )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcommand (" stop F tp ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexec ( bot , Ġupdate , ĠlistOf ("/ etc / init . d / vs ftp d Ġstop ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġcommand (" start Ssh ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexec ( bot , Ġupdate , ĠlistOf ("/ etc / init . d / ssh Ġstart ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexec ( bot , Ġupdate , ĠlistOf (" echo Ġ\" if config . me ĠĠ Ġ` curl Ġif config . me ` \"" )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexec ( bot , Ġupdate , ĠlistOf (" echo Ġ\" ic anh az ip . com ĠĠ Ġ` curl Ġic anh az ip . com ` \"" )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexec ( bot , Ġupdate , ĠlistOf (" echo Ġ\" ipe cho . net / plain ĠĠ Ġ` curl Ġi pe cho . net / plain ` \"" )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexec ( bot , Ġupdate , ĠlistOf (" echo Ġ\" if config . co ĠĠ Ġ` curl Ġif config . co ` \"" )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcommand (" stop Ssh ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexec ( bot , Ġupdate , ĠlistOf ("/ etc / init . d / ssh Ġstop ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġcommand (" c ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexec ( bot , Ġupdate , Ġargs ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġbot . start Polling () Ċ } Ċ Ċ fun Ġexec ( bot : Bot , Ġupdate : Update , Ġargs : List < String >) Ġ{ ĊĠĠĠ Ġval Ġjoined Args Ġ= Ġargs . join ToString ( separator Ġ= Ġ" Ġ") ĊĠĠĠ Ġval Ġprocess Builder Ġ= ĠProcess Builder () ĊĠĠĠ Ġprocess Builder . command (" bash ", Ġ"- c ", Ġjoined Args ) ĊĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġprocess Ġ= Ġprocess Builder . start () ĊĠĠĠĠĠĠĠ Ġval Ġreader Ġ= ĠBufferedReader ( InputStream Reader ( process . inputStream )) ĊĠĠĠĠĠĠĠ Ġvar Ġline : ĠString ? ĊĠĠĠĠĠĠĠ Ġwhile Ġ( reader . readLine (). also Ġ{ Ġline Ġ= Ġit Ġ} Ġ!= Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbot . sendMessage ( chat Id Ġ= ĠChat Id . from Id ( update . message !!. chat . id ), Ġtext Ġ= Ġ"$ line ") Ċ // ĠĠĠĠĠĠĠ Ġval Ġexit Code Ġ= Ġprocess . waitFor () Ċ // ĠĠĠĠĠĠĠ Ġbot . sendMessage ( chat Id Ġ= ĠChat Id . from Id ( update . message !!. chat . id ), Ġtext Ġ= Ġ"\ n Exit ed Ġwith Ġerror Ġcode Ġ: Ġ$ exit Code ") ĊĠĠĠ Ġ} Ġcatch Ġ( e : ĠIOException ) Ġ{ ĊĠĠĠĠĠĠĠ Ġbot . sendMessage ( chat Id Ġ= ĠChat Id . from Id ( update . message !!. chat . id ), Ġtext Ġ= Ġ"${ e . printStackTrace () }") ĊĠĠĠ Ġ} Ġcatch Ġ( e : ĠInterruptedException ) Ġ{ ĊĠĠĠĠĠĠĠ Ġbot . sendMessage ( chat Id Ġ= ĠChat Id . from Id ( update . message !!. chat . id ), Ġtext Ġ= Ġ"${ e . printStackTrace () }") ĊĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠ Ġ} Ċ }