Rui Carmo says: (23:12:10 PM) info Bot says: (23:12:16 PM) 1:12am up 71 days, 23:10, 1 user, load average: 0.01, 0.11, 0.17 75 processes: 74 sleeping, 1 running, 0 zombie, 0 stopped CPU states: 0.0% user, 0.3% system, 0.0% nice, 0.0% idle Mem: 513596K av, 472976K used, 40620K free, 0K shrd, 0K buff Swap: 524536K av, 25624K used, 498912K free 310848K cached Bot says: (23:12:16 PM) PID USER PRI NI SIZE RSS SHARE STAT LIB %CPU %MEM TIME COMMAND 15366 newspipe 15 0 1236 1232 1004 R 0 2.8 0.2 0:00 top 1 root 8 0 520 472 460 S 0 0.0 0.0 0:23 init 2 root 9 0 0 0 0 SW 0 0.0 0.0 0:00 keventd 3 root 19 19 0 0 0 SWN 0 0.0 0.0 0:01 ksoftirqd_CPU0 4 root 9 0 0 0 0 SW 0 0.0 0.0 3:10 kswapd
Took me all of half an hour to do that with only a few lines of Python:
import msnp import time import os class MsnChatListener(msnp.ChatCallbacks): def message_received(self, passport_id, display_name, text, charset): if( text == "info" ): lines = os.popen( "top -b -n 1" ).read().strip().splitlines() #break output into decent-sized chunks head = "".join(["%s\r" % (a) for a in lines[0:5]]) self.chat.send_message( head, charset ) head = "".join(["%s\r" % (a) for a in lines[6:12]]) self.chat.send_message( head, charset ) class MsnListener(msnp.SessionCallbacks): def chat_started(self, chat): callbacks = MsnChatListener() chat.callbacks = callbacks callbacks.chat = chat msn = msnp.Session(MsnListener()) msn.login('[email protected]', 'password') msn.sync_friend_list() # wait 10 seconds for i in range(1, 10): msn.process(chats = True) time.sleep(1) msn.change_display_name( 'Bot' ) msn.change_privacy_mode(msnp.PrivacyModes.ALLOW) msn.change_state(msnp.States.ONLINE) while True: msn.process(chats = True) time.sleep(1)
Perl? Ha!