2010-02-24

msnlib 體積小功用多

雖然有點後知後覺,但是這個還是不錯用!
http://blitiri.com.ar/p/msnlib/
(最新版本是2009-11-01)

之前包括centerim(centericq), finch(pidgin的副產品)
不是體積大就是update太慢以致無法通訊,直到最近找到
這個 python module msnlib 發現它又小(真正用得到的
library 及程式大約 100KB)又俱備 MSN基本功能(目前不能
傳檔)

搭配它付的 msn 就可以進行 MSN 通訊
它付的另一個 msnbot 也可以用來搭配系統做自動送訊

整個package 解開後也不必用root 身份安裝就直接可用
其實只要將其中的 msncb.py msnlib.py 及 msn msnbot
四個檔案放在任何地方的同一個 directory 內就能用了

不過原始的 msn 有點麻煩, 它一定要有
$HOME/.msn/msnrc (裡面用來放 MSN E-Mail account)
才能執行,只要稍微改一下,讓它能讀取 sys.argv[1]
來設為 MSN E-Mail account 即可.

至於 msnbot 它的原始程式有些問題,像是無法送漢字
以及每次執行完不會中斷退出,還有傳送對象以及message
都要寫死在程式內,是蠻不方便的

加上 import os 以及 m.encoding = os.environ['LANG']
就可以正確傳送漢字(或其它非 iso-8859-1 的字集)

在 do_work() 這個 function 裡將原本的延遲時間
起始為15 秒,結束的30 秒都嫌太久了,所以改成各為 4 秒
,使用上並未發現問題

m.sendmsg( ... ) 原本寫死,改成讀取 sys.argv

執行時帶入參數的用法改為
msnbot Your-EMail Contact-EMail "message"

msnbot Your-EMail Contact-EMail "message" Password

可以利用 if len(sys.argv) < 4, 或 == 4 或 == 5 來引入

原程式裡用 sys.exit(0) 事實上並無法中斷 thread 所以
執行完後 process 仍存活,所以改成
os.system('pkill msnbot') 讓它自殺

這樣改過之後可用度就變得更高了,例如利用 crond 來
執行它, 將系統 information 即時傳給 MSN, 如果要送出
較多的 msg 時可以改成像是
msnbot Your-EMail Contact-EMail "`df`" Password
這樣就可以看到系統磁碟空間

總之 msnbot 可以做出千變萬化的各種應用,又不花一毛錢!

沒有留言: