QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6184|回复: 21

QQ Plugin for Kopete TEST2 发布

[复制链接]
发表于 2004-12-13 09:20:09 | 显示全部楼层 |阅读模式
位置:
http://www.magiclinux.org/people/cjacker/qq-test2.tgz

修改:
0,增加了一个qq smileys,注意,目前还不能使用,只是提供表情资源,用于显示

1,修改了收到的MSG的显示,使用qq smileys显示合适的表情。

2,参考了一下windows下的几个qq版本,发现并不是哪个版本都支持表情,所以,目前,表情发送,可以使用现有的kopete表情足够了。

3,修改了好友状态的改变实现,发现,有部分客户端改变状态时,是可以实时改变自己的好友列表状态的,有些客户端则不是,所以,又打开了一个Qtimer,定时取好友,Online, Leave的列表。这是没有办法的办法。

4,修改了Connecting动画发生的时机,不会在要求输入密码时就开始Connecting.

5,Some little bug fix.
 楼主| 发表于 2004-12-13 09:45:55 | 显示全部楼层
解释一下为什么不作IP显示。

云帆给出了一个很好的基础,IP显示当然也不是问题,只要一个函数就OK了。

这里的问题是:

1,显示IP是否合适
2,QQWry.dat的license问题,以及时效性。

这个地址查询是不是还有效?


所以,有可能会出一个IP 显示和查询的补丁,但是不会作到source里。
回复

使用道具 举报

发表于 2004-12-13 09:51:22 | 显示全部楼层
合适阿,我身边的人都是用显ip的版本,没有人用原版QQ得,都是用什么QQ外挂的
回复

使用道具 举报

发表于 2004-12-13 10:06:57 | 显示全部楼层
要怎样使用?
我现在用的LumaQQ经常出现收不到别人发的信息,一直不知要怎样解决,不知这个会不会好一点。
回复

使用道具 举报

