libpurple/protocols/qq/qq.c

Sat, 22 Mar 2008 04:45:46 +0000

author
Sadrul Habib Chowdhury <sadrul@pidgin.im>
date
Sat, 22 Mar 2008 04:45:46 +0000
branch
vv.ticket34
changeset 22648
e286d795c5f9
parent 22071
4c47e360e467
child 23707
480f94157418
permissions
-rw-r--r--

Patch from Marcus Lundblad ('mlundblad') to improve audio support in xmpp.
It's now possible to initiate an audio session, sometimes. It's somewhat
buggy.
Some other issues also need to be resolved:
* Properly get rid of the compile warnings
* Rename the serv_ functions with proper namespacing.
* Possibly rename the purple_media_ functions that don't deal with a
PurpleMedia (e.g. purple_media_audio_init_src) to something different,
e.g. purple_media_util_, or even purple_gst_util etc.

References #34.

13932
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
1 /**
15087
78879d4adf13 [gaim-migrate @ 17807]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents: 14919
diff changeset
2 * @file qq.c
13932
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
3 *
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15592
diff changeset
4 * purple
13932
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
5 *
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15592
diff changeset
6 * Purple is the legal property of its developers, whose names are too numerous
15087
78879d4adf13 [gaim-migrate @ 17807]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents: 14919
diff changeset
7 * to list here. Please refer to the COPYRIGHT file distributed with this
78879d4adf13 [gaim-migrate @ 17807]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents: 14919
diff changeset
8 * source distribution.
13932
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
9 *
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
10 * This program is free software; you can redistribute it and/or modify
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
11 * it under the terms of the GNU General Public License as published by
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
12 * the Free Software Foundation; either version 2 of the License, or
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
13 * (at your option) any later version.
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
14 *
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
15 * This program is distributed in the hope that it will be useful,
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
18 * GNU General Public License for more details.
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
19 *
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
20 * You should have received a copy of the GNU General Public License
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
21 * along with this program; if not, write to the Free Software
19859
71d37b57eff2 The FSF changed its address a while ago; our files were out of date.
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 19098
diff changeset
22 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
13932
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
23 */
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
24
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
25 #include "internal.h"
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
26
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
27 #ifdef _WIN32
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
28 #define random rand
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
29 #endif
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
30
14083
2b68bb18a66c [gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents: 14079
diff changeset
31 #include "accountopt.h"
13932
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
32 #include "debug.h"
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
33 #include "notify.h"
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
34 #include "prefs.h"
14083
2b68bb18a66c [gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents: 14079
diff changeset
35 #include "prpl.h"
13932
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
36 #include "request.h"
14114
5dedb32aaa35 [gaim-migrate @ 16665]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents: 14113
diff changeset
37 #include "roomlist.h"
13932
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
38 #include "server.h"
14083
2b68bb18a66c [gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents: 14079
diff changeset
39 #include "util.h"
13932
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
40
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
41 #include "buddy_info.h"
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
42 #include "buddy_opt.h"
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
43 #include "buddy_status.h"
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
44 #include "char_conv.h"
14299
28dd8ab08304 [gaim-migrate @ 16919]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents: 14257
diff changeset
45 #include "crypt.h"
14083
2b68bb18a66c [gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents: 14079
diff changeset
46 #include "group.h"
2b68bb18a66c [gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents: 14079
diff changeset
47 #include "group_find.h"
2b68bb18a66c [gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents: 14079
diff changeset
48 #include "group_im.h"
2b68bb18a66c [gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents: 14079
diff changeset
49 #include "group_info.h"
2b68bb18a66c [gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents: 14079
diff changeset
50 #include "group_join.h"
2b68bb18a66c [gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents: 14079
diff changeset
51 #include "group_opt.h"
2b68bb18a66c [gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents: 14079
diff changeset
52 #include "header_info.h"
13932
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
53 #include "im.h"
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
54 #include "keep_alive.h"
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
55 #include "login_logout.h"
14083
2b68bb18a66c [gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents: 14079
diff changeset
56 #include "packet_parse.h"
2b68bb18a66c [gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents: 14079
diff changeset
57 #include "qq.h"
2b68bb18a66c [gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents: 14079
diff changeset
58 #include "qq_proxy.h"
13932
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
59 #include "send_core.h"
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
60 #include "send_file.h"
14083
2b68bb18a66c [gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents: 14079
diff changeset
61 #include "utils.h"
13932
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
62 #include "version.h"
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
63
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
64 #define OPENQ_AUTHOR "Puzzlebird"
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
65 #define OPENQ_WEBSITE "http://openq.sourceforge.net"
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
66 #define QQ_TCP_QUERY_PORT "8000"
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
67 #define QQ_UDP_PORT "8000"
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
68
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
69 const gchar *udp_server_list[] = {
14257
6510563c1ee9 [gaim-migrate @ 16867]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents: 14254
diff changeset
70 "sz.tencent.com",
6510563c1ee9 [gaim-migrate @ 16867]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents: 14254
diff changeset
71 "sz2.tencent.com",
6510563c1ee9 [gaim-migrate @ 16867]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents: 14254
diff changeset
72 "sz3.tencent.com",
6510563c1ee9 [gaim-migrate @ 16867]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents: 14254
diff changeset
73 "sz4.tencent.com",
6510563c1ee9 [gaim-migrate @ 16867]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents: 14254
diff changeset
74 "sz5.tencent.com",
6510563c1ee9 [gaim-migrate @ 16867]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents: 14254
diff changeset
75 "sz6.tencent.com",
6510563c1ee9 [gaim-migrate @ 16867]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents: 14254
diff changeset
76 "sz7.tencent.com",
6510563c1ee9 [gaim-migrate @ 16867]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents: 14254
diff changeset
77 "sz8.tencent.com",
6510563c1ee9 [gaim-migrate @ 16867]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents: 14254
diff changeset
78 "sz9.tencent.com"
13932
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
79 };
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
80 const gint udp_server_amount = (sizeof(udp_server_list) / sizeof(udp_server_list[0]));
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
81
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
82
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
83 const gchar *tcp_server_list[] = {
14257
6510563c1ee9 [gaim-migrate @ 16867]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents: 14254
diff changeset
84 "tcpconn.tencent.com",
6510563c1ee9 [gaim-migrate @ 16867]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents: 14254
diff changeset
85 "tcpconn2.tencent.com",
6510563c1ee9 [gaim-migrate @ 16867]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents: 14254
diff changeset
86 "tcpconn3.tencent.com",
6510563c1ee9 [gaim-migrate @ 16867]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents: 14254
diff changeset
87 "tcpconn4.tencent.com",
6510563c1ee9 [gaim-migrate @ 16867]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents: 14254
diff changeset
88 "tcpconn5.tencent.com",
6510563c1ee9 [gaim-migrate @ 16867]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents: 14254
diff changeset
89 "tcpconn6.tencent.com"
13932
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
90 };
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
91 const gint tcp_server_amount = (sizeof(tcp_server_list) / sizeof(tcp_server_list[0]));
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
92
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15592
diff changeset
93 static void _qq_login(PurpleAccount *account)
13932
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
94 {
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
95 const gchar *qq_server, *qq_port;
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
96 qq_data *qd;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15592
diff changeset
97 PurpleConnection *gc;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15592
diff changeset
98 PurplePresence *presence;
14380
468fb688f04f [gaim-migrate @ 17011]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents: 14348
diff changeset
99 gboolean use_tcp;
13932
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
100
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
101 g_return_if_fail(account != NULL);
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
102
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15592
diff changeset
103 gc = purple_account_get_connection(account);
13932
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
104 g_return_if_fail(gc != NULL);
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
105
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15592
diff changeset
106 gc->flags |= PURPLE_CONNECTION_HTML | PURPLE_CONNECTION_NO_BGCOLOR | PURPLE_CONNECTION_AUTO_RESP;
13932
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
107
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
108 qd = g_new0(qq_data, 1);
14257
6510563c1ee9 [gaim-migrate @ 16867]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents: 14254
diff changeset
109 qd->gc = gc;
13932
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
110 gc->proto_data = qd;
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
111
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15592
diff changeset
112 qq_server = purple_account_get_string(account, "server", NULL);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15592
diff changeset
113 qq_port = purple_account_get_string(account, "port", NULL);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15592
diff changeset
114 use_tcp = purple_account_get_bool(account, "use_tcp", FALSE);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15592
diff changeset
115 presence = purple_account_get_presence(account);
13932
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
116
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
117 qd->use_tcp = use_tcp;
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
118
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15592
diff changeset
119 if(purple_presence_is_status_primitive_active(presence, PURPLE_STATUS_INVISIBLE)) {
13932
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
120 qd->login_mode = QQ_LOGIN_MODE_HIDDEN;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15592
diff changeset
121 } else if(purple_presence_is_status_primitive_active(presence, PURPLE_STATUS_AWAY)
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15592
diff changeset
122 || purple_presence_is_status_primitive_active(presence, PURPLE_STATUS_EXTENDED_AWAY)) {
14380
468fb688f04f [gaim-migrate @ 17011]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents: 14348
diff changeset
123 qd->login_mode = QQ_LOGIN_MODE_AWAY;
14083
2b68bb18a66c [gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents: 14079
diff changeset
124 } else {
13932
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
125 qd->login_mode = QQ_LOGIN_MODE_NORMAL;
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
126 }
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
127
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
128 if (qq_server == NULL || strlen(qq_server) == 0)
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
129 qq_server = use_tcp ?
15137
28f227957781 [gaim-migrate @ 17859]
Daniel Atallah <datallah@pidgin.im>
parents: 15134
diff changeset
130 tcp_server_list[random() % tcp_server_amount] :
14257
6510563c1ee9 [gaim-migrate @ 16867]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents: 14254
diff changeset
131 udp_server_list[random() % udp_server_amount];
13932
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
132
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
133 if (qq_port == NULL || strtol(qq_port, NULL, 10) == 0)
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
134 qq_port = use_tcp ? QQ_TCP_QUERY_PORT : QQ_UDP_PORT;
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
135
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15592
diff changeset
136 purple_connection_update_progress(gc, _("Connecting"), 0, QQ_CONNECT_STEPS);
15137
28f227957781 [gaim-migrate @ 17859]
Daniel Atallah <datallah@pidgin.im>
parents: 15134
diff changeset
137
13932
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
138 if (qq_connect(account, qq_server, strtol(qq_port, NULL, 10), use_tcp, FALSE) < 0)
21279
40685e1f50ca Rename:
Will Thompson <resiak@pidgin.im>
parents: 20453
diff changeset
139 purple_connection_error_reason(gc, PURPLE_CONNECTION_ERROR_NETWORK_ERROR,
20453
ca530c968a1b Add disconnection reasons to qq.
Will Thompson <resiak@pidgin.im>
parents: 19859
diff changeset
140 _("Unable to connect."));
13932
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
141 }
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
142
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
143 /* directly goes for qq_disconnect */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15592
diff changeset
144 static void _qq_close(PurpleConnection *gc)
13932
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
145 {
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
146 g_return_if_fail(gc != NULL);
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
147 qq_disconnect(gc);
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
148 }
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
149
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
150 /* returns the icon name for a buddy or protocol */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15592
diff changeset
151 static const gchar *_qq_list_icon(PurpleAccount *a, PurpleBuddy *b)
13932
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
152 {
15133
9d5bbb9f8248 [gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents: 15087
diff changeset
153 return "qq";
13932
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
154 }
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
155
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
156
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
157 /* a short status text beside buddy icon*/
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15592
diff changeset
158 static gchar *_qq_status_text(PurpleBuddy *b)
13932
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
159 {
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
160 qq_buddy *q_bud;
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
161 GString *status;
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
162
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
163 q_bud = (qq_buddy *) b->proto_data;
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
164 if (q_bud == NULL)
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
165 return NULL;
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
166
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
167 status = g_string_new("");
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
168
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
169 switch(q_bud->status) {
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
170 case QQ_BUDDY_OFFLINE:
15202
bba46d1374d0 [gaim-migrate @ 17926]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents: 15200
diff changeset
171 g_string_append(status, _("Offline"));
13932
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
172 break;
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
173 case QQ_BUDDY_ONLINE_NORMAL:
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
174 return NULL;
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
175 break;
14330
f81629246c27 [gaim-migrate @ 16950]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents: 14327
diff changeset
176 /* TODO What does this status mean? Labelling it as offline... */
13932
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
177 case QQ_BUDDY_ONLINE_OFFLINE:
15202
bba46d1374d0 [gaim-migrate @ 17926]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents: 15200
diff changeset
178 g_string_append(status, _("Offline"));
13932
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
179 break;
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
180 case QQ_BUDDY_ONLINE_AWAY:
15202
bba46d1374d0 [gaim-migrate @ 17926]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents: 15200
diff changeset
181 g_string_append(status, _("Away"));
13932
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
182 break;
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
183 case QQ_BUDDY_ONLINE_INVISIBLE:
15202
bba46d1374d0 [gaim-migrate @ 17926]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents: 15200
diff changeset
184 g_string_append(status, _("Invisible"));
13932
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
185 break;
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
186 default:
15202
bba46d1374d0 [gaim-migrate @ 17926]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents: 15200
diff changeset
187 g_string_printf(status, _("Unknown-%d"), q_bud->status);
15137
28f227957781 [gaim-migrate @ 17859]
Daniel Atallah <datallah@pidgin.im>
parents: 15134
diff changeset
188 }
13932
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
189
14559
78092ceb0bc3 [gaim-migrate @ 17216]
Daniel Atallah <datallah@pidgin.im>
parents: 14466
diff changeset
190 return g_string_free(status, FALSE);
13932
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
191 }
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
192
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
193
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
194 /* a floating text when mouse is on the icon, show connection status here */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15592
diff changeset
195 static void _qq_tooltip_text(PurpleBuddy *b, PurpleNotifyUserInfo *user_info, gboolean full)
13932
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
196 {
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
197 qq_buddy *q_bud;
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
198 gchar *ip_str;
19098
a2e75786ddb3 Fix a compile warning
Mark Doliner <markdoliner@pidgin.im>
parents: 19097
diff changeset
199 char *tmp;
a2e75786ddb3 Fix a compile warning
Mark Doliner <markdoliner@pidgin.im>
parents: 19097
diff changeset
200 const char *tmp2;
13932
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
201
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
202 g_return_if_fail(b != NULL);
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
203
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
204 q_bud = (qq_buddy *) b->proto_data;
14330
f81629246c27 [gaim-migrate @ 16950]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents: 14327
diff changeset
205 g_return_if_fail(q_bud != NULL);
13932
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
206
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15592
diff changeset
207 if (PURPLE_BUDDY_IS_ONLINE(b) && q_bud != NULL)
13932
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
208 {
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
209 ip_str = gen_ip_str(q_bud->ip);
14051
6bc807df2a0a [gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents: 13932
diff changeset
210 if (strlen(ip_str) != 0) {
19097
9f5b720e73bc Improve a bunch of strings in QQ
Mark Doliner <markdoliner@pidgin.im>
parents: 18992
diff changeset
211 if (q_bud->comm_flag & QQ_COMM_FLAG_TCP_MODE)
19098
a2e75786ddb3 Fix a compile warning
Mark Doliner <markdoliner@pidgin.im>
parents: 19097
diff changeset
212 tmp2 = _("TCP Address");
19097
9f5b720e73bc Improve a bunch of strings in QQ
Mark Doliner <markdoliner@pidgin.im>
parents: 18992
diff changeset
213 else
19098
a2e75786ddb3 Fix a compile warning
Mark Doliner <markdoliner@pidgin.im>
parents: 19097
diff changeset
214 tmp2 = _("UDP Address");
a2e75786ddb3 Fix a compile warning
Mark Doliner <markdoliner@pidgin.im>
parents: 19097
diff changeset
215 tmp = g_strdup_printf("%s:%d", ip_str, q_bud->port);
a2e75786ddb3 Fix a compile warning
Mark Doliner <markdoliner@pidgin.im>
parents: 19097
diff changeset
216 purple_notify_user_info_add_pair(user_info, tmp2, tmp);
a2e75786ddb3 Fix a compile warning
Mark Doliner <markdoliner@pidgin.im>
parents: 19097
diff changeset
217 g_free(tmp);
14051
6bc807df2a0a [gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents: 13932
diff changeset
218 }
13932
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
219 g_free(ip_str);
15205
f642029b2f97 [gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents: 15202
diff changeset
220
f642029b2f97 [gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents: 15202
diff changeset
221 tmp = g_strdup_printf("%d", q_bud->age);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15592
diff changeset
222 purple_notify_user_info_add_pair(user_info, _("Age"), tmp);
15205
f642029b2f97 [gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents: 15202
diff changeset
223 g_free(tmp);
f642029b2f97 [gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents: 15202
diff changeset
224
15137
28f227957781 [gaim-migrate @ 17859]
Daniel Atallah <datallah@pidgin.im>
parents: 15134
diff changeset
225 switch (q_bud->gender) {
28f227957781 [gaim-migrate @ 17859]
Daniel Atallah <datallah@pidgin.im>
parents: 15134
diff changeset
226 case QQ_BUDDY_GENDER_GG:
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15592
diff changeset
227 purple_notify_user_info_add_pair(user_info, _("Gender"), _("Male"));
15137
28f227957781 [gaim-migrate @ 17859]
Daniel Atallah <datallah@pidgin.im>
parents: 15134
diff changeset
228 break;
28f227957781 [gaim-migrate @ 17859]
Daniel Atallah <datallah@pidgin.im>
parents: 15134
diff changeset
229 case QQ_BUDDY_GENDER_MM:
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15592
diff changeset
230 purple_notify_user_info_add_pair(user_info, _("Gender"), _("Female"));
15137
28f227957781 [gaim-migrate @ 17859]
Daniel Atallah <datallah@pidgin.im>
parents: 15134
diff changeset
231 break;
28f227957781 [gaim-migrate @ 17859]
Daniel Atallah <datallah@pidgin.im>
parents: 15134
diff changeset
232 case QQ_BUDDY_GENDER_UNKNOWN:
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15592
diff changeset
233 purple_notify_user_info_add_pair(user_info, _("Gender"), _("Unknown"));
15137
28f227957781 [gaim-migrate @ 17859]
Daniel Atallah <datallah@pidgin.im>
parents: 15134
diff changeset
234 break;
28f227957781 [gaim-migrate @ 17859]
Daniel Atallah <datallah@pidgin.im>
parents: 15134
diff changeset
235 default:
15205
f642029b2f97 [gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents: 15202
diff changeset
236 tmp = g_strdup_printf("Error (%d)", q_bud->gender);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15592
diff changeset
237 purple_notify_user_info_add_pair(user_info, _("Gender"), tmp);
15205
f642029b2f97 [gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents: 15202
diff changeset
238 g_free(tmp);
15137
28f227957781 [gaim-migrate @ 17859]
Daniel Atallah <datallah@pidgin.im>
parents: 15134
diff changeset
239 }
15205
f642029b2f97 [gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents: 15202
diff changeset
240
f642029b2f97 [gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents: 15202
diff changeset
241 if (q_bud->level) {
f642029b2f97 [gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents: 15202
diff changeset
242 tmp = g_strdup_printf("%d", q_bud->level);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15592
diff changeset
243 purple_notify_user_info_add_pair(user_info, _("Level"), tmp);
19097
9f5b720e73bc Improve a bunch of strings in QQ
Mark Doliner <markdoliner@pidgin.im>
parents: 18992
diff changeset
244 g_free(tmp);
15205
f642029b2f97 [gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents: 15202
diff changeset
245 }
14330
f81629246c27 [gaim-migrate @ 16950]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents: 14327
diff changeset
246 /* For debugging */
f81629246c27 [gaim-migrate @ 16950]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents: 14327
diff changeset
247 /*
13932
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
248 g_string_append_printf(tooltip, "\n<b>Flag:</b> %01x", q_bud->flag1);
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
249 g_string_append_printf(tooltip, "\n<b>CommFlag:</b> %01x", q_bud->comm_flag);
15137
28f227957781 [gaim-migrate @ 17859]
Daniel Atallah <datallah@pidgin.im>
parents: 15134
diff changeset
250 g_string_append_printf(tooltip, "\n<b>Client:</b> %04x", q_bud->client_version);
14330
f81629246c27 [gaim-migrate @ 16950]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents: 14327
diff changeset
251 */
13932
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
252 }
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
253 }
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
254
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
255 /* we can show tiny icons on the four corners of buddy icon, */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15592
diff changeset
256 static const char *_qq_list_emblem(PurpleBuddy *b)
14083
2b68bb18a66c [gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents: 14079
diff changeset
257 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15592
diff changeset
258 /* each char** are refering to a filename in pixmaps/purple/status/default/ */
13932
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
259
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
260 qq_buddy *q_bud = b->proto_data;
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
261
15524
8f365f9bf660 Emblems in the blist
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
262 if (q_bud) {
13932
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
263 if (q_bud->comm_flag & QQ_COMM_FLAG_QQ_MEMBER)
15524
8f365f9bf660 Emblems in the blist
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
264 return "qq_member";
15134
a77e82cc9285 [gaim-migrate @ 17856]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents: 15133
diff changeset
265 /*
13932
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
266 if (q_bud->comm_flag & QQ_COMM_FLAG_VIDEO)
15524
8f365f9bf660 Emblems in the blist
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
267 return "video";
15134
a77e82cc9285 [gaim-migrate @ 17856]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents: 15133
diff changeset
268 */
15137
28f227957781 [gaim-migrate @ 17859]
Daniel Atallah <datallah@pidgin.im>
parents: 15134
diff changeset
269 }
13932
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
270
15524
8f365f9bf660 Emblems in the blist
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
271 return NULL;
13932
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
272 }
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
273
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
274 /* QQ away status (used to initiate QQ away packet) */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15592
diff changeset
275 static GList *_qq_away_states(PurpleAccount *ga)
13932
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
276 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15592
diff changeset
277 PurpleStatusType *status;
13932
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
278 GList *types = NULL;
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
279
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15592
diff changeset
280 status = purple_status_type_new_full(PURPLE_STATUS_AVAILABLE,
19097
9f5b720e73bc Improve a bunch of strings in QQ
Mark Doliner <markdoliner@pidgin.im>
parents: 18992
diff changeset
281 "available", _("Available"), FALSE, TRUE, FALSE);
13932
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
282 types = g_list_append(types, status);
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
283
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15592
diff changeset
284 status = purple_status_type_new_full(PURPLE_STATUS_AWAY,
19097
9f5b720e73bc Improve a bunch of strings in QQ
Mark Doliner <markdoliner@pidgin.im>
parents: 18992
diff changeset
285 "away", _("Away"), FALSE, TRUE, FALSE);
15137
28f227957781 [gaim-migrate @ 17859]
Daniel Atallah <datallah@pidgin.im>
parents: 15134
diff changeset
286 types = g_list_append(types, status);
13932
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
287
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15592
diff changeset
288 status = purple_status_type_new_full(PURPLE_STATUS_INVISIBLE,
19097
9f5b720e73bc Improve a bunch of strings in QQ
Mark Doliner <markdoliner@pidgin.im>
parents: 18992
diff changeset
289 "invisible", _("Invisible"), FALSE, TRUE, FALSE);
15137
28f227957781 [gaim-migrate @ 17859]
Daniel Atallah <datallah@pidgin.im>
parents: 15134
diff changeset
290 types = g_list_append(types, status);
13932
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
291
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15592
diff changeset
292 status = purple_status_type_new_full(PURPLE_STATUS_OFFLINE,
19097
9f5b720e73bc Improve a bunch of strings in QQ
Mark Doliner <markdoliner@pidgin.im>
parents: 18992
diff changeset
293 "offline", _("Offline"), FALSE, TRUE, FALSE);
15137
28f227957781 [gaim-migrate @ 17859]
Daniel Atallah <datallah@pidgin.im>
parents: 15134
diff changeset
294 types = g_list_append(types, status);
13932
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
295
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15592
diff changeset
296 status = purple_status_type_new_full(PURPLE_STATUS_MOBILE,
15592
fb4f996cef96 I think this is proper mobile support for QQ. Mark, do you want to check that out?
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
297 "mobile", NULL, FALSE, FALSE, TRUE);
fb4f996cef96 I think this is proper mobile support for QQ. Mark, do you want to check that out?
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
298 types = g_list_append(types, status);
fb4f996cef96 I think this is proper mobile support for QQ. Mark, do you want to check that out?
Sean Egan <seanegan@pidgin.im>
parents: 15524
diff changeset
299
13932
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
300 return types;
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
301 }
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
302
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
303 /* initiate QQ away with proper change_status packet */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15592
diff changeset
304 static void _qq_set_away(PurpleAccount *account, PurpleStatus *status)
13932
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
305 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15592
diff changeset
306 PurpleConnection *gc = purple_account_get_connection(account);
13932
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
307
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
308 qq_send_packet_change_status(gc);
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
309 }
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
310
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15592
diff changeset
311 /* IMPORTANT: PurpleConvImFlags -> PurpleMessageFlags */
14083
2b68bb18a66c [gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents: 14079
diff changeset
312 /* send an instant msg to a buddy */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15592
diff changeset
313 static gint _qq_send_im(PurpleConnection *gc, const gchar *who, const gchar *message, PurpleMessageFlags flags)
13932
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
314 {
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
315 gint type, to_uid;
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
316 gchar *msg, *msg_with_qq_smiley;
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
317 qq_data *qd;
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
318
14691
efb5fd0a34b7 [gaim-migrate @ 17375]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents: 14604
diff changeset
319 g_return_val_if_fail(who != NULL, -1);
13932
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
320
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
321 qd = (qq_data *) gc->proto_data;
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
322
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
323 g_return_val_if_fail(strlen(message) <= QQ_MSG_IM_MAX, -E2BIG);
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
324
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15592
diff changeset
325 type = (flags == PURPLE_MESSAGE_AUTO_RESP ? QQ_IM_AUTO_REPLY : QQ_IM_TEXT);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15592
diff changeset
326 to_uid = purple_name_to_uid(who);
13932
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
327
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
328 /* if msg is to myself, bypass the network */
14083
2b68bb18a66c [gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents: 14079
diff changeset
329 if (to_uid == qd->uid) {
13932
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
330 serv_got_im(gc, who, message, flags, time(NULL));
14083
2b68bb18a66c [gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents: 14079
diff changeset
331 } else {
13932
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
332 msg = utf8_to_qq(message, QQ_CHARSET_DEFAULT);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15592
diff changeset
333 msg_with_qq_smiley = purple_smiley_to_qq(msg);
13932
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
334 qq_send_packet_im(gc, to_uid, msg_with_qq_smiley, type);
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
335 g_free(msg);
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
336 g_free(msg_with_qq_smiley);
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
337 }
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
338
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
339 return 1;
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
340 }
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
341
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
342 /* send a chat msg to a QQ Qun */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15592
diff changeset
343 static int _qq_chat_send(PurpleConnection *gc, int channel, const char *message, PurpleMessageFlags flags)
13932
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
344 {
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
345 gchar *msg, *msg_with_qq_smiley;
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
346 qq_group *group;
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
347
14691
efb5fd0a34b7 [gaim-migrate @ 17375]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents: 14604
diff changeset
348 g_return_val_if_fail(message != NULL, -1);
13932
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
349 g_return_val_if_fail(strlen(message) <= QQ_MSG_IM_MAX, -E2BIG);
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
350
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
351 group = qq_group_find_by_channel(gc, channel);
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
352 g_return_val_if_fail(group != NULL, -1);
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
353
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
354 msg = utf8_to_qq(message, QQ_CHARSET_DEFAULT);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15592
diff changeset
355 msg_with_qq_smiley = purple_smiley_to_qq(msg);
13932
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
356 qq_send_packet_group_im(gc, group, msg_with_qq_smiley);
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
357 g_free(msg);
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
358 g_free(msg_with_qq_smiley);
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
359
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
360 return 1;
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
361 }
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
362
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
363 /* send packet to get who's detailed information */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15592
diff changeset
364 static void _qq_get_info(PurpleConnection *gc, const gchar *who)
13932
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
365 {
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
366 guint32 uid;
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
367 qq_data *qd;
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
368
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
369 qd = gc->proto_data;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15592
diff changeset
370 uid = purple_name_to_uid(who);
13932
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
371
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
372 if (uid <= 0) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15592
diff changeset
373 purple_debug(PURPLE_DEBUG_ERROR, "QQ", "Not valid QQid: %s\n", who);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15592
diff changeset
374 purple_notify_error(gc, NULL, _("Invalid name"), NULL);
13932
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
375 return;
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
376 }
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
377
15200
a28a70a4e7ce [gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents: 15185
diff changeset
378 qq_send_packet_get_level(gc, uid);
14051
6bc807df2a0a [gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents: 13932
diff changeset
379 qq_send_packet_get_info(gc, uid, TRUE);
13932
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
380 }
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
381
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
382 /* get my own information */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15592
diff changeset
383 static void _qq_menu_modify_my_info(PurplePluginAction *action)
13932
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
384 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15592
diff changeset
385 PurpleConnection *gc = (PurpleConnection *) action->context;
13932
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
386 qq_data *qd;
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
387
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
388 qd = (qq_data *) gc->proto_data;
14051
6bc807df2a0a [gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents: 13932
diff changeset
389 qq_prepare_modify_info(gc);
13932
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
390 }
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
391
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15592
diff changeset
392 static void _qq_menu_change_password(PurplePluginAction *action)
14076
ac77316596dc [gaim-migrate @ 16606]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents: 14051
diff changeset
393 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15592
diff changeset
394 purple_notify_uri(NULL, "https://password.qq.com");
14076
ac77316596dc [gaim-migrate @ 16606]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents: 14051
diff changeset
395 }
ac77316596dc [gaim-migrate @ 16606]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents: 14051
diff changeset
396
13932
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
397 /* remove a buddy from my list and remove myself from his list */
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
398 /* TODO: re-enable this
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15592
diff changeset
399 static void _qq_menu_block_buddy(PurpleBlistNode * node)
13932
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
400 {
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
401 guint32 uid;
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
402 gc_and_uid *g;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15592
diff changeset
403 PurpleBuddy *buddy;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15592
diff changeset
404 PurpleConnection *gc;
13932
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
405 const gchar *who;
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
406
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15592
diff changeset
407 g_return_if_fail(PURPLE_BLIST_NODE_IS_BUDDY(node));
13932
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
408
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15592
diff changeset
409 buddy = (PurpleBuddy *) node;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15592
diff changeset
410 gc = purple_account_get_connection(buddy->account);
13932
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
411 who = buddy->name;
14691
efb5fd0a34b7 [gaim-migrate @ 17375]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents: 14604
diff changeset
412 g_return_if_fail(who != NULL);
13932
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
413
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15592
diff changeset
414 uid = purple_name_to_uid(who);
13932
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
415 g_return_if_fail(uid > 0);
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
416
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
417 g = g_new0(gc_and_uid, 1);
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
418 g->gc = gc;
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
419 g->uid = uid;
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
420
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15592
diff changeset
421 purple_request_action(gc, _("Block Buddy"),
19097
9f5b720e73bc Improve a bunch of strings in QQ
Mark Doliner <markdoliner@pidgin.im>
parents: 18992
diff changeset
422 _("Are you sure you want to block this buddy?"), NULL,
13932
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
423 1, g, 2,
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
424 _("Cancel"),
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
425 G_CALLBACK(qq_do_nothing_with_gc_and_uid),
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
426 _("Block"), G_CALLBACK(qq_block_buddy_with_gc_and_uid));
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
427 }
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
428 */
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
429
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
430 /* show a brief summary of what we get from login packet */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15592
diff changeset
431 static void _qq_menu_show_login_info(PurplePluginAction *action)
13932
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
432 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15592
diff changeset
433 PurpleConnection *gc = (PurpleConnection *) action->context;
13932
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
434 qq_data *qd;
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
435 GString *info;
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
436
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
437 qd = (qq_data *) gc->proto_data;
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
438 info = g_string_new("<html><body>\n");
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
439
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
440 g_string_append_printf(info, _("<b>Current Online</b>: %d<br>\n"), qd->all_online);
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
441 g_string_append_printf(info, _("<b>Last Refresh</b>: %s<br>\n"), ctime(&qd->last_get_online));
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
442
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
443 g_string_append(info, "<hr>\n");
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
444
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
445 g_string_append_printf(info, _("<b>Connection Mode</b>: %s<br>\n"), qd->use_tcp ? "TCP" : "UDP");
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
446 g_string_append_printf(info, _("<b>Server IP</b>: %s: %d<br>\n"), qd->server_ip, qd->server_port);
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
447 g_string_append_printf(info, _("<b>My Public IP</b>: %s<br>\n"), qd->my_ip);
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
448
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
449 g_string_append(info, "<hr>\n");
15133
9d5bbb9f8248 [gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents: 15087
diff changeset
450 g_string_append(info, "<i>Information below may not be accurate</i><br>\n");
13932
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
451
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
452 g_string_append_printf(info, _("<b>Login Time</b>: %s<br>\n"), ctime(&qd->login_time));
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
453 g_string_append_printf(info, _("<b>Last Login IP</b>: %s<br>\n"), qd->last_login_ip);
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
454 g_string_append_printf(info, _("<b>Last Login Time</b>: %s\n"), ctime(&qd->last_login_time));
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
455
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
456 g_string_append(info, "</body></html>");
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
457
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15592
diff changeset
458 purple_notify_formatted(gc, NULL, _("Login Information"), NULL, info->str, NULL, NULL);
13932
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
459
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
460 g_string_free(info, TRUE);
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
461 }
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
462
14304
1b119ac26ec3 [gaim-migrate @ 16924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents: 14299
diff changeset
463 /*
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15592
diff changeset
464 static void _qq_menu_search_or_add_permanent_group(PurplePluginAction *action)
13932
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
465 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15592
diff changeset
466 purple_roomlist_show_with_account(NULL);
13932
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
467 }
14304
1b119ac26ec3 [gaim-migrate @ 16924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents: 14299
diff changeset
468 */
13932
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
469
14051
6bc807df2a0a [gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents: 13932
diff changeset
470 /*
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15592
diff changeset
471 static void _qq_menu_create_permanent_group(PurplePluginAction * action)
13932
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
472 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15592
diff changeset
473 PurpleConnection *gc = (PurpleConnection *) action->context;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15592
diff changeset
474 purple_request_input(gc, _("Create QQ Qun"),
13932
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
475 _("Input Qun name here"),
19097
9f5b720e73bc Improve a bunch of strings in QQ
Mark Doliner <markdoliner@pidgin.im>
parents: 18992
diff changeset
476 _("Only QQ members can create permanent Qun"),
13932
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
477 "OpenQ", FALSE, FALSE, NULL,
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
478 _("Create"), G_CALLBACK(qq_group_create_with_name), _("Cancel"), NULL, gc);
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
479 }
14051
6bc807df2a0a [gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents: 13932
diff changeset
480 */
13932
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
481
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15592
diff changeset
482 static void _qq_menu_unsubscribe_group(PurpleBlistNode * node)
13932
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
483 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15592
diff changeset
484 PurpleChat *chat = (PurpleChat *)node;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15592
diff changeset
485 PurpleConnection *gc = purple_account_get_connection(chat->account);
13932
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
486 GHashTable *components = chat -> components;
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
487
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15592
diff changeset
488 g_return_if_fail(PURPLE_BLIST_NODE_IS_CHAT(node));
13932
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
489
14691
efb5fd0a34b7 [gaim-migrate @ 17375]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents: 14604
diff changeset
490 g_return_if_fail(components != NULL);
13932
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
491 qq_group_exit(gc, components);
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
492 }
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
493
14466
4fcd9fdc8060 [gaim-migrate @ 17112]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents: 14382
diff changeset
494 /*
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15592
diff changeset
495 static void _qq_menu_manage_group(PurpleBlistNode * node)
13932
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
496 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15592
diff changeset
497 PurpleChat *chat = (PurpleChat *)node;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15592
diff changeset
498 PurpleConnection *gc = purple_account_get_connection(chat->account);
13932
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
499 GHashTable *components = chat -> components;
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
500
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15592
diff changeset
501 g_return_if_fail(PURPLE_BLIST_NODE_IS_CHAT(node));
13932
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
502
14691
efb5fd0a34b7 [gaim-migrate @ 17375]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents: 14604
diff changeset
503 g_return_if_fail(components != NULL);
13932
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
504 qq_group_manage_group(gc, components);
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
505 }
14051
6bc807df2a0a [gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents: 13932
diff changeset
506 */
13932
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
507
16413
7fae6f309bd7 Death to // comments.
Richard Laager <rlaager@pidgin.im>
parents: 15884
diff changeset
508 #if 0
7fae6f309bd7 Death to // comments.
Richard Laager <rlaager@pidgin.im>
parents: 15884
diff changeset
509 /* TODO: re-enable this */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15592
diff changeset
510 static void _qq_menu_send_file(PurpleBlistNode * node, gpointer ignored)
13932
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
511 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15592
diff changeset
512 PurpleBuddy *buddy;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15592
diff changeset
513 PurpleConnection *gc;
13932
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
514 qq_buddy *q_bud;
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
515
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15592
diff changeset
516 g_return_if_fail (PURPLE_BLIST_NODE_IS_BUDDY (node));
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15592
diff changeset
517 buddy = (PurpleBuddy *) node;
13932
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
518 q_bud = (qq_buddy *) buddy->proto_data;
16413
7fae6f309bd7 Death to // comments.
Richard Laager <rlaager@pidgin.im>
parents: 15884
diff changeset
519 /* if (is_online (q_bud->status)) { */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15592
diff changeset
520 gc = purple_account_get_connection (buddy->account);
13932
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
521 g_return_if_fail (gc != NULL && gc->proto_data != NULL);
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
522 qq_send_file(gc, buddy->name, NULL);
16413
7fae6f309bd7 Death to // comments.
Richard Laager <rlaager@pidgin.im>
parents: 15884
diff changeset
523 /* } */
13932
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
524 }
16413
7fae6f309bd7 Death to // comments.
Richard Laager <rlaager@pidgin.im>
parents: 15884
diff changeset
525 #endif
14111
0adb61f87bbb [gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents: 14102
diff changeset
526
13932
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
527 /* protocol related menus */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15592
diff changeset
528 static GList *_qq_actions(PurplePlugin *plugin, gpointer context)
13932
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
529 {
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
530 GList *m;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15592
diff changeset
531 PurplePluginAction *act;
13932
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
532
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
533 m = NULL;
19097
9f5b720e73bc Improve a bunch of strings in QQ
Mark Doliner <markdoliner@pidgin.im>
parents: 18992
diff changeset
534 act = purple_plugin_action_new(_("Set My Information"), _qq_menu_modify_my_info);
13932
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
535 m = g_list_append(m, act);
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
536
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15592
diff changeset
537 act = purple_plugin_action_new(_("Change Password"), _qq_menu_change_password);
14076
ac77316596dc [gaim-migrate @ 16606]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents: 14051
diff changeset
538 m = g_list_append(m, act);
ac77316596dc [gaim-migrate @ 16606]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents: 14051
diff changeset
539
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15592
diff changeset
540 act = purple_plugin_action_new(_("Show Login Information"), _qq_menu_show_login_info);
13932
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
541 m = g_list_append(m, act);
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
542
14111
0adb61f87bbb [gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents: 14102
diff changeset
543 /*
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15592
diff changeset
544 act = purple_plugin_action_new(_("Qun: Search a permanent Qun"), _qq_menu_search_or_add_permanent_group);
13932
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
545 m = g_list_append(m, act);
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
546
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15592
diff changeset
547 act = purple_plugin_action_new(_("Qun: Create a permanent Qun"), _qq_menu_create_permanent_group);
13932
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
548 m = g_list_append(m, act);
14051
6bc807df2a0a [gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents: 13932
diff changeset
549 */
13932
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
550
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
551 return m;
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
552 }
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
553
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
554 /* chat-related (QQ Qun) menu shown up with right-click */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15592
diff changeset
555 static GList *_qq_chat_menu(PurpleBlistNode *node)
13932
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
556 {
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
557 GList *m;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15592
diff changeset
558 PurpleMenuAction *act;
13932
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
559
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
560 m = NULL;
19097
9f5b720e73bc Improve a bunch of strings in QQ
Mark Doliner <markdoliner@pidgin.im>
parents: 18992
diff changeset
561 act = purple_menu_action_new(_("Leave this QQ Qun"), PURPLE_CALLBACK(_qq_menu_unsubscribe_group), NULL, NULL);
13932
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
562 m = g_list_append(m, act);
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
563
14466
4fcd9fdc8060 [gaim-migrate @ 17112]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents: 14382
diff changeset
564 /* TODO: enable this
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15592
diff changeset
565 act = purple_menu_action_new(_("Show Details"), PURPLE_CALLBACK(_qq_menu_manage_group), NULL, NULL);
13932
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
566 m = g_list_append(m, act);
14466
4fcd9fdc8060 [gaim-migrate @ 17112]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents: 14382
diff changeset
567 */
13932
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
568
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
569 return m;
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
570 }
14466
4fcd9fdc8060 [gaim-migrate @ 17112]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents: 14382
diff changeset
571
13932
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
572 /* buddy-related menu shown up with right-click */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15592
diff changeset
573 static GList *_qq_buddy_menu(PurpleBlistNode * node)
13932
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
574 {
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
575 GList *m;
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
576
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15592
diff changeset
577 if(PURPLE_BLIST_NODE_IS_CHAT(node))
13932
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
578 return _qq_chat_menu(node);
15137
28f227957781 [gaim-migrate @ 17859]
Daniel Atallah <datallah@pidgin.im>
parents: 15134
diff changeset
579
13932
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
580 m = NULL;
16413
7fae6f309bd7 Death to // comments.
Richard Laager <rlaager@pidgin.im>
parents: 15884
diff changeset
581
7fae6f309bd7 Death to // comments.
Richard Laager <rlaager@pidgin.im>
parents: 15884
diff changeset
582 /* TODO : not working, temp commented out by gfhuang */
7fae6f309bd7 Death to // comments.
Richard Laager <rlaager@pidgin.im>
parents: 15884
diff changeset
583 #if 0
7fae6f309bd7 Death to // comments.
Richard Laager <rlaager@pidgin.im>
parents: 15884
diff changeset
584
7fae6f309bd7 Death to // comments.
Richard Laager <rlaager@pidgin.im>
parents: 15884
diff changeset
585 act = purple_menu_action_new(_("Block this buddy"), PURPLE_CALLBACK(_qq_menu_block_buddy), NULL, NULL); /* add NULL by gfhuang */
7fae6f309bd7 Death to // comments.
Richard Laager <rlaager@pidgin.im>
parents: 15884
diff changeset
586 m = g_list_append(m, act);
7fae6f309bd7 Death to // comments.
Richard Laager <rlaager@pidgin.im>
parents: 15884
diff changeset
587 /* if (q_bud && is_online(q_bud->status)) { */
7fae6f309bd7 Death to // comments.
Richard Laager <rlaager@pidgin.im>
parents: 15884
diff changeset
588 act = purple_menu_action_new(_("Send File"), PURPLE_CALLBACK(_qq_menu_send_file), NULL, NULL); /* add NULL by gfhuang */
7fae6f309bd7 Death to // comments.
Richard Laager <rlaager@pidgin.im>
parents: 15884
diff changeset
589 m = g_list_append(m, act);
7fae6f309bd7 Death to // comments.
Richard Laager <rlaager@pidgin.im>
parents: 15884
diff changeset
590 /* } */
7fae6f309bd7 Death to // comments.
Richard Laager <rlaager@pidgin.im>
parents: 15884
diff changeset
591 #endif
7fae6f309bd7 Death to // comments.
Richard Laager <rlaager@pidgin.im>
parents: 15884
diff changeset
592
14466
4fcd9fdc8060 [gaim-migrate @ 17112]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents: 14382
diff changeset
593 return m;
4fcd9fdc8060 [gaim-migrate @ 17112]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents: 14382
diff changeset
594 }
4fcd9fdc8060 [gaim-migrate @ 17112]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents: 14382
diff changeset
595
13932
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
596
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15592
diff changeset
597 static void _qq_keep_alive(PurpleConnection *gc)
13932
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
598 {
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
599 qq_group *group;
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
600 qq_data *qd;
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
601 GList *list;
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
602
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
603 if (NULL == (qd = (qq_data *) gc->proto_data))
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
604 return;
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
605
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
606 list = qd->groups;
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
607 while (list != NULL) {
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
608 group = (qq_group *) list->data;
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
609 if (group->my_status == QQ_GROUP_MEMBER_STATUS_IS_MEMBER ||
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
610 group->my_status == QQ_GROUP_MEMBER_STATUS_IS_ADMIN)
14083
2b68bb18a66c [gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents: 14079
diff changeset
611 /* no need to get info time and time again, online members enough */
14466
4fcd9fdc8060 [gaim-migrate @ 17112]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents: 14382
diff changeset
612 qq_send_cmd_group_get_online_members(gc, group);
15137
28f227957781 [gaim-migrate @ 17859]
Daniel Atallah <datallah@pidgin.im>
parents: 15134
diff changeset
613
13932
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
614 list = list->next;
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
615 }
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
616
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
617 qq_send_packet_keep_alive(gc);
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
618 }
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
619
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
620 /* convert chat nickname to qq-uid to get this buddy info */
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
621 /* who is the nickname of buddy in QQ chat-room (Qun) */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15592
diff changeset
622 static void _qq_get_chat_buddy_info(PurpleConnection *gc, gint channel, const gchar *who)
13932
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
623 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15592
diff changeset
624 gchar *purple_name;
14691
efb5fd0a34b7 [gaim-migrate @ 17375]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents: 14604
diff changeset
625 g_return_if_fail(who != NULL);
13932
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
626
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15592
diff changeset
627 purple_name = chat_name_to_purple_name(who);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15592
diff changeset
628 if (purple_name != NULL)
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15592
diff changeset
629 _qq_get_info(gc, purple_name);
13932
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
630 }
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
631
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
632 /* convert chat nickname to qq-uid to invite individual IM to buddy */
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
633 /* who is the nickname of buddy in QQ chat-room (Qun) */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15592
diff changeset
634 static gchar *_qq_get_chat_buddy_real_name(PurpleConnection *gc, gint channel, const gchar *who)
13932
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
635 {
14691
efb5fd0a34b7 [gaim-migrate @ 17375]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents: 14604
diff changeset
636 g_return_val_if_fail(who != NULL, NULL);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15592
diff changeset
637 return chat_name_to_purple_name(who);
13932
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
638 }
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
639
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15592
diff changeset
640 PurplePlugin *my_protocol = NULL;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15592
diff changeset
641 static PurplePluginProtocolInfo prpl_info = {
13932
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
642 OPT_PROTO_CHAT_TOPIC | OPT_PROTO_USE_POINTSIZE,
15133
9d5bbb9f8248 [gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents: 15087
diff changeset
643 NULL, /* user_splits */
9d5bbb9f8248 [gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents: 15087
diff changeset
644 NULL, /* protocol_options */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15592
diff changeset
645 {"png", 96, 96, 96, 96, 0, PURPLE_ICON_SCALE_SEND}, /* icon_spec */
15133
9d5bbb9f8248 [gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents: 15087
diff changeset
646 _qq_list_icon, /* list_icon */
15524
8f365f9bf660 Emblems in the blist
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
647 _qq_list_emblem, /* list_emblems */
15133
9d5bbb9f8248 [gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents: 15087
diff changeset
648 _qq_status_text, /* status_text */
9d5bbb9f8248 [gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents: 15087
diff changeset
649 _qq_tooltip_text, /* tooltip_text */
9d5bbb9f8248 [gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents: 15087
diff changeset
650 _qq_away_states, /* away_states */
9d5bbb9f8248 [gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents: 15087
diff changeset
651 _qq_buddy_menu, /* blist_node_menu */
9d5bbb9f8248 [gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents: 15087
diff changeset
652 qq_chat_info, /* chat_info */
9d5bbb9f8248 [gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents: 15087
diff changeset
653 qq_chat_info_defaults, /* chat_info_defaults */
9d5bbb9f8248 [gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents: 15087
diff changeset
654 _qq_login, /* login */
9d5bbb9f8248 [gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents: 15087
diff changeset
655 _qq_close, /* close */
9d5bbb9f8248 [gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents: 15087
diff changeset
656 _qq_send_im, /* send_im */
9d5bbb9f8248 [gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents: 15087
diff changeset
657 NULL, /* set_info */
9d5bbb9f8248 [gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents: 15087
diff changeset
658 NULL, /* send_typing */
9d5bbb9f8248 [gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents: 15087
diff changeset
659 _qq_get_info, /* get_info */
9d5bbb9f8248 [gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents: 15087
diff changeset
660 _qq_set_away, /* set_away */
9d5bbb9f8248 [gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents: 15087
diff changeset
661 NULL, /* set_idle */
9d5bbb9f8248 [gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents: 15087
diff changeset
662 NULL, /* change_passwd */
9d5bbb9f8248 [gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents: 15087
diff changeset
663 qq_add_buddy, /* add_buddy */
9d5bbb9f8248 [gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents: 15087
diff changeset
664 NULL, /* add_buddies */
9d5bbb9f8248 [gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents: 15087
diff changeset
665 qq_remove_buddy, /* remove_buddy */
9d5bbb9f8248 [gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents: 15087
diff changeset
666 NULL, /* remove_buddies */
9d5bbb9f8248 [gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents: 15087
diff changeset
667 NULL, /* add_permit */
9d5bbb9f8248 [gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents: 15087
diff changeset
668 NULL, /* add_deny */
9d5bbb9f8248 [gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents: 15087
diff changeset
669 NULL, /* rem_permit */
9d5bbb9f8248 [gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents: 15087
diff changeset
670 NULL, /* rem_deny */
9d5bbb9f8248 [gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents: 15087
diff changeset
671 NULL, /* set_permit_deny */
9d5bbb9f8248 [gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents: 15087
diff changeset
672 qq_group_join, /* join_chat */
9d5bbb9f8248 [gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents: 15087
diff changeset
673 NULL, /* reject chat invite */
9d5bbb9f8248 [gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents: 15087
diff changeset
674 NULL, /* get_chat_name */
9d5bbb9f8248 [gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents: 15087
diff changeset
675 NULL, /* chat_invite */
9d5bbb9f8248 [gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents: 15087
diff changeset
676 NULL, /* chat_leave */
9d5bbb9f8248 [gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents: 15087
diff changeset
677 NULL, /* chat_whisper */
9d5bbb9f8248 [gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents: 15087
diff changeset
678 _qq_chat_send, /* chat_send */
9d5bbb9f8248 [gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents: 15087
diff changeset
679 _qq_keep_alive, /* keepalive */
9d5bbb9f8248 [gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents: 15087
diff changeset
680 NULL, /* register_user */
9d5bbb9f8248 [gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents: 15087
diff changeset
681 _qq_get_chat_buddy_info, /* get_cb_info */
9d5bbb9f8248 [gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents: 15087
diff changeset
682 NULL, /* get_cb_away */
9d5bbb9f8248 [gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents: 15087
diff changeset
683 NULL, /* alias_buddy */
9d5bbb9f8248 [gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents: 15087
diff changeset
684 NULL, /* group_buddy */
9d5bbb9f8248 [gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents: 15087
diff changeset
685 NULL, /* rename_group */
15137
28f227957781 [gaim-migrate @ 17859]
Daniel Atallah <datallah@pidgin.im>
parents: 15134
diff changeset
686 NULL, /* buddy_free */
15133
9d5bbb9f8248 [gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents: 15087
diff changeset
687 NULL, /* convo_closed */
9d5bbb9f8248 [gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents: 15087
diff changeset
688 NULL, /* normalize */
9d5bbb9f8248 [gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents: 15087
diff changeset
689 qq_set_my_buddy_icon, /* set_buddy_icon */
9d5bbb9f8248 [gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents: 15087
diff changeset
690 NULL, /* remove_group */
9d5bbb9f8248 [gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents: 15087
diff changeset
691 _qq_get_chat_buddy_real_name, /* get_cb_real_name */
9d5bbb9f8248 [gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents: 15087
diff changeset
692 NULL, /* set_chat_topic */
9d5bbb9f8248 [gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents: 15087
diff changeset
693 NULL, /* find_blist_chat */
9d5bbb9f8248 [gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents: 15087
diff changeset
694 qq_roomlist_get_list, /* roomlist_get_list */
9d5bbb9f8248 [gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents: 15087
diff changeset
695 qq_roomlist_cancel, /* roomlist_cancel */
9d5bbb9f8248 [gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents: 15087
diff changeset
696 NULL, /* roomlist_expand_category */
9d5bbb9f8248 [gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents: 15087
diff changeset
697 NULL, /* can_receive_file */
9d5bbb9f8248 [gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents: 15087
diff changeset
698 qq_send_file, /* send_file */
15137
28f227957781 [gaim-migrate @ 17859]
Daniel Atallah <datallah@pidgin.im>
parents: 15134
diff changeset
699 NULL, /* new xfer */
15133
9d5bbb9f8248 [gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents: 15087
diff changeset
700 NULL, /* offline_message */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15592
diff changeset
701 NULL, /* PurpleWhiteboardPrplOps */
15133
9d5bbb9f8248 [gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents: 15087
diff changeset
702 NULL, /* send_raw */
15185
74b689a74430 [gaim-migrate @ 17909]
Nathan Walp <nwalp@pidgin.im>
parents: 15137
diff changeset
703 NULL, /* roomlist_room_serialize */
22071
4c47e360e467 Fix the prplinfo structs and get rid of some compile warnings.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22069
diff changeset
704 NULL, /* unregister_user */
4c47e360e467 Fix the prplinfo structs and get rid of some compile warnings.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22069
diff changeset
705 NULL, /* send_attention */
4c47e360e467 Fix the prplinfo structs and get rid of some compile warnings.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22069
diff changeset
706 NULL, /* get_attention_types */
4c47e360e467 Fix the prplinfo structs and get rid of some compile warnings.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22069
diff changeset
707 sizeof(PurplePluginProtocolInfo), /* struct_size */
22648
e286d795c5f9 Patch from Marcus Lundblad ('mlundblad') to improve audio support in xmpp.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22071
diff changeset
708 NULL, /* initiate_media */
e286d795c5f9 Patch from Marcus Lundblad ('mlundblad') to improve audio support in xmpp.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22071
diff changeset
709 NULL /* can_do_media */
13932
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
710 };
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
711
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15592
diff changeset
712 static PurplePluginInfo info = {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15592
diff changeset
713 PURPLE_PLUGIN_MAGIC,
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15592
diff changeset
714 PURPLE_MAJOR_VERSION,
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15592
diff changeset
715 PURPLE_MINOR_VERSION,
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15592
diff changeset
716 PURPLE_PLUGIN_PROTOCOL, /**< type */
13932
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
717 NULL, /**< ui_requirement */
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
718 0, /**< flags */
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
719 NULL, /**< dependencies */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15592
diff changeset
720 PURPLE_PRIORITY_DEFAULT, /**< priority */
13932
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
721
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
722 "prpl-qq", /**< id */
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
723 "QQ", /**< name */
20288
5ca925a094e2 applied changes from 03b709ec2a153e7e82719df0ba4635108bb1d3c6
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 19859
diff changeset
724 DISPLAY_VERSION, /**< version */
13932
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
725 /** summary */
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
726 N_("QQ Protocol Plugin"),
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
727 /** description */
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
728 N_("QQ Protocol Plugin"),
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
729 OPENQ_AUTHOR, /**< author */
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
730 OPENQ_WEBSITE, /**< homepage */
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
731
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
732 NULL, /**< load */
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
733 NULL, /**< unload */
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
734 NULL, /**< destroy */
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
735
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
736 NULL, /**< ui_info */
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
737 &prpl_info, /**< extra_info */
14466
4fcd9fdc8060 [gaim-migrate @ 17112]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents: 14382
diff changeset
738 NULL, /**< prefs_info */
16746
72faf41c3c4f And now the protocols
Gary Kramlich <grim@reaperworld.com>
parents: 16413
diff changeset
739 _qq_actions,
72faf41c3c4f And now the protocols
Gary Kramlich <grim@reaperworld.com>
parents: 16413
diff changeset
740
72faf41c3c4f And now the protocols
Gary Kramlich <grim@reaperworld.com>
parents: 16413
diff changeset
741 /* padding */
72faf41c3c4f And now the protocols
Gary Kramlich <grim@reaperworld.com>
parents: 16413
diff changeset
742 NULL,
72faf41c3c4f And now the protocols
Gary Kramlich <grim@reaperworld.com>
parents: 16413
diff changeset
743 NULL,
72faf41c3c4f And now the protocols
Gary Kramlich <grim@reaperworld.com>
parents: 16413
diff changeset
744 NULL,
22071
4c47e360e467 Fix the prplinfo structs and get rid of some compile warnings.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22069
diff changeset
745 NULL
13932
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
746 };
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
747
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
748
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15592
diff changeset
749 static void init_plugin(PurplePlugin *plugin)
13932
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
750 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15592
diff changeset
751 PurpleAccountOption *option;
13932
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
752
18992
75a15398655a Improve a string and get rid of an account option that isn't used.
Mark Doliner <markdoliner@pidgin.im>
parents: 18989
diff changeset
753 option = purple_account_option_bool_new(_("Connect using TCP"), "use_tcp", FALSE);
13932
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
754 prpl_info.protocol_options = g_list_append(prpl_info.protocol_options, option);
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
755
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15592
diff changeset
756 option = purple_account_option_string_new(_("Server"), "server", NULL);
13932
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
757 prpl_info.protocol_options = g_list_append(prpl_info.protocol_options, option);
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
758
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15592
diff changeset
759 option = purple_account_option_string_new(_("Port"), "port", NULL);
13932
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
760 prpl_info.protocol_options = g_list_append(prpl_info.protocol_options, option);
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
761
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
762 my_protocol = plugin;
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
763
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15592
diff changeset
764 purple_prefs_add_none("/plugins/prpl/qq");
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15592
diff changeset
765 purple_prefs_add_bool("/plugins/prpl/qq/show_status_by_icon", TRUE);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15592
diff changeset
766 purple_prefs_add_bool("/plugins/prpl/qq/show_fake_video", FALSE);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15592
diff changeset
767 purple_prefs_add_bool("/plugins/prpl/qq/prompt_group_msg_on_recv", TRUE);
13932
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
768 }
4d131bd2b40f [gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff changeset
769
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15592
diff changeset
770 PURPLE_INIT_PLUGIN(qq, init_plugin, info);

mercurial