QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 27344|回复: 129

有关Eva的设想和目前的进度

[复制链接]
发表于 2004-12-17 00:01:14 | 显示全部楼层 |阅读模式
我不知道发在这里是否合适, 我做这个项目是GPL的开源项目, 目前只有我一个人在做。 这里是国际开源项目, 而我这个只是为了中国人用的。如果版主觉得这里不合适,那帮我转到合适的地方吧,先谢了。

但是不管如何,也是开源项目,希望有人可以和我一同开发。当然任何的指导和建议都是十分welcome的。


1.Eva是什么?
  Eva是一个为linux下的KDE桌面环境写的基于腾讯QQ聊天客户端协议的软件。

2.Eva能干什么?
  Eva可以和任何的QQ客户端软件进行文本聊天, 当然新的功能会不断的加入,
  这个取决于对腾讯协议的理解。

3.Eva如何得到?
  目前我还没有专门的主页,所以,基本上我会把Eva的新版本发到linuxfans的
  软件下载栏目里。 我有一个临时的主页http://www.freewebs.com/yunfan_zg,
  这里放着我的一些日志,和测试版本。等以后也许会在sourceforge上申请一
  个。最新的测试版本为 0.1.2beta1, 在这里下载
  http://www.freewebs.com/yunfan_zg/eva-0.1.2beta1-src.tar.gz

4.Eva目前的状态
  最新的测试版本为 0.1.2beta1。 目前,我开始重构和规范代码,
  整个软件的结构,和编码风格都做的尽量正规。

5.Eva下一步的计划
  下一个版本为 0.2.0, 这将是建立在完全新的构架下的软件, 功能上
  可能不会有大的提升, 但是这样一个新的构架,将会为软件的稳定和
  扩展,以及协同开发提供了一个良好的基础。

6.Eva的新构架设想
  新的Eva大体上将会包含5个部分:
  1) libeva: 一个包括所有对腾讯QQ通讯协议封装的动态库。
  2) evaapi: 一些包括非GUI的和客户端联系比较紧密的API。  
  3) GUI:    图形用户界面相关的类和UI文件
  4) image:  Eva中用到的图象资源
  5) sound:  一些用来提示的声音文件

  可能在开发的过程中,会做一些调整,但是大体上遵循这个思路。
  其中的libeva我已经动手。这也是新Eva中最重要的部分,这个动态库
  一旦完成,任何人都可以写前端来调用,甚至控制台的程序也可以
  很容易的登录腾许服务器和好友聊天。Kopete的QQ插件实现起来也会更加容易

7.关于Eva这个名字
  看看Eva这个名字,大概大家也可以想到了,一份爱慕,一份祝福。

8.热切希望大家的参与
  我用的是免费下载的Linux系统,所以我很感谢那些为Linux系统做出无私
  奉献的所有人。 也希望自己能为Linux做一点点贡献。 但个人之力毕竟微薄,
  也十分热切的希望有兴趣的人能来一起开发,或者是指导,建议,甚至
  哪怕是善意的批评也都是让这个软件活下去的动力。只要有C的基础,
  懂一点C++, Qt即便是不会,也可以参与到开发中来, 其实做就是学,也是
  一个很好的学习方法, 大家一起来提高。



云帆 2004/12/17

欢迎大家和我联系,我的联系方式:
QQ:33138622
Email:[email protected]

或者直接更贴
 楼主| 发表于 2004-12-17 00:03:35 | 显示全部楼层
这是Eva近期的开发日志

Eva 日志

==============================
12月16日
在evalogin中加入了 KeepAlivePacket 和 KeepAliveReplyPacket

完成了文本消息发送的重构, 父类SendIM, 完成传送文本消息, 文件传送请求等等的共同部分
继承SendIM下来的SendTextIMPacket 是完成文本消息的发送。
以及SendIMReplyPacket 是所有IM发送结果的回复类
这些都在 evaimsend.h(cpp)中


==============================
12月14日
在evalogin中加入了LogoutPacket,这样登录,登出都可以在一起维护了
又写完一组文件evaonlinestatus.h(cpp), 都是有关好友状态的,里面包括了以下类:
FriendStatus: 在线状态类,GetOnlineFriendsPacket:获得在线好友类,GetOnlineFriendsReplyPacket:获得在线好友回复类,
ChangeStatusPacket: 改变在线状态类,ChangeStatusReplyPacket:改变在线状态回复类,FriendChangeStatusPacket: 好友状态改变类
FriendOnlineEntry: 在线列表项 类


开始重写 获取好友列表部分,这部分原来的设计,我觉得不是很清晰.
QQFriend 类现在 改为 FriendItem, GetFriendListPacket, 和
GetFriendListReplyPacket已经完成。 这些都在evafriend.h 和 evafriend.cpp.
另外,所有的我写的文件,文件名现在都加了eva前缀。
目前的文件: evapacket.h(cpp),  evauserinfo.h(cpp), evalogin.h(cpp),
evafriend.h(cpp)

另外,我在考虑把负责连接,发送的部分也加入libeva中.


==============================
12月12日
LoginReply 完成重构,login.h 和login.cpp完成.
ContactInfo, GetUserInfoPacket, GetUserInfoReplyPacket 的重构完成,
存在于userinfo.h 和 userinfo.cpp 中.

==============================
12月11日
完成OutPacket,InPacket, LoginPacket的重构,
同时,将 Packet, OutPacket, InPacket 三个Class 放到同一个
头文件中声明( packet.h),在同一个cpp文件中实现 (packet.cpp).
一些有关libeva的全局声明文件qq_const_defines.h 改名为
evadefines.h, 并删去部分内容.

==============================
12月10日

开始libeva的重构工作。
完成Packet类的改写, 文件名一律使用小写字母,
所有编程风格向Kopete靠拢。 从Packet类中剔除了
用处不大的方法和变量,改动了个别方法

==============================
12月6日,
更改了消息的解析和显示的部分
支持显示URL 和 email, 支持直接点击
打开浏览器或者kmail发送邮件.


==============================
12月5日,最近太忙没有时间更新
在明年1月底之前, 我会放出下一个版本。
至少含有以下更改,

1.加入字体颜色的选择,
2.快速回复。
3. 来自陌生人消息的支持
4.好友的分组更改有些麻烦,因为QToolBox本身对于drag的
支持并不那么理想,可能我会hack一下这个class,加入
drag & drop的支持, 如果实现了,则好友上传肯定就会在下个版本中完全支持

5. 如果4实现,那么拖入黑名单就可以顺手做上了
6. http代理的支持, 最近看了看有关http代理的东西,自己感觉下一个版本
应该可以实现。

另外,我个人虽然从不用群,但好像群的使用很普遍,在实现了以上
功能之后, 开始做出群功能。  当然设想中的游戏,也开始实现,
计划是先做一个中国象棋,或者5子棋的游戏。 不过这至少是下一个版本之后
的事了


==============================
至11月24日,我又做了如下小的更改

1. 更改了双击头像读取消息的算法
2. 更改了system tray的双击读取消息的算法
3. 加入动态载入腾讯QQ服务器IP地址, 这个还挺麻烦,服务器脚本文件在./setting/下的servers中
4. 支持查看消息记录中的表情图标显示
5. 添加好友基本没有问题了

另外, 有些想法, 可能在彻底完成了,个人文本聊天,好友增删改,包括分组的上传,下载,
系统消息的记录和查看后, 可能先做一个http的代理吧,然后想实践一下:

我想利用腾讯的文本聊天包来做一个游戏通讯协议, 就是说让使用eva的两个人,可以一起玩
同一个小游戏。 目前, 正在考虑中

不过最近实在太忙, 在做一个图象分析的软件, 唉,太多相关知识都不知道啊
到明年1月底,估计有关个人聊天的东西,基本就都做完了, 至于群的功能,以后有时间再做
或者有其他的志愿者做一个加上了
回复

使用道具 举报

发表于 2004-12-17 02:11:12 | 显示全部楼层
本版需要 Eva 这样的项目来会聚朋友,我们一同进步。 :-)
大家伙一起来吧。
回复

使用道具 举报

发表于 2004-12-17 15:40:11 | 显示全部楼层
协议确实要封装
只是声音图象什么的就不要算一部分了把
把代码分开是主要的
回复

使用道具 举报

发表于 2004-12-18 00:21:28 | 显示全部楼层
楼上,有空可以参与开发哇。
回复

使用道具 举报

 楼主| 发表于 2004-12-18 01:03:15 | 显示全部楼层
