gaim
Gaim SoC开发计划和进度
熟悉MSN的协议,采用C和Python测试协议描述
现在能够实现登陆的第一步
2006-05-27--2006-05-28
正在实现Windows ID 3.0的登陆实验,OK
中间需要一个URL编码和解码,gaim通过src/util.c里面的gaim_url_encode()以及gaim_url_decode()函数实现。相应的实现参考有fcpproxy里面的实现,可以参考实现URL的编码和解码。
需要主意的是Windows的ID的登陆的URL有些变化。
C库里面实现
现在在Python中先实现一个demo,以熟悉协议,需要httpslib和url2lib
2006-06-01
使用Python实现了OIM的接收和消息的获取,现在不能够发送消息,协议不明,需要找到一种方法构造XML和mail格式的东西,希望Gaim里面有现成的函数可以使用,原形要尽快完成验证,希望这个周里面搞定
2006-06-17
开始在gaim中集成,添加C代码的时候碰到的问题:不能够正常的发送和接收命令,调试发现多了一个\r\n,空格字符害死人阿
不能够做SVN的branch,说是权限不够。
2006-06-24
现阶段进展:从trunk中创建了一个gaim 的svn branch, soc-2006-msnp13,开始做自己的开发,添加代码和协议中,这个周的目标是一个能够成功登陆的系统。
具体的svn库为:https://svn.sourceforge.net/svnroot/gaim/branches/soc-2006-msnp13
现有的调试方法的总结
首先,调试需要安装,如果不安装的话,gaim不能够识别协议的动态连接库所在的位置
调试手段,gdb
gaim提供了一个gtk调试窗口,可以用于动态调试,在帮助,调试窗口打开即可
./gaim -d可以将调试信息输出到console里面,还是很方便。
2006-06-25
今天的开发计划是能够取得Contact,对Contact进行获取,添加,删除,Block和 Unblock的操作,
没有完成
2006-07-08
重新改写了gaim的HTTP请求获取代码,调试通过,现在能够取得contact列表了 。不知道如何去使用user和userlist的东西了,现在的变化是使用了id来标示,而不是以前的使用SYNC来取得列表。
2006-07-15
今天的计划是完成contact列表,能够正常登陆。
写完OIM部分的代码
完成情况
还有就是Challenge的算法不对,初步怀疑为MD5的算法有问题。
Windows Live Messenger
8.0(Build 8.0.0792.00)
需要注册一个Windows Live ID,然后就可以直接添加yahoo的ID了
Yahoo Messenger with voice Beta(8.0.0.508)
MyYahoo Module(7.5.0.1)
可以直接互通,能够发送在线和离线消息,能够发Nudge
yahoo这边叫BUZZ
yahoo有一个比较有特色的东西,能够在yahoo上搜索Message的内容
还有它安装的时候需要在网上下载。另外就是它带的东西太多了,yahoo tab,yahoo Mail,真麻烦
成功获取到contact列表,修改challenge算法完成。
遇到的问题
不知道如何去使用UserList ,如何去进行函数的回调,还有就是每次用完就断开HTTPS连接了还是保持。现在的想法还是用完就断开连接。不然每次老读连接很烦的。
2006-07- 22
能够获取到Contact列表,同时正式显示到gaim的list上面去。有bug。
2006-07-29
离线消息部分获取到数据,同时能够解码出来。
2006-08-06
今天的进展部分:
完成了Photo和Ino
离线消息部分的处理,Contact列表的缓存,和Group,Member的添加删除。