发表于 2004-12-14 17:21:36 | 显示全部楼层
纺绎出错了,我用的是kdenetwork3.3.2
then mv -f ".deps/qqinterface.Tpo" ".deps/qqinterface.Plo"; \
else rm -f ".deps/qqinterface.Tpo"; exit 1; \
fi
qqinterface.cpp: In member function `void QQ::eventHandler(Q_UINT16)':
qqinterface.cpp:167: error: missing terminating " character
qqinterface.cpp:168: error: `bytes' undeclared (first use this function)
qqinterface.cpp:168: error: (Each undeclared identifier is reported only once for each function it appears in.)
qqinterface.cpp:168: error: missing terminating " character
qqinterface.cpp:171: error: missing terminating " character
qqinterface.cpp:172: error: `with' undeclared (first use this function)
qqinterface.cpp:172: error: missing terminating " character
qqinterface.cpp:176: error: missing terminating " character
qqinterface.cpp:177: error: `iled' undeclared (first use this function)
qqinterface.cpp:177: error: missing terminating " character
qqinterface.cpp:180: error: missing terminating " character
qqinterface.cpp:181: error: `al' undeclared (first use this function)
qqinterface.cpp:181: error: missing terminating " character
qqinterface.cpp:182: error: missing terminating " character
qqinterface.cpp:183: error: missing terminating " character
qqinterface.cpp: In member function `void QQ::processReceiveIM(ReceiveIMPacket*)':
qqinterface.cpp:449: warning: unused variable 'codec'
make[1]: *** [qqinterface.lo] 错误 1
make[1]: Leaving directory `/home/huting/temp/kde/kdenetwork-3.3.2/kopete/protocols/qq'
make: *** [all-recursive] 错误 1
[huting@MagicLinux qq]$
回复

使用道具 举报

发表于 2004-12-14 18:12:03 | 显示全部楼层
装是装上了,但是只要qq上线,就会出错退出
回溯追踪显示
Using host libthread_db library "//lib/tls/libthread_db.so.1".
[KCrash handler]
#7  0xb7f103c7 in KopeteContact:nlineStatus () from //usr/lib/libkopete.so.1
#8  0xb4fc74cc in QQAccount::qt_invoke () from /usr/lib/kde3/kopete_qq.so
#9  0xb6aa6f44 in QObject::activate_signal ()
   from /usr/lib/qt-3.3/lib/libqt-mt.so.3
#10 0xb4fca948 in QQ::FriendStatusChange () from /usr/lib/kde3/kopete_qq.so
#11 0xb4fc9c96 in QQ::processGetFriendOnlineReply ()
   from /usr/lib/kde3/kopete_qq.so
#12 0xb4fc9f28 in QQ::OnIncommingData () from /usr/lib/kde3/kopete_qq.so
#13 0xb4fcacb8 in QQ::qt_invoke () from /usr/lib/kde3/kopete_qq.so
#14 0xb6aa6f44 in QObject::activate_signal ()
   from /usr/lib/qt-3.3/lib/libqt-mt.so.3
#15 0xb4ff93c5 in PacketManager:acketArrived ()
   from /usr/lib/kde3/kopete_qq.so
#16 0xb4ff31e6 in PacketManager::OnIncommingData ()
   from /usr/lib/kde3/kopete_qq.so
#17 0xb4ff959d in PacketManager::qt_invoke () from /usr/lib/kde3/kopete_qq.so
#18 0xb6aa6f44 in QObject::activate_signal ()
   from /usr/lib/qt-3.3/lib/libqt-mt.so.3
#19 0xb6aa756c in QObject::activate_signal ()
   from /usr/lib/qt-3.3/lib/libqt-mt.so.3
#20 0xb6e037d0 in QSocketNotifier::activated ()
   from /usr/lib/qt-3.3/lib/libqt-mt.so.3
#21 0xb6ac3ff0 in QSocketNotifier::event ()
   from /usr/lib/qt-3.3/lib/libqt-mt.so.3
#22 0xb6a4320f in QApplication::internalNotify ()
   from /usr/lib/qt-3.3/lib/libqt-mt.so.3
#23 0xb6a43412 in QApplication::notify ()
   from /usr/lib/qt-3.3/lib/libqt-mt.so.3
#24 0xb71476e5 in KApplication::notify () from //usr/lib/libkdecore.so.4
#25 0xb6a36933 in QEventLoop::activateSocketNotifiers ()
   from /usr/lib/qt-3.3/lib/libqt-mt.so.3
#26 0xb69ed6c8 in QEventLoop::processEvents ()
   from /usr/lib/qt-3.3/lib/libqt-mt.so.3
#27 0xb6a59961 in QEventLoop::enterLoop ()
   from /usr/lib/qt-3.3/lib/libqt-mt.so.3
#28 0xb6a598b6 in QEventLoop::exec () from /usr/lib/qt-3.3/lib/libqt-mt.so.3
#29 0xb6a4236f in QApplication::exec () from /usr/lib/qt-3.3/lib/libqt-mt.so.3
#30 0x08076390 in ?? ()
#31 0xbffff7d0 in ?? ()
#32 0xbffff7b0 in ?? ()
#33 0xbffff7b0 in ?? ()
#34 0x00000000 in ?? ()
#35 0x080ab633 in typeinfo name for QMemArray<char> ()
#36 0x00000001 in ?? ()
#37 0x080ac8c4 in typeinfo name for QMemArray<char> ()
#38 0x080ab252 in typeinfo name for QMemArray<char> ()
#39 0x080ab267 in typeinfo name for QMemArray<char> ()
#40 0x080ab238 in typeinfo name for QMemArray<char> ()
#41 0xb684ed9c in ?? () from /usr/lib/qt-3.3/lib/libqt-mt.so.3
#42 0x00017ef1 in ?? ()
#43 0x080e10f8 in ?? ()
#44 0x00000004 in ?? ()
#45 0x0000001d in ?? ()
#46 0xb632f780 in __after_morecore_hook () from //lib/tls/libc.so.6
#47 0xb6f21110 in vtable for QGArray () from /usr/lib/qt-3.3/lib/libqt-mt.so.3
#48 0x082c05a8 in ?? ()
#49 0xb62750f4 in mallopt () from //lib/tls/libc.so.6
#50 0xb6229ad3 in __libc_start_main () from //lib/tls/libc.so.6
#51 0x080688e1 in ?? ()
我用的是kdenetwork3.3.2里的kopete,而且是先装了kopete,然后再装qq插件的
回复

使用道具 举报

发表于 2004-12-14 19:16:04 | 显示全部楼层
我的kde版本为3.2.1,下载kdenetwork3.3.1后编译通不过。是否与我的kde版本有关?
回复

使用道具 举报

发表于 2004-12-14 20:13:35 | 显示全部楼层
换用kdenetwork3.3.1里的kpoete,可以运行 ,但是好友名单中中文全是????,
回复

使用道具 举报

发表于 2004-12-14 20:15:22 | 显示全部楼层
cjacker,给的qq包有点问题,我是修改过才编绎成功的
回复

使用道具 举报

 楼主| 发表于 2004-12-15 09:39:31 | 显示全部楼层
乱码问题跟我用的补过的Qt有关系,我的Qt是可以自动纠正乱码问题的。

所以我这里看不到乱码,你必须告诉我哪里有问题


至于crash的问题,我会看看。
回复

使用道具 举报

发表于 2004-12-15 10:24:12 | 显示全部楼层
qqinterface.cpp文件
164行
switch(eventCode)
  {
  case QQ_EXCEPTION_SEND_BYTES_WRONG:
    KMessageBox::messageBox((QWidget *) 0,KMessageBox::WarningYesNo, i18n("Exceptioin for
bytes sent"), i18n("Send Exception"));
    break;
  case QQ_CMD_KEEP_ALIVE:
    KMessageBox::messageBox((QWidget *) 0,KMessageBox::Information, i18n("lost connection
with server"), i18n("lost connection"));
    emit offlineOK();
    break;
  case QQ_CMD_SEND_IM:
    KMessageBox::messageBox((QWidget *) 0,KMessageBox::WarningYesNo, i18n("Send Message Fa
iled"), i18n("Send"));
    break;
  case QQ_CMD_GET_USER_INFO:
    KMessageBox::messageBox((QWidget *) 0,KMessageBox::Information, i18n("Can't get person
al details from server"),
                                                                    i18n(" getting pe
rsonal details"));
    break;
  case QQ_CMD_GET_FRIEND_LIST:
    KMessageBox::messageBox((QWidget *) 0,KMessageBox::Information, i18n("Can't get friend list from server"),
                                                                    i18n("getting friend list"));
    emit offlineOK();
    break;
  case QQ_CMD_CHANGE_STATUS:
    KMessageBox::messageBox((QWidget *) 0,KMessageBox::Information, i18n("Change status failed, no response from server"),
                                                                    i18n(""));
    break;
  }
编绎 的时候出错如上
后来我把其中多余的分行除去就可以了
switch(eventCode)
  {
  case QQ_EXCEPTION_SEND_BYTES_WRONG:
    KMessageBox::messageBox((QWidget *) 0,KMessageBox::WarningYesNo, i18n("Exceptioin for bytes sent"), i18n("Send Exception"));
    break;
  case QQ_CMD_KEEP_ALIVE:
    KMessageBox::messageBox((QWidget *) 0,KMessageBox::Information, i18n("lost connection with server"), i18n("lost connection"));
    emit offlineOK();
    break;
  case QQ_CMD_SEND_IM:
    KMessageBox::messageBox((QWidget *) 0,KMessageBox::WarningYesNo,18n("Send Message Failed"), i18n("Send"));
    break;
  case QQ_CMD_GET_USER_INFO:
    KMessageBox::messageBox((QWidget *) 0,KMessageBox::Information, i18n("Can'tget personal details from server"),i18n(" getting personal details"));
    break;
  case QQ_CMD_GET_FRIEND_LIST:
    KMessageBox::messageBox((QWidget *) 0,KMessageBox::Information, i18n("Can'tget friend list from server"), i18n("getting friend list"));
    emit offlineOK();
    break;
  case QQ_CMD_CHANGE_STATUS:
    KMessageBox::messageBox((QWidget *) 0,KMessageBox::Information, i18n("Change status failed, no response from server"),i18n(""));
    break;
  }
就可以了,我想这也应该与你打的那个qt patch有关
回复

使用道具 举报

发表于 2004-12-16 16:49:38 | 显示全部楼层
我用了一个只有7个好友的qq号A, 登录,收消息都没有问题, 只是发送按钮是disable的,怎么输入都不便颜色,按什么键都无法发送,不知如何发送消息。

然后我做了如下操作, 都crash了

1。 我登录号A(隐身), 然后登录B(有64个好友), 让A 上线, 然后就crash。
2。 我登录号B(隐身), 然后crash
3。 我登录号A(上线), 然后登录B(隐身), 然后crash

下面是操作3时crash(基本每次都是相同的内容)的回溯报告:
[code:1]
(no debugging symbols found)...Using host libthread_db library "/lib/libthread_db.so.1".
(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...[Thread debugging using libthread_db enabled]
[New Thread 16384 (LWP 12155)]
0x41c55fe8 in waitpid () from /lib/i686/libpthread.so.0
#0  0x41c55fe8 in waitpid () from /lib/i686/libpthread.so.0
#1  0x411200c4 in __JCR_LIST__ () from /usr/lib/libkdecore.so.4
#2  0x40ffcddf in KCrash::defaultCrashHandler(int) ()
   from /usr/lib/libkdecore.so.4
#3  0x41c54d66 in __pthread_sighandler () from /lib/i686/libpthread.so.0
#4  <signal handler called>
#5  0x400bdd96 in KopeteContact::onlineStatus() const ()
   from /usr/lib/libkopete.so.1
#6  0x438d8115 in QQAccount::ChangeFriendStatus(std::list<int, std::allocator<int> >, std::list<int, std::allocator<int> >, std::list<int, std::allocator<int> >, std::list<int, std::allocator<int> >) () from /usr/lib/kde3/kopete_qq.so
#7  0x438d913e in QQAccount::qt_invoke(int, QUObject*) ()
   from /usr/lib/kde3/kopete_qq.so
#8  0x41427cb0 in QObject::activate_signal(QConnectionList*, QUObject*) (
    this=0x82e01c8, clist=0xbfffee20, o=0xbfffee20) at qconnection.h:56
#9  0x438dc0d4 in QQ::FriendStatusChange(std::list<int, std::allocator<int> >, std::list<int, std::allocator<int> >, std::list<int, std::allocator<int> >, std::list<int, std::allocator<int> >) () from /usr/lib/kde3/kopete_qq.so
#10 0x438da9f4 in QQ::processGetFriendOnlineReply(GetFriendOnlineReplyPacket*)
    () from /usr/lib/kde3/kopete_qq.so
#11 0x438da440 in QQ::OnIncommingData(unsigned short) ()
   from /usr/lib/kde3/kopete_qq.so
#12 0x438dc188 in QQ::qt_invoke(int, QUObject*) ()
   from /usr/lib/kde3/kopete_qq.so
#13 0x41427cb0 in QObject::activate_signal(QConnectionList*, QUObject*) (
    this=0x82a0e40, clist=0xbffff090, o=0xbffff090) at qconnection.h:56
#14 0x43902fb7 in PacketManager::PacketArrived(unsigned short) ()
   from /usr/lib/kde3/kopete_qq.so
#15 0x438fda65 in PacketManager::OnIncommingData() ()
   from /usr/lib/kde3/kopete_qq.so
#16 0x439030f3 in PacketManager::qt_invoke(int, QUObject*) ()
   from /usr/lib/kde3/kopete_qq.so
#17 0x41427cb0 in QObject::activate_signal(QConnectionList*, QUObject*) (
    this=0x830dac0, clist=0xbffff1b0, o=0xbffff1b0) at qconnection.h:56
#18 0x41427e10 in QObject::activate_signal(int, int) (this=0x830dac0,
    signal=2, param=0) at kernel/qobject.cpp:2449
#19 0x41754ef2 in QSocketNotifier::activated(int) (this=0x0, t0=0)
    at qmetaobject.h:261
#20 0x41444180 in QSocketNotifier::event(QEvent*) (this=0x830dac0,
    e=0xbffff460) at kernel/qsocketnotifier.cpp:280
#21 0x413ccd85 in QApplication::internalNotify(QObject*, QEvent*) (this=0x0,
    receiver=0x830dac0, e=0xbffff460) at kernel/qapplication.cpp:2620
#22 0x413cc43b in QApplication::notify(QObject*, QEvent*) (this=0xbffff6e0,
    receiver=0x830dac0, e=0xbffff460) at kernel/qapplication.cpp:2359
#23 0x40f74d9f in KApplication::notify(QObject*, QEvent*) ()
   from /usr/lib/libkdecore.so.4
#24 0x413bc9ca in QEventLoop::activateSocketNotifiers() (this=0x8196ba0)
    at kernel/qeventloop_unix.cpp:581
#25 0x41376ed2 in QEventLoop::processEvents(unsigned) (this=0x8196ba0, flags=4)
    at kernel/qeventloop_x11.cpp:383
#26 0x413deb06 in QEventLoop::enterLoop() (this=0x8196ba0)
    at kernel/qeventloop.cpp:198
#27 0x413de9a8 in QEventLoop::exec() (this=0x8196ba0)
    at kernel/qeventloop.cpp:145
#28 0x413ccfd1 in QApplication::exec() (this=0xbffff6e0)
    at kernel/qapplication.cpp:2743
#29 0x08068e59 in main ()
[/code:1]


好像是得到好友列表时较容易崩溃
我的测试环境 红旗4.1,   kopete 0.9.0源码
回复

使用道具 举报

发表于 2004-12-16 16:56:49 | 显示全部楼层
果然与红旗打的哪个qt patch有关呀
回复

使用道具 举报

发表于 2004-12-16 19:17:06 | 显示全部楼层
做个补丁吧。
回复

使用道具 举报

发表于 2004-12-16 19:34:35 | 显示全部楼层
红旗4.1下怎么编译?我已下载了kdenetworks3.3.1,可老是不成功。谢谢
回复

使用道具 举报

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

本版积分规则

GMT+8, 2024-4-28 17:58 , Processed in 0.171220 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

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