又加了一些代码,离libeva0.2.0 完工的时间也更进了一步。
回复

使用道具 举报

发表于 2004-12-18 11:18:59 | 显示全部楼层
已经算参与了
正在等待楼主修改代码架构,修改好了估计也就放假了,正好可以合作写
回复

使用道具 举报

发表于 2004-12-18 11:55:21 | 显示全部楼层
好哇,请楼主也给我一份代码,或者文档,我也好跟随学习。
请发到我的信箱里吧。

邮箱地址:bamfox at 163 dot com

谢谢。
回复

使用道具 举报

 楼主| 发表于 2004-12-18 11:58:18 | 显示全部楼层
[quote:fd9754dabc="bluegenius2000"]协议确实要封装
只是声音图象什么的就不要算一部分了把
把代码分开是主要的[/quote]

之所以分开,是因为目前我还找不到GPL的图象和声音来替代腾讯的这些资源, 腾讯的都是用版权的,这可能会带来问题。 图象和声音,可能不会做为Eva的一部分来发布,可以专门做一个有关声音和图象的包来下载, 这样即便出问题, 只要换掉就可以了,不影响Eva本身.当然如果有自己做的图象和声音文件,便没有这个问题了。
回复

使用道具 举报

发表于 2004-12-18 12:03:46 | 显示全部楼层
用gaim的行么? :-)
回复

使用道具 举报

 楼主| 发表于 2004-12-18 12:05:51 | 显示全部楼层
[quote:9c556123dc="bamfox"]好哇,请楼主也给我一份代码,或者文档,我也好跟随学习。
请发到我的信箱里吧。

邮箱地址:bamfox at 163 dot com

谢谢。[/quote]

我发给他的是 0.1.2beta1版的 source, 在新版本中, 变化很大, 对腾讯的通讯协议封装的将会更好(代码也会规范很多), 也更利于扩展。 写一个基于libeva的前端将变的更加容易( 包括控制台)。当然Eva 是基于libeva的KDE前端了, 当然, 要尽力把GUI部分做的更好。

libeva,我快写完了,等我写完,把这个新的版本发给你看吧, 这个结构会更清晰, 我会付上一些必要的说明文件,包括class的结构, 如何实现一个新的协议, 如何处理登录流程,等等。 然后,我们就可以一起来干了
回复

使用道具 举报

 楼主| 发表于 2004-12-18 12:09:22 | 显示全部楼层
[quote:ebec40c898="VimChina"]用gaim的行么? :-)[/quote]
发布前再看吧,如果gaim的没有这些问题,当然可以用啦.
开发的时候,我是直接拷腾许的来,个别的稍微改改来用的。 :D
回复

使用道具 举报

 楼主| 发表于 2004-12-18 13:17:47 | 显示全部楼层
[quote:f09ba163d7="bamfox"]好哇,请楼主也给我一份代码,或者文档,我也好跟随学习。
请发到我的信箱里吧。

邮箱地址:bamfox at 163 dot com

谢谢。[/quote]

我发了Eva-0.1.2beta1的source给你, 你注意收一下。
make完就可以了, 不要make install, 否则图象无法显示,
make完,进入 eva/src 来运行。
回复

使用道具 举报

发表于 2004-12-19 00:29:52 | 显示全部楼层
谢谢,我已经收到,对了,以后我们用什么平台开发呢?
红旗还是 magic ?
回复

使用道具 举报

 楼主| 发表于 2004-12-19 01:04:03 | 显示全部楼层
什么平台都无所谓,你喜欢用什么都可以,我对美化不在行,一般用红旗, 你喜欢magic,或者用fedora core,mandrake,什么的,只要有qt头文件和qt库就可以了(qt版本要最好大于3.2的,KDE最好也大于3.2的)。 什么都可以。
做这个的目的不是单单为了哪一个平台,大体上讲是给KDE桌面做的,有KDE桌面的发行版都可以。(如果只是调用libeva的话,希望可以实现任何发行版的支持,没有qt也可以)

这样也有个好处,就是我们在发布时至少能保证程序在2-3个平台上正常运行。  

我建议如果你有magic, 那就在magic上做吧。

我在考虑,现在还有人用rh8和9的, 这样有些效果出不来。是否支持这些的版本的qt,这个到时候再说吧。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-22 02:35 , Processed in 0.296996 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表