cjacker 发表于 2004-12-13 09:20:09

QQ Plugin for Kopete TEST2 发布

位置:
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.

cjacker 发表于 2004-12-13 09:45:55

解释一下为什么不作IP显示。

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

这里的问题是:

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

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


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

awang202 发表于 2004-12-13 09:51:22

合适阿,我身边的人都是用显ip的版本,没有人用原版QQ得,都是用什么QQ外挂的

弄潮儿 发表于 2004-12-13 10:06:57

要怎样使用?
我现在用的LumaQQ经常出现收不到别人发的信息,一直不知要怎样解决,不知这个会不会好一点。

tingxx 发表于 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
make: Leaving directory `/home/huting/temp/kde/kdenetwork-3.3.2/kopete/protocols/qq'
make: *** 错误 1
$

tingxx 发表于 2004-12-14 18:12:03

装是装上了,但是只要qq上线,就会出错退出
回溯追踪显示
Using host libthread_db library "//lib/tls/libthread_db.so.1".

#70xb7f103c7 in KopeteContact::onlineStatus () from //usr/lib/libkopete.so.1
#80xb4fc74cc in QQAccount::qt_invoke () from /usr/lib/kde3/kopete_qq.so
#90xb6aa6f44 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::PacketArrived ()
   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插件的

kanven 发表于 2004-12-14 19:16:04

我的kde版本为3.2.1,下载kdenetwork3.3.1后编译通不过。是否与我的kde版本有关?

tingxx 发表于 2004-12-14 20:13:35

换用kdenetwork3.3.1里的kpoete,可以运行 ,但是好友名单中中文全是????,

tingxx 发表于 2004-12-14 20:15:22

cjacker,给的qq包有点问题,我是修改过才编绎成功的

cjacker 发表于 2004-12-15 09:39:31

乱码问题跟我用的补过的Qt有关系,我的Qt是可以自动纠正乱码问题的。

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


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

tingxx 发表于 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有关

yunfan 发表于 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(基本每次都是相同的内容)的回溯报告:

(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
#00x41c55fe8 in waitpid () from /lib/i686/libpthread.so.0
#10x411200c4 in __JCR_LIST__ () from /usr/lib/libkdecore.so.4
#20x40ffcddf in KCrash::defaultCrashHandler(int) ()
   from /usr/lib/libkdecore.so.4
#30x41c54d66 in __pthread_sighandler () from /lib/i686/libpthread.so.0
#4<signal handler called>
#50x400bdd96 in KopeteContact::onlineStatus() const ()
   from /usr/lib/libkopete.so.1
#60x438d8115 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
#70x438d913e in QQAccount::qt_invoke(int, QUObject*) ()
   from /usr/lib/kde3/kopete_qq.so
#80x41427cb0 in QObject::activate_signal(QConnectionList*, QUObject*) (
    this=0x82e01c8, clist=0xbfffee20, o=0xbfffee20) at qconnection.h:56
#90x438dc0d4 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 ()



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

tingxx 发表于 2004-12-16 16:56:49

果然与红旗打的哪个qt patch有关呀

baif 发表于 2004-12-16 19:17:06

做个补丁吧。

kanven 发表于 2004-12-16 19:34:35

红旗4.1下怎么编译?我已下载了kdenetworks3.3.1,可老是不成功。谢谢
页: [1] 2
查看完整版本: QQ Plugin for Kopete TEST2 发布