perl qq 模块Net::OICQ 0.98
时间:2005-11-22 来源:alexe
本版本改自http://sourceforge.net/projects/perl-oicq/ 的Net::OICQ 0.9版。
参照最新的openq0.3.2的源代码,对于Net::OICQ里的qq协议作了相应的升级,
从过去的2000英文版升级到2003版,升级后主要支持了字体属性的设置与qq群。
有兴趣的朋友,请看全文。
今天又稍微整理了一下,在qq_test.pl文件中加了一些注释,在没有使用的文档的情况下让大家清楚一点用法。
下载地址
具体信息,请参照readme文件。
更改记录:
2005-5-2星期一
开始进展缓慢。对于Net::oicq的程序结构不是十分的清晰。而且它的纪录包的程序也是有些难于理解。
2005-5-3星期二
添加了qq_reference.txt文件来纪录在openq中的相应协议的数据字段定义。
对于qq的组发现了其有内部组号与外部组号的分别。对于老版本的qq
client可以直接用内>部号来发送组信息。
2005-5-4星期三
对于openq的0.3.2版本与net::oicq用的加密算法作了比较,发现这两个加密的算法相同,不用重新编写加密的部分。
开始将过去的版本从0x0801升级到0x0b37,从而让qq的群对话趋于正常,返回的数据包没有大量的无用信息。
对于老的登陆程序作出更新,将过去的一次md5加密改为两次加密。
2005-5-5星期四
更改了net::opicq的数据包纪录程序,将process中的两个分类sever与client部分在new部分就开始进行纪录数据包,以便于自己更好的分析数据包。
去除了老的debug部分,以便让纪录下的数据更利于自己分析,过去的纪录格式让我难以区分数据。
添加了group_send。发送group信息正常。
更改了recv_mesg,让他能正确分析返回的数据包。在这里首先添加了分析服务器返回的group
im信息与已知好友或陌生人im信息的。
测试了add del friends部分,测试了search online user部分,都正常。
2005-5-6星期五
完成了group方面的模块,基本清楚了openq的模块结构,以及相关的perl程序的>对应。
在group方面添加了group_search,这样可以使用group的外部组名来得到group的内部组名。
更改了set_mode的发送代码,并对于他的返回代码作了相应的处理。
2005-5-7星期六
更改了net::oicq的send_mesg子模块。
完成了get_online_friends的返回程序的显示。
完成了get_friends_list的返回显示。
去除了所有关于friends_face的返回。个人认为在命令行下无用。
添加了关于seq的识别部分,这样对于服务器多次重复发送的同一信息,只对于第一条有反应。(原程序也有相应的部分)
2005-5-8星期天
添加了group_info,get_group_online_member功能。
添加了在命令行下调用group的各种的相应命令。
完成了net::oicq程序的更改。完全将老的协议升级到2003版的协议,主要的支持font属性、qq组会话,如果必要还可以添加tcp协议的支持。
使用tcp协议时比udp协议在包头添加了2个字节,用于纪录整个包的长度。
tcp包头的长度为9字节。
udp包头的长度为7字节。首先是0x02,然后是0x0b37(客户端的版本),然后是cmd两字节(这个包的命令),最后是seq两字节(包的序列号)。
2005-5-9至2005-5-15
减少了timeout值,加大了事件队列值.
send2srv添加了发送无响应重新发送。
添加了对于几个命令的返回hash引用的数据,参见qq_doc。
参照Net::IRC模块,在OICQ.pm中添加了add_handler,以供程序回调。添加了reply_process,以供循环。
添加了Print参数,以供是否在运行中显示命令返回数据。
基本完成了qq-irc的互通。
将Net::OICQ的版本从0.9.17升级到0.9.27
2005-5-16至2005-5-22
完成整个结构的调整,去除了ClientEvent.pm与TextConsole.pm两个模块。添加了命令队列。
2005-5-23至2005-5-29
对于新的结构做测试,并相应的调整各个网络性能相关值。
网络性能及稳定性已经大幅度提升,基本完全满足各种qq相应的附加开发的要求。
放出0.98版。至此结构的调整已经完成,剩下的就是功能的修补与协议的补充。
2005-5-30
添加tcp连接的支持。缺省为udp连接,当Tcp_Con置1为使用Tcp连接。
去除无用代码,去除了自动回复功能,个人认为这个可以再写回调中自己添加,这样更加灵活。
启用Debug开关,为1时将显示发送与接受的调试信息,并将收到包记录在.oicq目录下。
还剩的工作有:
win32下没有测试。
有朋友报告说freebsd上Crypt-OICQ-1.0无法运行,这个问题确实存在,需要修复。
剩余qq协议的添加。
文档的编写。
还有朋友希望提供2004版的支持,我会考虑的。