My flickr

我的
我的
我的

views: 2360 times
http://telepathy.freedesktop.org/wiki/Pymsn

update, 這個 Python 實在是大的要命,測試過後發現以下問題:
  1. notification.py 裡面少一個 event handler,會讓執行過程中跳出 WARNING。

  2. 如果對話視窗沒有被使用者關閉,當 pymsn 重新登入的時候,使用者的控制項會失效。原因在於 msnp 再重新登入之後,查到使用者的對話視窗,會送一次 RNG,而這個 RNG 會重新對 switchboard server 申請一個新的 session 來給 Client 端使用。然而,pymsn 在送回 RNG 之後,使用 ANS IRO 的 transaction_id 被重新歸零了,所以會導致同一個 Client 端有兩個 session,造成無法對應到使用者而失效。
解決的辦法是:
把它(event handler)加回去,打開 pymsn/msnp/notificatoin.py 檔案。
我在 --- Presence & Privacy --- 的底下加入:

def _handle_GCF(self, command):
    pass

另外一個 event 錯誤的問題目前尚無解答,這個 transaction_id 為什麼會被歸零,還是要查看原始碼才知道問題出在哪裡。不過,因為 Python 我實在是太不熟了,等我看懂我想這個問題應該就有人會解決了吧。

INFO:protocol:switchboard_manager:requesting new switchboard

/// 這裡的 SB 的 transaction_id 是 12

DEBUG:Transport:>>> XFR 12 SB
DEBUG:Transport:<<< XFR 12 SB 207.46.26.159:1863 CKI 355252581.3720.42179215 U messenger.msn.com 1
DEBUG:Transport:<-> Connecting to 207.46.26.159:1863
DEBUG:Transport:>>> USR 0 bot1@hinablue.me 355252581.3720.42179215
DEBUG:Transport:<<< USR 0 OK bot1@hinablue.me Python%20MSN%20Bot
INFO:protocol:switchboard_manager:New switchboard attached
DEBUG:Transport:>>> CAL 1 hinablue@msn.com
DEBUG:Transport:<<< CAL 1 RINGING 355252581
DEBUG:Transport:<<< JOI hinablue@msn.com *9mil%20Hina::Cain%20@%20NB%20猛當機...%20該不會是在討錢了吧%20orz 2789003308
DEBUG:Transport:<<< RNG 1983480976 207.46.26.47:1863 CKI 84735.18013320 hinablue@msn.com *9mil%20Hina::Cain%20@%20NB%20猛當機...%20該不會是在討錢了吧%20orz U messenger.msn.com 1
DEBUG:Transport:<-> Connecting to 207.46.26.47:1863

/// 這裡送出了 RNG 並且連線到 switchboard server

DEBUG:Transport:>>> ANS 0 bot1@hinablue.me 84735.18013320 1983480976

/// 拿回來的 ANS 的 transaction_id 是 0,但是這裡的 transaction_id 應該是接續 XFR 的 trid+1="13" 才是正確的

DEBUG:Transport:<<< IRO 0 1 1 hinablue@msn.com *9mil%20Hina::Cain%20@%20NB%20猛當機...%20該不會是在討錢了吧%20orz 2789003308

/// 既然 transcation_id 都不對了,IRO 自然也就不是原來的 Client 了。

DEBUG:Transport:<<< ANS 0 OK

/// 這裡 ANS OK 沒錯,但是 ANS 的對象已經不是原來的 Client 了。

以上就是他的錯誤,至於怎麼解,目前傷腦筋中。

在 FreeBSD 裡面測試了一下,需要安裝:
  1. python(廢話)。
  2. py-gobject,路徑在 /usr/ports/devel/py-gobject/。
  3. ElementTree,路徑在 /usr/ports/devel/py-elementtree/。
  4. pyOpenSSL,路徑在 /usr/ports/security/py-openssl/。
  5. pyCrypto,路徑在 /usr/ports/security/py-pycrypto。
  6. epydoc,路徑在 /usr/ports/devel/epydoc/,產生 api-doc 要用的。
然後就可以 python test.py 測試了。

test [/home/hinablue/pymsn-0.3.3] -hinablue-> python test.py
Account: (打入帳號)
Password: (打入密碼)
DEBUG:Transport:<-> Connecting to messenger.hotmail.com:1863
DEBUG:Transport:>>> VER 0 MSNP15 MSNP14 MSNP13 CVR0
DEBUG:Transport:<<< VER 0 MSNP15
...(後略)

按下 ctrl+C 就可以離開了。至於互動上,要參考 user-api-doc 去自己實作囉。
創用 CC 授權
Creative Commons License
本創作適用 姓名標示-非商業性-禁止改作3.0 創用 CC 授權,台灣並依循所適用的授權條款。
 相關文章 

Writer profile
author image
偏執與強迫症的患者,算不上是無可救藥,只是我已經遇上我的良醫了。

Posted by hina

2009/08/12 15:54 2009/08/12 15:54
, , , , , , , , , , , , ,
Response
No Trackback , No Comment
RSS :
http://blog.hinablue.me/rss/response/794

Trackback URL : http://blog.hinablue.me/trackback/794

« Previous : 1 : ... 70 : 71 : 72 : 73 : 74 : 75 : 76 : 77 : 78 : ... 828 : Next »