Sun, 10 Sep 2006 15:07:46 +0000
[gaim-migrate @ 17216]
Use fstat() on the opened fd instead of stat() on the file separately. Use static buffers in a few places to avoid unnecessary memory allocation and freeing.
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
1 | /** |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
2 | * @file qq.c The QQ2003C protocol plugin |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
3 | * |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
4 | * gaim |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
5 | * |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
6 | * Copyright (C) 2004 Puzzlebird |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
7 | * |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
8 | * 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
|
9 | * 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
|
10 | * the Free Software Foundation; either version 2 of the License, or |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
11 | * (at your option) any later version. |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
12 | * |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
13 | * 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
|
14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
16 | * GNU General Public License for more details. |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
17 | * |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
18 | * 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
|
19 | * along with this program; if not, write to the Free Software |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
20 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
21 | */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
22 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
23 | #include "internal.h" |
|
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 | #ifdef _WIN32 |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
26 | #define random rand |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
27 | #endif |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
28 | |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14079
diff
changeset
|
29 | #include "accountopt.h" |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
30 | #include "debug.h" |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
31 | #include "notify.h" |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
32 | #include "prefs.h" |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14079
diff
changeset
|
33 | #include "prpl.h" |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
34 | #include "request.h" |
|
14114
5dedb32aaa35
[gaim-migrate @ 16665]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14113
diff
changeset
|
35 | #include "roomlist.h" |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
36 | #include "server.h" |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14079
diff
changeset
|
37 | #include "util.h" |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
38 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
39 | #include "buddy_info.h" |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
40 | #include "buddy_opt.h" |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
41 | #include "buddy_status.h" |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
42 | #include "char_conv.h" |
|
14299
28dd8ab08304
[gaim-migrate @ 16919]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14257
diff
changeset
|
43 | #include "crypt.h" |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14079
diff
changeset
|
44 | #include "group.h" |
|
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14079
diff
changeset
|
45 | #include "group_find.h" |
|
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14079
diff
changeset
|
46 | #include "group_im.h" |
|
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14079
diff
changeset
|
47 | #include "group_info.h" |
|
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14079
diff
changeset
|
48 | #include "group_join.h" |
|
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14079
diff
changeset
|
49 | #include "group_opt.h" |
|
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14079
diff
changeset
|
50 | #include "header_info.h" |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
51 | #include "im.h" |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
52 | #include "keep_alive.h" |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
53 | #include "login_logout.h" |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14079
diff
changeset
|
54 | #include "packet_parse.h" |
|
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14079
diff
changeset
|
55 | #include "qq.h" |
|
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14079
diff
changeset
|
56 | #include "qq_proxy.h" |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
57 | #include "send_core.h" |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
58 | #include "send_file.h" |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14079
diff
changeset
|
59 | #include "utils.h" |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
60 | #include "version.h" |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
61 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
62 | #define OPENQ_AUTHOR "Puzzlebird" |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
63 | #define OPENQ_WEBSITE "http://openq.sourceforge.net" |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
64 | #define QQ_TCP_QUERY_PORT "8000" |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
65 | #define QQ_UDP_PORT "8000" |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
66 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
67 | const gchar *udp_server_list[] = { |
|
14257
6510563c1ee9
[gaim-migrate @ 16867]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14254
diff
changeset
|
68 | "sz.tencent.com", |
|
6510563c1ee9
[gaim-migrate @ 16867]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14254
diff
changeset
|
69 | "sz2.tencent.com", |
|
6510563c1ee9
[gaim-migrate @ 16867]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14254
diff
changeset
|
70 | "sz3.tencent.com", |
|
6510563c1ee9
[gaim-migrate @ 16867]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14254
diff
changeset
|
71 | "sz4.tencent.com", |
|
6510563c1ee9
[gaim-migrate @ 16867]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14254
diff
changeset
|
72 | "sz5.tencent.com", |
|
6510563c1ee9
[gaim-migrate @ 16867]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14254
diff
changeset
|
73 | "sz6.tencent.com", |
|
6510563c1ee9
[gaim-migrate @ 16867]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14254
diff
changeset
|
74 | "sz7.tencent.com", |
|
6510563c1ee9
[gaim-migrate @ 16867]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14254
diff
changeset
|
75 | "sz8.tencent.com", |
|
6510563c1ee9
[gaim-migrate @ 16867]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14254
diff
changeset
|
76 | "sz9.tencent.com" |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
77 | }; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
78 | 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
|
79 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
80 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
81 | const gchar *tcp_server_list[] = { |
|
14257
6510563c1ee9
[gaim-migrate @ 16867]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14254
diff
changeset
|
82 | "tcpconn.tencent.com", |
|
6510563c1ee9
[gaim-migrate @ 16867]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14254
diff
changeset
|
83 | "tcpconn2.tencent.com", |
|
6510563c1ee9
[gaim-migrate @ 16867]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14254
diff
changeset
|
84 | "tcpconn3.tencent.com", |
|
6510563c1ee9
[gaim-migrate @ 16867]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14254
diff
changeset
|
85 | "tcpconn4.tencent.com", |
|
6510563c1ee9
[gaim-migrate @ 16867]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14254
diff
changeset
|
86 | "tcpconn5.tencent.com", |
|
6510563c1ee9
[gaim-migrate @ 16867]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14254
diff
changeset
|
87 | "tcpconn6.tencent.com" |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
88 | }; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
89 | 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
|
90 | |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14079
diff
changeset
|
91 | static void _qq_login(GaimAccount *account) |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
92 | { |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
93 | const gchar *qq_server, *qq_port; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
94 | qq_data *qd; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
95 | GaimConnection *gc; |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
96 | GaimPresence *presence; |
|
14380
468fb688f04f
[gaim-migrate @ 17011]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14348
diff
changeset
|
97 | gboolean use_tcp; |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
98 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
99 | g_return_if_fail(account != NULL); |
|
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 | gc = gaim_account_get_connection(account); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
102 | g_return_if_fail(gc != NULL); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
103 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
104 | gc->flags |= GAIM_CONNECTION_HTML | GAIM_CONNECTION_NO_BGCOLOR | GAIM_CONNECTION_AUTO_RESP; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
105 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
106 | qd = g_new0(qq_data, 1); |
|
14257
6510563c1ee9
[gaim-migrate @ 16867]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14254
diff
changeset
|
107 | qd->gc = gc; |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
108 | gc->proto_data = qd; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
109 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
110 | qq_server = gaim_account_get_string(account, "server", NULL); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
111 | qq_port = gaim_account_get_string(account, "port", NULL); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
112 | use_tcp = gaim_account_get_bool(account, "use_tcp", FALSE); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
113 | presence = gaim_account_get_presence(account); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
114 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
115 | qd->use_tcp = use_tcp; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
116 | |
|
14380
468fb688f04f
[gaim-migrate @ 17011]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14348
diff
changeset
|
117 | if(gaim_presence_is_status_primitive_active(presence, GAIM_STATUS_INVISIBLE)) { |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
118 | qd->login_mode = QQ_LOGIN_MODE_HIDDEN; |
|
14380
468fb688f04f
[gaim-migrate @ 17011]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14348
diff
changeset
|
119 | } else if(gaim_presence_is_status_primitive_active(presence, GAIM_STATUS_AWAY) |
|
468fb688f04f
[gaim-migrate @ 17011]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14348
diff
changeset
|
120 | || gaim_presence_is_status_primitive_active(presence, GAIM_STATUS_EXTENDED_AWAY)) { |
|
468fb688f04f
[gaim-migrate @ 17011]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14348
diff
changeset
|
121 | qd->login_mode = QQ_LOGIN_MODE_AWAY; |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14079
diff
changeset
|
122 | } else { |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
123 | qd->login_mode = QQ_LOGIN_MODE_NORMAL; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
124 | } |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
125 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
126 | if (qq_server == NULL || strlen(qq_server) == 0) |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
127 | qq_server = use_tcp ? |
|
14257
6510563c1ee9
[gaim-migrate @ 16867]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14254
diff
changeset
|
128 | tcp_server_list[random() % tcp_server_amount] : |
|
6510563c1ee9
[gaim-migrate @ 16867]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14254
diff
changeset
|
129 | udp_server_list[random() % udp_server_amount]; |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
130 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
131 | if (qq_port == NULL || strtol(qq_port, NULL, 10) == 0) |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
132 | qq_port = use_tcp ? QQ_TCP_QUERY_PORT : QQ_UDP_PORT; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
133 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
134 | gaim_connection_update_progress(gc, _("Connecting"), 0, QQ_CONNECT_STEPS); |
|
14257
6510563c1ee9
[gaim-migrate @ 16867]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14254
diff
changeset
|
135 | |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
136 | if (qq_connect(account, qq_server, strtol(qq_port, NULL, 10), use_tcp, FALSE) < 0) |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
137 | gaim_connection_error(gc, _("Unable to connect.")); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
138 | } |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
139 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
140 | /* directly goes for qq_disconnect */ |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14079
diff
changeset
|
141 | static void _qq_close(GaimConnection *gc) |
|
13932
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 | g_return_if_fail(gc != NULL); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
144 | qq_disconnect(gc); |
|
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 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
147 | /* returns the icon name for a buddy or protocol */ |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14079
diff
changeset
|
148 | static const gchar *_qq_list_icon(GaimAccount *a, GaimBuddy *b) |
|
13932
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 | gchar *filename; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
151 | qq_buddy *q_bud; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
152 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
153 | /* do not use g_return_val_if_fail, as it is not assertion */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
154 | if (b == NULL || b->proto_data == NULL) |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
155 | return "qq"; |
|
14466
4fcd9fdc8060
[gaim-migrate @ 17112]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14382
diff
changeset
|
156 | |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
157 | q_bud = (qq_buddy *) b->proto_data; |
|
14327
35a1e5dda285
[gaim-migrate @ 16947]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14304
diff
changeset
|
158 | filename = get_icon_name(q_bud->icon / 3 + 1); |
|
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 | return filename; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
161 | } |
|
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 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
164 | /* a short status text beside buddy icon*/ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
165 | static gchar *_qq_status_text(GaimBuddy *b) |
|
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 | qq_buddy *q_bud; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
168 | GString *status; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
169 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
170 | q_bud = (qq_buddy *) b->proto_data; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
171 | if (q_bud == NULL) |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
172 | return NULL; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
173 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
174 | status = g_string_new(""); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
175 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
176 | switch(q_bud->status) { |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
177 | case QQ_BUDDY_OFFLINE: |
|
14330
f81629246c27
[gaim-migrate @ 16950]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14327
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_NORMAL: |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
181 | return NULL; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
182 | break; |
|
14330
f81629246c27
[gaim-migrate @ 16950]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14327
diff
changeset
|
183 | /* TODO What does this status mean? Labelling it as offline... */ |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
184 | case QQ_BUDDY_ONLINE_OFFLINE: |
|
14330
f81629246c27
[gaim-migrate @ 16950]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14327
diff
changeset
|
185 | g_string_append(status, "Offline"); |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
186 | break; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
187 | case QQ_BUDDY_ONLINE_AWAY: |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
188 | g_string_append(status, "Away"); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
189 | break; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
190 | case QQ_BUDDY_ONLINE_INVISIBLE: |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
191 | g_string_append(status, "Invisible"); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
192 | break; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
193 | default: |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
194 | g_string_printf(status, "Unknown-%d", q_bud->status); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
195 | } |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
196 | |
|
14559
78092ceb0bc3
[gaim-migrate @ 17216]
Daniel Atallah <datallah@pidgin.im>
parents:
14466
diff
changeset
|
197 | return g_string_free(status, FALSE); |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
198 | } |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
199 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
200 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
201 | /* a floating text when mouse is on the icon, show connection status here */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
202 | static void _qq_tooltip_text(GaimBuddy *b, GString *tooltip, gboolean full) |
|
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 | qq_buddy *q_bud; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
205 | gchar *ip_str; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
206 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
207 | g_return_if_fail(b != NULL); |
|
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 | q_bud = (qq_buddy *) b->proto_data; |
|
14330
f81629246c27
[gaim-migrate @ 16950]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14327
diff
changeset
|
210 | g_return_if_fail(q_bud != NULL); |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
211 | |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
212 | if (GAIM_BUDDY_IS_ONLINE(b) && q_bud != NULL) |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
213 | { |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
214 | ip_str = gen_ip_str(q_bud->ip); |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
215 | if (strlen(ip_str) != 0) { |
|
14113
11e7837a35e9
[gaim-migrate @ 16664]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14111
diff
changeset
|
216 | g_string_append_printf(tooltip, "\n<b>%s Address:</b> %s:%d", |
|
11e7837a35e9
[gaim-migrate @ 16664]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14111
diff
changeset
|
217 | (q_bud->comm_flag & QQ_COMM_FLAG_TCP_MODE) |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
218 | ? "TCP" : "UDP", ip_str, q_bud->port); |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
219 | } |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
220 | g_free(ip_str); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
221 | g_string_append_printf(tooltip, "\n<b>Age:</b> %d", q_bud->age); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
222 | switch (q_bud->gender) { |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
223 | case QQ_BUDDY_GENDER_GG: |
|
14330
f81629246c27
[gaim-migrate @ 16950]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14327
diff
changeset
|
224 | g_string_append(tooltip, "\n<b>Gender:</b> Male"); |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
225 | break; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
226 | case QQ_BUDDY_GENDER_MM: |
|
14330
f81629246c27
[gaim-migrate @ 16950]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14327
diff
changeset
|
227 | g_string_append(tooltip, "\n<b>Gender:</b> Female"); |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
228 | break; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
229 | case QQ_BUDDY_GENDER_UNKNOWN: |
|
14330
f81629246c27
[gaim-migrate @ 16950]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14327
diff
changeset
|
230 | g_string_append(tooltip, "\n<b>Gender:</b> Unknown"); |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
231 | break; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
232 | default: |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
233 | g_string_append_printf(tooltip, "\n<b>Gender:</b> ERROR(%d)", q_bud->gender); |
|
14330
f81629246c27
[gaim-migrate @ 16950]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14327
diff
changeset
|
234 | } |
|
f81629246c27
[gaim-migrate @ 16950]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14327
diff
changeset
|
235 | /* For debugging */ |
|
f81629246c27
[gaim-migrate @ 16950]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14327
diff
changeset
|
236 | /* |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
237 | 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
|
238 | g_string_append_printf(tooltip, "\n<b>CommFlag:</b> %01x", q_bud->comm_flag); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
239 | 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
|
240 | */ |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
241 | } |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
242 | } |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
243 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
244 | /* we can show tiny icons on the four corners of buddy icon, */ |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14079
diff
changeset
|
245 | static void _qq_list_emblems(GaimBuddy *b, const char **se, const char **sw, const char **nw, const char **ne) |
|
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14079
diff
changeset
|
246 | { |
|
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14079
diff
changeset
|
247 | /* each char ** are refering to filename in pixmaps/gaim/status/default/ *png */ |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
248 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
249 | qq_buddy *q_bud = b->proto_data; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
250 | const char *emblems[4] = { NULL, NULL, NULL, NULL }; |
|
14327
35a1e5dda285
[gaim-migrate @ 16947]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14304
diff
changeset
|
251 | int i = 1; |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
252 | |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14079
diff
changeset
|
253 | if (q_bud == NULL) { |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
254 | emblems[0] = "offline"; |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14079
diff
changeset
|
255 | } else { |
|
14327
35a1e5dda285
[gaim-migrate @ 16947]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14304
diff
changeset
|
256 | /* TODO the wireless icon is a bit too big to look good with QQ faces */ |
|
14380
468fb688f04f
[gaim-migrate @ 17011]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14348
diff
changeset
|
257 | if (q_bud->status == QQ_BUDDY_ONLINE_AWAY) |
|
14327
35a1e5dda285
[gaim-migrate @ 16947]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14304
diff
changeset
|
258 | emblems[i++] = "away"; |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
259 | if (q_bud->comm_flag & QQ_COMM_FLAG_QQ_MEMBER) |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
260 | emblems[i++] = "qq_member"; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
261 | if (q_bud->comm_flag & QQ_COMM_FLAG_BIND_MOBILE) |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
262 | emblems[i++] = "wireless"; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
263 | if (q_bud->comm_flag & QQ_COMM_FLAG_VIDEO) |
|
14327
35a1e5dda285
[gaim-migrate @ 16947]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14304
diff
changeset
|
264 | emblems[i%4] = "video"; |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
265 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
266 | } |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
267 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
268 | *se = emblems[0]; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
269 | *sw = emblems[1]; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
270 | *nw = emblems[2]; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
271 | *ne = emblems[3]; |
|
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 | return; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
274 | } |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
275 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
276 | /* QQ away status (used to initiate QQ away packet) */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
277 | static GList *_qq_away_states(GaimAccount *ga) |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
278 | { |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
279 | GaimStatusType *status; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
280 | GList *types = NULL; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
281 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
282 | status = gaim_status_type_new_full(GAIM_STATUS_AVAILABLE, |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
283 | "available", _("QQ: Available"), FALSE, TRUE, FALSE); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
284 | types = g_list_append(types, status); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
285 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
286 | status = gaim_status_type_new_full(GAIM_STATUS_AWAY, |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
287 | "away", _("QQ: Away"), FALSE, TRUE, FALSE); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
288 | types = g_list_append(types, status); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
289 | |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
290 | status = gaim_status_type_new_full(GAIM_STATUS_INVISIBLE, |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
291 | "invisible", _("QQ: Invisible"), FALSE, TRUE, FALSE); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
292 | types = g_list_append(types, status); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
293 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
294 | status = gaim_status_type_new_full(GAIM_STATUS_OFFLINE, |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
295 | "offline", _("QQ: Offline"), FALSE, TRUE, FALSE); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
296 | types = g_list_append(types, status); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
297 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
298 | return types; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
299 | } |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
300 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
301 | /* initiate QQ away with proper change_status packet */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
302 | static void _qq_set_away(GaimAccount *account, GaimStatus *status) |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
303 | { |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
304 | GaimConnection *gc = gaim_account_get_connection(account); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
305 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
306 | qq_send_packet_change_status(gc); |
|
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 | |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14079
diff
changeset
|
309 | /* IMPORTANT: GaimConvImFlags -> GaimMessageFlags */ |
|
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14079
diff
changeset
|
310 | /* send an instant msg to a buddy */ |
|
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14079
diff
changeset
|
311 | static gint _qq_send_im(GaimConnection *gc, const gchar *who, const gchar *message, GaimMessageFlags flags) |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
312 | { |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
313 | gint type, to_uid; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
314 | gchar *msg, *msg_with_qq_smiley; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
315 | qq_data *qd; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
316 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
317 | g_return_val_if_fail(gc != NULL && gc->proto_data != NULL && who != NULL, -1); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
318 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
319 | qd = (qq_data *) gc->proto_data; |
|
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 | 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
|
322 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
323 | type = (flags == GAIM_MESSAGE_AUTO_RESP ? QQ_IM_AUTO_REPLY : QQ_IM_TEXT); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
324 | to_uid = gaim_name_to_uid(who); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
325 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
326 | /* if msg is to myself, bypass the network */ |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14079
diff
changeset
|
327 | if (to_uid == qd->uid) { |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
328 | serv_got_im(gc, who, message, flags, time(NULL)); |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14079
diff
changeset
|
329 | } else { |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
330 | msg = utf8_to_qq(message, QQ_CHARSET_DEFAULT); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
331 | msg_with_qq_smiley = gaim_smiley_to_qq(msg); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
332 | 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
|
333 | g_free(msg); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
334 | g_free(msg_with_qq_smiley); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
335 | } |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
336 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
337 | return 1; |
|
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 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
340 | /* send a chat msg to a QQ Qun */ |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
341 | static int _qq_chat_send(GaimConnection *gc, int channel, const char *message, GaimMessageFlags flags) |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
342 | { |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
343 | gchar *msg, *msg_with_qq_smiley; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
344 | qq_group *group; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
345 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
346 | g_return_val_if_fail(gc != NULL && message != NULL, -1); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
347 | 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
|
348 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
349 | group = qq_group_find_by_channel(gc, channel); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
350 | g_return_val_if_fail(group != NULL, -1); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
351 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
352 | msg = utf8_to_qq(message, QQ_CHARSET_DEFAULT); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
353 | msg_with_qq_smiley = gaim_smiley_to_qq(msg); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
354 | qq_send_packet_group_im(gc, group, msg_with_qq_smiley); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
355 | g_free(msg); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
356 | g_free(msg_with_qq_smiley); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
357 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
358 | return 1; |
|
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 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
361 | /* send packet to get who's detailed information */ |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14079
diff
changeset
|
362 | static void _qq_get_info(GaimConnection *gc, const gchar *who) |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
363 | { |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
364 | guint32 uid; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
365 | qq_data *qd; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
366 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
367 | g_return_if_fail(gc != NULL && gc->proto_data != NULL); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
368 | qd = gc->proto_data; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
369 | uid = gaim_name_to_uid(who); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
370 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
371 | if (uid <= 0) { |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
372 | gaim_debug(GAIM_DEBUG_ERROR, "QQ", "Not valid QQid: %s\n", who); |
|
14381
f61d2e267c67
[gaim-migrate @ 17012]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14380
diff
changeset
|
373 | gaim_notify_error(gc, NULL, _("Invalid name"), NULL); |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
374 | return; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
375 | } |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
376 | |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
377 | qq_send_packet_get_info(gc, uid, TRUE); |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
378 | } |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
379 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
380 | /* get my own information */ |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14079
diff
changeset
|
381 | static void _qq_menu_modify_my_info(GaimPluginAction *action) |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
382 | { |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
383 | GaimConnection *gc = (GaimConnection *) action->context; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
384 | qq_data *qd; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
385 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
386 | g_return_if_fail(gc != NULL && gc->proto_data != NULL); |
|
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 | |
|
14327
35a1e5dda285
[gaim-migrate @ 16947]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14304
diff
changeset
|
392 | static void _qq_change_face_cb(GaimConnection *gc, GaimRequestFields *fields) |
|
35a1e5dda285
[gaim-migrate @ 16947]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14304
diff
changeset
|
393 | { |
|
35a1e5dda285
[gaim-migrate @ 16947]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14304
diff
changeset
|
394 | qq_data *qd; |
|
35a1e5dda285
[gaim-migrate @ 16947]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14304
diff
changeset
|
395 | GaimRequestField *field; |
|
35a1e5dda285
[gaim-migrate @ 16947]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14304
diff
changeset
|
396 | gint suffix; |
|
35a1e5dda285
[gaim-migrate @ 16947]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14304
diff
changeset
|
397 | |
|
35a1e5dda285
[gaim-migrate @ 16947]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14304
diff
changeset
|
398 | g_return_if_fail(gc != NULL && gc->proto_data != NULL); |
|
35a1e5dda285
[gaim-migrate @ 16947]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14304
diff
changeset
|
399 | qd = (qq_data *) gc->proto_data; |
|
35a1e5dda285
[gaim-migrate @ 16947]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14304
diff
changeset
|
400 | |
|
35a1e5dda285
[gaim-migrate @ 16947]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14304
diff
changeset
|
401 | field = gaim_request_fields_get_field(fields, "face_num"); |
|
14380
468fb688f04f
[gaim-migrate @ 17011]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14348
diff
changeset
|
402 | suffix = get_icon_offset(gc); |
|
14327
35a1e5dda285
[gaim-migrate @ 16947]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14304
diff
changeset
|
403 | qd->my_icon = gaim_request_field_choice_get_value(field) * 3 + suffix; |
|
35a1e5dda285
[gaim-migrate @ 16947]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14304
diff
changeset
|
404 | qd->modifying_face = TRUE; |
|
35a1e5dda285
[gaim-migrate @ 16947]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14304
diff
changeset
|
405 | qq_send_packet_get_info(gc, qd->uid, FALSE); |
|
35a1e5dda285
[gaim-migrate @ 16947]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14304
diff
changeset
|
406 | } |
|
35a1e5dda285
[gaim-migrate @ 16947]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14304
diff
changeset
|
407 | |
|
35a1e5dda285
[gaim-migrate @ 16947]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14304
diff
changeset
|
408 | static void _qq_add_face_choice(GaimRequestFieldGroup *group, gint face_num) |
|
35a1e5dda285
[gaim-migrate @ 16947]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14304
diff
changeset
|
409 | { |
|
35a1e5dda285
[gaim-migrate @ 16947]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14304
diff
changeset
|
410 | GaimRequestField *field; |
|
35a1e5dda285
[gaim-migrate @ 16947]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14304
diff
changeset
|
411 | struct stat img_stat; |
|
35a1e5dda285
[gaim-migrate @ 16947]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14304
diff
changeset
|
412 | FILE *file; |
|
14559
78092ceb0bc3
[gaim-migrate @ 17216]
Daniel Atallah <datallah@pidgin.im>
parents:
14466
diff
changeset
|
413 | gchar *filename, *img_data; |
|
78092ceb0bc3
[gaim-migrate @ 17216]
Daniel Atallah <datallah@pidgin.im>
parents:
14466
diff
changeset
|
414 | gchar face[15]; |
|
14327
35a1e5dda285
[gaim-migrate @ 16947]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14304
diff
changeset
|
415 | gint size; |
|
35a1e5dda285
[gaim-migrate @ 16947]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14304
diff
changeset
|
416 | |
|
14559
78092ceb0bc3
[gaim-migrate @ 17216]
Daniel Atallah <datallah@pidgin.im>
parents:
14466
diff
changeset
|
417 | g_snprintf(face, sizeof(face), "qq_%i.png", face_num); |
| 14348 | 418 | filename = g_build_filename(DATADIR, "pixmaps", |
|
14327
35a1e5dda285
[gaim-migrate @ 16947]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14304
diff
changeset
|
419 | "gaim","status","default", face, NULL); |
|
14559
78092ceb0bc3
[gaim-migrate @ 17216]
Daniel Atallah <datallah@pidgin.im>
parents:
14466
diff
changeset
|
420 | g_snprintf(face, sizeof(face), "%i", face_num); |
|
14327
35a1e5dda285
[gaim-migrate @ 16947]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14304
diff
changeset
|
421 | file = g_fopen(filename, "rb"); |
|
14559
78092ceb0bc3
[gaim-migrate @ 17216]
Daniel Atallah <datallah@pidgin.im>
parents:
14466
diff
changeset
|
422 | if (file && fstat(fileno(file), &img_stat) == 0) { |
|
14327
35a1e5dda285
[gaim-migrate @ 16947]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14304
diff
changeset
|
423 | img_data = g_malloc(img_stat.st_size); |
|
35a1e5dda285
[gaim-migrate @ 16947]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14304
diff
changeset
|
424 | size = fread(img_data, 1, img_stat.st_size, file); |
|
35a1e5dda285
[gaim-migrate @ 16947]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14304
diff
changeset
|
425 | |
|
35a1e5dda285
[gaim-migrate @ 16947]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14304
diff
changeset
|
426 | field = gaim_request_field_image_new(face, face, img_data, size); |
|
35a1e5dda285
[gaim-migrate @ 16947]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14304
diff
changeset
|
427 | gaim_request_field_group_add_field(group, field); |
|
35a1e5dda285
[gaim-migrate @ 16947]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14304
diff
changeset
|
428 | |
|
35a1e5dda285
[gaim-migrate @ 16947]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14304
diff
changeset
|
429 | g_free(img_data); |
|
35a1e5dda285
[gaim-migrate @ 16947]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14304
diff
changeset
|
430 | fclose(file); |
|
35a1e5dda285
[gaim-migrate @ 16947]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14304
diff
changeset
|
431 | } |
|
35a1e5dda285
[gaim-migrate @ 16947]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14304
diff
changeset
|
432 | } |
|
35a1e5dda285
[gaim-migrate @ 16947]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14304
diff
changeset
|
433 | |
|
14330
f81629246c27
[gaim-migrate @ 16950]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14327
diff
changeset
|
434 | /* Change your status icon (face) */ |
|
14327
35a1e5dda285
[gaim-migrate @ 16947]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14304
diff
changeset
|
435 | static void _qq_menu_change_face(GaimPluginAction *action) |
|
35a1e5dda285
[gaim-migrate @ 16947]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14304
diff
changeset
|
436 | { |
|
35a1e5dda285
[gaim-migrate @ 16947]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14304
diff
changeset
|
437 | GaimConnection *gc = (GaimConnection *) action->context; |
|
35a1e5dda285
[gaim-migrate @ 16947]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14304
diff
changeset
|
438 | qq_data *qd = (qq_data *) gc->proto_data; |
|
35a1e5dda285
[gaim-migrate @ 16947]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14304
diff
changeset
|
439 | GaimRequestFields *fields; |
|
35a1e5dda285
[gaim-migrate @ 16947]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14304
diff
changeset
|
440 | GaimRequestFieldGroup *group; |
|
35a1e5dda285
[gaim-migrate @ 16947]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14304
diff
changeset
|
441 | GaimRequestField *field; |
|
14559
78092ceb0bc3
[gaim-migrate @ 17216]
Daniel Atallah <datallah@pidgin.im>
parents:
14466
diff
changeset
|
442 | gchar label[15]; |
|
14327
35a1e5dda285
[gaim-migrate @ 16947]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14304
diff
changeset
|
443 | gint i; |
|
35a1e5dda285
[gaim-migrate @ 16947]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14304
diff
changeset
|
444 | |
|
35a1e5dda285
[gaim-migrate @ 16947]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14304
diff
changeset
|
445 | fields = gaim_request_fields_new(); |
|
35a1e5dda285
[gaim-migrate @ 16947]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14304
diff
changeset
|
446 | group = gaim_request_field_group_new(_("Selection")); |
|
35a1e5dda285
[gaim-migrate @ 16947]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14304
diff
changeset
|
447 | gaim_request_fields_add_group(fields, group); |
|
35a1e5dda285
[gaim-migrate @ 16947]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14304
diff
changeset
|
448 | field = gaim_request_field_choice_new("face_num", |
|
35a1e5dda285
[gaim-migrate @ 16947]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14304
diff
changeset
|
449 | _("Select a number"), qd->my_icon / 3); |
|
35a1e5dda285
[gaim-migrate @ 16947]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14304
diff
changeset
|
450 | for(i = 1; i <= QQ_FACES; i++) { |
|
14559
78092ceb0bc3
[gaim-migrate @ 17216]
Daniel Atallah <datallah@pidgin.im>
parents:
14466
diff
changeset
|
451 | g_snprintf(label, sizeof(label), "%i", i); |
|
14327
35a1e5dda285
[gaim-migrate @ 16947]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14304
diff
changeset
|
452 | gaim_request_field_choice_add(field, label); |
|
35a1e5dda285
[gaim-migrate @ 16947]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14304
diff
changeset
|
453 | } |
|
35a1e5dda285
[gaim-migrate @ 16947]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14304
diff
changeset
|
454 | gaim_request_field_group_add_field(group, field); |
|
35a1e5dda285
[gaim-migrate @ 16947]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14304
diff
changeset
|
455 | group = gaim_request_field_group_new(_("Faces")); |
|
35a1e5dda285
[gaim-migrate @ 16947]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14304
diff
changeset
|
456 | gaim_request_fields_add_group(fields, group); |
|
35a1e5dda285
[gaim-migrate @ 16947]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14304
diff
changeset
|
457 | for(i = 1; i <= QQ_FACES; i++) |
|
35a1e5dda285
[gaim-migrate @ 16947]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14304
diff
changeset
|
458 | _qq_add_face_choice(group, i); |
|
35a1e5dda285
[gaim-migrate @ 16947]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14304
diff
changeset
|
459 | |
|
35a1e5dda285
[gaim-migrate @ 16947]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14304
diff
changeset
|
460 | gaim_request_fields(gc, _("Change Your QQ Face"), |
|
35a1e5dda285
[gaim-migrate @ 16947]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14304
diff
changeset
|
461 | _("Change Face"), NULL, fields, |
|
35a1e5dda285
[gaim-migrate @ 16947]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14304
diff
changeset
|
462 | _("Update"), G_CALLBACK(_qq_change_face_cb), |
|
35a1e5dda285
[gaim-migrate @ 16947]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14304
diff
changeset
|
463 | _("Cancel"), NULL, |
|
35a1e5dda285
[gaim-migrate @ 16947]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14304
diff
changeset
|
464 | gc); |
|
35a1e5dda285
[gaim-migrate @ 16947]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14304
diff
changeset
|
465 | } |
|
35a1e5dda285
[gaim-migrate @ 16947]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14304
diff
changeset
|
466 | |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14079
diff
changeset
|
467 | static void _qq_menu_change_password(GaimPluginAction *action) |
|
14076
ac77316596dc
[gaim-migrate @ 16606]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14051
diff
changeset
|
468 | { |
|
14077
c7742fbe41fc
[gaim-migrate @ 16607]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14076
diff
changeset
|
469 | gaim_notify_uri(NULL, "https://password.qq.com"); |
|
14076
ac77316596dc
[gaim-migrate @ 16606]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14051
diff
changeset
|
470 | } |
|
ac77316596dc
[gaim-migrate @ 16606]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14051
diff
changeset
|
471 | |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
472 | /* 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
|
473 | /* TODO: re-enable this |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
474 | static void _qq_menu_block_buddy(GaimBlistNode * node) |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
475 | { |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
476 | guint32 uid; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
477 | gc_and_uid *g; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
478 | GaimBuddy *buddy; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
479 | GaimConnection *gc; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
480 | // const gchar *who = param_who; gfhuang |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
481 | const gchar *who; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
482 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
483 | g_return_if_fail(GAIM_BLIST_NODE_IS_BUDDY(node)); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
484 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
485 | buddy = (GaimBuddy *) node; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
486 | gc = gaim_account_get_connection(buddy->account); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
487 | who = buddy->name; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
488 | g_return_if_fail(gc != NULL && who != NULL); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
489 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
490 | uid = gaim_name_to_uid(who); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
491 | g_return_if_fail(uid > 0); |
|
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 | g = g_new0(gc_and_uid, 1); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
494 | g->gc = gc; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
495 | g->uid = uid; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
496 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
497 | gaim_request_action(gc, _("Block Buddy"), |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
498 | _("Are you sure to block this buddy?"), NULL, |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
499 | 1, g, 2, |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
500 | _("Cancel"), |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
501 | G_CALLBACK(qq_do_nothing_with_gc_and_uid), |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
502 | _("Block"), G_CALLBACK(qq_block_buddy_with_gc_and_uid)); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
503 | } |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
504 | */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
505 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
506 | /* show a brief summary of what we get from login packet */ |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14079
diff
changeset
|
507 | static void _qq_menu_show_login_info(GaimPluginAction *action) |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
508 | { |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
509 | GaimConnection *gc = (GaimConnection *) action->context; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
510 | qq_data *qd; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
511 | GString *info; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
512 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
513 | g_return_if_fail(gc != NULL && gc->proto_data != NULL); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
514 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
515 | qd = (qq_data *) gc->proto_data; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
516 | info = g_string_new("<html><body>\n"); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
517 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
518 | 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
|
519 | 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
|
520 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
521 | g_string_append(info, "<hr>\n"); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
522 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
523 | 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
|
524 | 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
|
525 | 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
|
526 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
527 | g_string_append(info, "<hr>\n"); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
528 | g_string_append(info, "<i>Information below may not be accurate</i><br>\n"); |
|
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 | 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
|
531 | 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
|
532 | 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
|
533 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
534 | g_string_append(info, "</body></html>"); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
535 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
536 | gaim_notify_formatted(gc, NULL, _("Login Information"), NULL, info->str, NULL, NULL); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
537 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
538 | g_string_free(info, TRUE); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
539 | } |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
540 | |
|
14304
1b119ac26ec3
[gaim-migrate @ 16924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14299
diff
changeset
|
541 | /* |
|
14114
5dedb32aaa35
[gaim-migrate @ 16665]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14113
diff
changeset
|
542 | static void _qq_menu_search_or_add_permanent_group(GaimPluginAction *action) |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
543 | { |
|
14114
5dedb32aaa35
[gaim-migrate @ 16665]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14113
diff
changeset
|
544 | gaim_roomlist_show_with_account(NULL); |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
545 | } |
|
14304
1b119ac26ec3
[gaim-migrate @ 16924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14299
diff
changeset
|
546 | */ |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
547 | |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
548 | /* |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
549 | static void _qq_menu_create_permanent_group(GaimPluginAction * action) |
|
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 | GaimConnection *gc = (GaimConnection *) action->context; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
552 | g_return_if_fail(gc != NULL); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
553 | gaim_request_input(gc, _("Create QQ Qun"), |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
554 | _("Input Qun name here"), |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
555 | _("Only QQ member can create permanent Qun"), |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
556 | "OpenQ", FALSE, FALSE, NULL, |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
557 | _("Create"), G_CALLBACK(qq_group_create_with_name), _("Cancel"), NULL, gc); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
558 | } |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
559 | */ |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
560 | |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
561 | static void _qq_menu_unsubscribe_group(GaimBlistNode * node) |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
562 | { |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
563 | GaimChat *chat = (GaimChat *)node; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
564 | GaimConnection *gc = gaim_account_get_connection(chat->account); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
565 | GHashTable *components = chat -> components; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
566 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
567 | g_return_if_fail(GAIM_BLIST_NODE_IS_CHAT(node)); |
|
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 | g_return_if_fail(gc != NULL && components != NULL); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
570 | qq_group_exit(gc, components); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
571 | } |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
572 | |
|
14466
4fcd9fdc8060
[gaim-migrate @ 17112]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14382
diff
changeset
|
573 | /* |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
574 | static void _qq_menu_manage_group(GaimBlistNode * node) |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
575 | { |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
576 | GaimChat *chat = (GaimChat *)node; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
577 | GaimConnection *gc = gaim_account_get_connection(chat->account); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
578 | GHashTable *components = chat -> components; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
579 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
580 | g_return_if_fail(GAIM_BLIST_NODE_IS_CHAT(node)); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
581 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
582 | g_return_if_fail(gc != NULL && components != NULL); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
583 | qq_group_manage_group(gc, components); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
584 | } |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
585 | */ |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
586 | |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
587 | /* |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
588 | static void _qq_menu_show_system_message(GaimPluginAction *action) |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
589 | { |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
590 | GaimConnection *gc = (GaimConnection *) action->context; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
591 | g_return_if_fail ( gc != NULL ); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
592 | gaim_gtk_log_show(GAIM_LOG_IM, "systemim", gaim_connection_get_account(gc)); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
593 | } |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
594 | */ |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
595 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
596 | /* TODO: re-enable this |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
597 | static void _qq_menu_send_file(GaimBlistNode * node, gpointer ignored) |
|
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 | GaimBuddy *buddy; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
600 | GaimConnection *gc; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
601 | qq_buddy *q_bud; |
|
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 | g_return_if_fail (GAIM_BLIST_NODE_IS_BUDDY (node)); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
604 | buddy = (GaimBuddy *) node; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
605 | q_bud = (qq_buddy *) buddy->proto_data; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
606 | // if (is_online (q_bud->status)) { |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
607 | gc = gaim_account_get_connection (buddy->account); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
608 | g_return_if_fail (gc != NULL && gc->proto_data != NULL); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
609 | qq_send_file(gc, buddy->name, NULL); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
610 | // } |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
611 | } |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
612 | */ |
|
14111
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
613 | |
|
14299
28dd8ab08304
[gaim-migrate @ 16919]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14257
diff
changeset
|
614 | /* attempt to output the value and byte length of a given field */ |
|
28dd8ab08304
[gaim-migrate @ 16919]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14257
diff
changeset
|
615 | /* |
|
14111
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
616 | static gboolean _qq_parse_custom_packet_field(GaimRequestFields *fields, |
|
14299
28dd8ab08304
[gaim-migrate @ 16919]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14257
diff
changeset
|
617 | const gchar *id, guint8 **value, gint *len, gboolean allow_null) |
|
14077
c7742fbe41fc
[gaim-migrate @ 16607]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14076
diff
changeset
|
618 | { |
|
14111
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
619 | GaimRequestField *field; |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
620 | const gchar *str; |
|
14299
28dd8ab08304
[gaim-migrate @ 16919]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14257
diff
changeset
|
621 | gint i; |
|
14111
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
622 | gboolean success; |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
623 | |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
624 | success = FALSE; |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
625 | field = gaim_request_fields_get_field(fields, id); |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
626 | str = gaim_request_field_string_get_value(field); |
|
14299
28dd8ab08304
[gaim-migrate @ 16919]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14257
diff
changeset
|
627 | if (!str && allow_null) { |
|
28dd8ab08304
[gaim-migrate @ 16919]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14257
diff
changeset
|
628 | return TRUE; |
|
28dd8ab08304
[gaim-migrate @ 16919]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14257
diff
changeset
|
629 | } else if (str) { |
|
14111
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
630 | success = TRUE; |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
631 | if (strcmp(id, "uid") != 0) { |
|
14299
28dd8ab08304
[gaim-migrate @ 16919]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14257
diff
changeset
|
632 | *value = hex_str_to_bytes(str, len); |
|
28dd8ab08304
[gaim-migrate @ 16919]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14257
diff
changeset
|
633 | if (!*value) |
|
14111
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
634 | success = FALSE; |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
635 | } else { |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
636 | for (i = 0; i < strlen(str); i++) { |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
637 | if (!g_ascii_isdigit(str[i])) { |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
638 | success = FALSE; |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
639 | break; |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
640 | } |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
641 | } |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
642 | if (success) { |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
643 | *(guint32 *) value = strtoul(str, NULL, 10); |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
644 | if (errno == ERANGE) |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
645 | success = FALSE; |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
646 | } |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
647 | } |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
648 | } |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
649 | if (!success) |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
650 | gaim_debug(GAIM_DEBUG_ERROR, "QQ", "Invalid entry: %s\n", id); |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
651 | return success; |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
652 | } |
|
14299
28dd8ab08304
[gaim-migrate @ 16919]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14257
diff
changeset
|
653 | */ |
|
14077
c7742fbe41fc
[gaim-migrate @ 16607]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14076
diff
changeset
|
654 | |
|
14299
28dd8ab08304
[gaim-migrate @ 16919]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14257
diff
changeset
|
655 | /* attempt to output the field values and body length */ |
|
28dd8ab08304
[gaim-migrate @ 16919]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14257
diff
changeset
|
656 | /* |
|
14111
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
657 | static gboolean _qq_parse_custom_packet_fields(GaimRequestFields *fields, |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
658 | guint8 **client, guint8 **cmd, guint8 **seq, guint32 *uid, |
|
14299
28dd8ab08304
[gaim-migrate @ 16919]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14257
diff
changeset
|
659 | guint8 **body, guint8 **key, gint *body_len) |
|
14111
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
660 | { |
|
14299
28dd8ab08304
[gaim-migrate @ 16919]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14257
diff
changeset
|
661 | gint len; |
|
14111
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
662 | gboolean success; |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
663 | |
|
14299
28dd8ab08304
[gaim-migrate @ 16919]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14257
diff
changeset
|
664 | success = FALSE; |
|
28dd8ab08304
[gaim-migrate @ 16919]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14257
diff
changeset
|
665 | *client = *cmd = *seq = *body = *key = NULL; |
|
28dd8ab08304
[gaim-migrate @ 16919]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14257
diff
changeset
|
666 | *uid = *body_len = 0; |
|
28dd8ab08304
[gaim-migrate @ 16919]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14257
diff
changeset
|
667 | if ((_qq_parse_custom_packet_field(fields, "client", client, &len, FALSE) |
|
28dd8ab08304
[gaim-migrate @ 16919]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14257
diff
changeset
|
668 | && len == 2 |
|
28dd8ab08304
[gaim-migrate @ 16919]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14257
diff
changeset
|
669 | && _qq_parse_custom_packet_field(fields, "cmd", cmd, &len, FALSE) |
|
28dd8ab08304
[gaim-migrate @ 16919]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14257
diff
changeset
|
670 | && len == 2 |
|
28dd8ab08304
[gaim-migrate @ 16919]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14257
diff
changeset
|
671 | && _qq_parse_custom_packet_field(fields, "uid", (guint8 **) uid, &len, FALSE) |
|
28dd8ab08304
[gaim-migrate @ 16919]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14257
diff
changeset
|
672 | && _qq_parse_custom_packet_field(fields, "seq", seq, &len, FALSE) |
|
28dd8ab08304
[gaim-migrate @ 16919]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14257
diff
changeset
|
673 | && len == 2 |
|
28dd8ab08304
[gaim-migrate @ 16919]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14257
diff
changeset
|
674 | && _qq_parse_custom_packet_field(fields, "body", body, body_len, TRUE))) { |
|
28dd8ab08304
[gaim-migrate @ 16919]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14257
diff
changeset
|
675 | if (*body_len > MAX_PACKET_SIZE / 8) { |
|
28dd8ab08304
[gaim-migrate @ 16919]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14257
diff
changeset
|
676 | g_free(*client); |
|
28dd8ab08304
[gaim-migrate @ 16919]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14257
diff
changeset
|
677 | g_free(*cmd); |
|
28dd8ab08304
[gaim-migrate @ 16919]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14257
diff
changeset
|
678 | g_free(*seq); |
|
28dd8ab08304
[gaim-migrate @ 16919]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14257
diff
changeset
|
679 | g_free(*body); |
|
28dd8ab08304
[gaim-migrate @ 16919]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14257
diff
changeset
|
680 | return FALSE; |
|
28dd8ab08304
[gaim-migrate @ 16919]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14257
diff
changeset
|
681 | } |
|
28dd8ab08304
[gaim-migrate @ 16919]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14257
diff
changeset
|
682 | if (!gaim_request_fields_get_bool(fields, "encrypt")) |
|
28dd8ab08304
[gaim-migrate @ 16919]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14257
diff
changeset
|
683 | return TRUE; |
|
28dd8ab08304
[gaim-migrate @ 16919]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14257
diff
changeset
|
684 | else |
|
28dd8ab08304
[gaim-migrate @ 16919]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14257
diff
changeset
|
685 | success = _qq_parse_custom_packet_field(fields, |
|
28dd8ab08304
[gaim-migrate @ 16919]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14257
diff
changeset
|
686 | "key", key, &len, FALSE) |
|
28dd8ab08304
[gaim-migrate @ 16919]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14257
diff
changeset
|
687 | && len == 16 |
|
28dd8ab08304
[gaim-migrate @ 16919]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14257
diff
changeset
|
688 | && *body_len > 0; |
|
28dd8ab08304
[gaim-migrate @ 16919]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14257
diff
changeset
|
689 | } |
|
28dd8ab08304
[gaim-migrate @ 16919]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14257
diff
changeset
|
690 | if (!success) { |
|
14111
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
691 | if (*client) |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
692 | g_free(*client); |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
693 | if (*cmd) |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
694 | g_free(*cmd); |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
695 | if (*seq) |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
696 | g_free(*seq); |
|
14299
28dd8ab08304
[gaim-migrate @ 16919]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14257
diff
changeset
|
697 | if (*key) |
|
28dd8ab08304
[gaim-migrate @ 16919]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14257
diff
changeset
|
698 | g_free(*key); |
|
28dd8ab08304
[gaim-migrate @ 16919]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14257
diff
changeset
|
699 | return FALSE; |
|
14077
c7742fbe41fc
[gaim-migrate @ 16607]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14076
diff
changeset
|
700 | } |
|
14299
28dd8ab08304
[gaim-migrate @ 16919]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14257
diff
changeset
|
701 | return TRUE; |
|
14111
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
702 | } |
|
14299
28dd8ab08304
[gaim-migrate @ 16919]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14257
diff
changeset
|
703 | */ |
|
14111
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
704 | |
|
14299
28dd8ab08304
[gaim-migrate @ 16919]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14257
diff
changeset
|
705 | /* parses the request fields and attempts to send the packet */ |
|
28dd8ab08304
[gaim-migrate @ 16919]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14257
diff
changeset
|
706 | /* |
|
14111
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
707 | static void _qq_send_custom_packet_cb(GaimConnection *gc, GaimRequestFields *fields) |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
708 | { |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
709 | guint32 uid; |
|
14299
28dd8ab08304
[gaim-migrate @ 16919]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14257
diff
changeset
|
710 | guint8 *buf, *client, *cmd, *seq, *body, *encr_body, *key, *cursor; |
|
28dd8ab08304
[gaim-migrate @ 16919]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14257
diff
changeset
|
711 | gint bytes, len, encr_len; |
|
14111
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
712 | qq_data *qd; |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
713 | gboolean success; |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
714 | |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
715 | qd = (qq_data *) gc->proto_data; |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
716 | |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
717 | success = _qq_parse_custom_packet_fields(fields, &client, &cmd, |
|
14299
28dd8ab08304
[gaim-migrate @ 16919]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14257
diff
changeset
|
718 | &seq, &uid, &body, &key, &len); |
|
14111
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
719 | if (!success) { |
|
14299
28dd8ab08304
[gaim-migrate @ 16919]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14257
diff
changeset
|
720 | gaim_notify_error(gc, _("Error"), _("Invalid entry"), NULL); |
|
14077
c7742fbe41fc
[gaim-migrate @ 16607]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14076
diff
changeset
|
721 | return; |
|
c7742fbe41fc
[gaim-migrate @ 16607]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14076
diff
changeset
|
722 | } |
|
c7742fbe41fc
[gaim-migrate @ 16607]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14076
diff
changeset
|
723 | |
|
14111
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
724 | bytes = 0; |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
725 | buf = g_newa(guint8, MAX_PACKET_SIZE); |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
726 | cursor = buf; |
|
14299
28dd8ab08304
[gaim-migrate @ 16919]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14257
diff
changeset
|
727 | */ |
|
14111
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
728 | /* QQ TCP packet has two bytes in the beginning to define packet length |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
729 | * so I leave room here for size */ |
|
14299
28dd8ab08304
[gaim-migrate @ 16919]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14257
diff
changeset
|
730 | /* |
|
14111
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
731 | if (qd->use_tcp) |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
732 | bytes += create_packet_w(buf, &cursor, 0x0000); |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
733 | bytes += create_packet_b(buf, &cursor, QQ_PACKET_TAG); |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
734 | bytes += create_packet_w(buf, &cursor, *(guint16 *) client); |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
735 | bytes += create_packet_w(buf, &cursor, *(guint16 *) cmd); |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
736 | bytes += create_packet_w(buf, &cursor, *(guint16 *) seq); |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
737 | bytes += create_packet_dw(buf, &cursor, uid); |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
738 | if (body) { |
|
14299
28dd8ab08304
[gaim-migrate @ 16919]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14257
diff
changeset
|
739 | if (gaim_request_fields_get_bool(fields, "encrypt")) { |
|
28dd8ab08304
[gaim-migrate @ 16919]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14257
diff
changeset
|
740 | if (gaim_request_fields_get_bool(fields, "prepend")) |
|
28dd8ab08304
[gaim-migrate @ 16919]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14257
diff
changeset
|
741 | bytes += create_packet_data(buf, &cursor, key, 16); |
|
28dd8ab08304
[gaim-migrate @ 16919]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14257
diff
changeset
|
742 | encr_body = g_newa(guint8, MAX_PACKET_SIZE); |
|
28dd8ab08304
[gaim-migrate @ 16919]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14257
diff
changeset
|
743 | qq_crypt(ENCRYPT, body, len, key, encr_body, &encr_len); |
|
28dd8ab08304
[gaim-migrate @ 16919]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14257
diff
changeset
|
744 | bytes += create_packet_data(buf, &cursor, encr_body, encr_len); |
|
28dd8ab08304
[gaim-migrate @ 16919]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14257
diff
changeset
|
745 | g_free(key); |
|
28dd8ab08304
[gaim-migrate @ 16919]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14257
diff
changeset
|
746 | } else { |
|
28dd8ab08304
[gaim-migrate @ 16919]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14257
diff
changeset
|
747 | bytes += create_packet_data(buf, &cursor, body, len); |
|
28dd8ab08304
[gaim-migrate @ 16919]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14257
diff
changeset
|
748 | } |
|
28dd8ab08304
[gaim-migrate @ 16919]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14257
diff
changeset
|
749 | |
|
14111
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
750 | g_free(body); |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
751 | } |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
752 | bytes += create_packet_b(buf, &cursor, QQ_PACKET_TAIL); |
|
14077
c7742fbe41fc
[gaim-migrate @ 16607]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14076
diff
changeset
|
753 | |
|
14111
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
754 | gaim_debug(GAIM_DEBUG_INFO, "QQ", "Custom packet of length %i\n", bytes); |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
755 | _qq_show_packet("Outgoing custom packet", buf, bytes); |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
756 | |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
757 | _qq_send_packet(gc, buf, bytes, *(guint16 *) cmd); |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
758 | g_free(client); |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
759 | g_free(cmd); |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
760 | g_free(seq); |
|
14077
c7742fbe41fc
[gaim-migrate @ 16607]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14076
diff
changeset
|
761 | } |
|
14299
28dd8ab08304
[gaim-migrate @ 16919]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14257
diff
changeset
|
762 | */ |
|
14077
c7742fbe41fc
[gaim-migrate @ 16607]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14076
diff
changeset
|
763 | |
|
c7742fbe41fc
[gaim-migrate @ 16607]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14076
diff
changeset
|
764 | /* send a custom packet to the server - for protocol testing */ |
|
14299
28dd8ab08304
[gaim-migrate @ 16919]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14257
diff
changeset
|
765 | /* |
|
14077
c7742fbe41fc
[gaim-migrate @ 16607]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14076
diff
changeset
|
766 | static void _qq_menu_send_custom_packet(GaimPluginAction *action) |
|
c7742fbe41fc
[gaim-migrate @ 16607]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14076
diff
changeset
|
767 | { |
|
14111
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
768 | GaimConnection *gc; |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
769 | GaimRequestFields *fields; |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
770 | GaimRequestFieldGroup *group; |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
771 | GaimRequestField *field; |
|
14559
78092ceb0bc3
[gaim-migrate @ 17216]
Daniel Atallah <datallah@pidgin.im>
parents:
14466
diff
changeset
|
772 | gchar tmp[15]; |
|
14111
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
773 | qq_data *qd; |
|
14559
78092ceb0bc3
[gaim-migrate @ 17216]
Daniel Atallah <datallah@pidgin.im>
parents:
14466
diff
changeset
|
774 | |
|
14111
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
775 | gc = (GaimConnection *) action->context; |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
776 | qd = (qq_data *) gc->proto_data; |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
777 | g_return_if_fail(gc != NULL && qd != NULL); |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
778 | |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
779 | fields = gaim_request_fields_new(); |
|
14299
28dd8ab08304
[gaim-migrate @ 16919]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14257
diff
changeset
|
780 | group = gaim_request_field_group_new(_("Basic Elements")); |
|
14111
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
781 | gaim_request_fields_add_group(fields, group); |
|
14559
78092ceb0bc3
[gaim-migrate @ 17216]
Daniel Atallah <datallah@pidgin.im>
parents:
14466
diff
changeset
|
782 | g_snprintf(tmp, sizeof(tmp), "%04X", QQ_CLIENT); |
|
14111
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
783 | field = gaim_request_field_string_new("client", _("Client (hex)"), tmp, FALSE); |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
784 | gaim_request_field_group_add_field(group, field); |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
785 | field = gaim_request_field_string_new("cmd", _("Command (hex)"), "0000", FALSE); |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
786 | gaim_request_field_group_add_field(group, field); |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
787 | field = gaim_request_field_string_new("seq", _("Sequence (hex)"), "0000", FALSE); |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
788 | gaim_request_field_group_add_field(group, field); |
|
14559
78092ceb0bc3
[gaim-migrate @ 17216]
Daniel Atallah <datallah@pidgin.im>
parents:
14466
diff
changeset
|
789 | g_snprintf(tmp, sizeof(tmp), "%u", qd->uid); |
|
14111
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
790 | field = gaim_request_field_string_new("uid", _("QQ Number (decimal)"), tmp, FALSE); |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
791 | gaim_request_field_group_add_field(group, field); |
|
14299
28dd8ab08304
[gaim-migrate @ 16919]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14257
diff
changeset
|
792 | field = gaim_request_field_string_new("body", _("Body (hex)"), NULL, TRUE); |
|
28dd8ab08304
[gaim-migrate @ 16919]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14257
diff
changeset
|
793 | gaim_request_field_group_add_field(group, field); |
|
28dd8ab08304
[gaim-migrate @ 16919]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14257
diff
changeset
|
794 | group = gaim_request_field_group_new(_("Encryption")); |
|
28dd8ab08304
[gaim-migrate @ 16919]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14257
diff
changeset
|
795 | gaim_request_fields_add_group(fields, group); |
|
28dd8ab08304
[gaim-migrate @ 16919]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14257
diff
changeset
|
796 | field = gaim_request_field_bool_new("encrypt", _("Encrypt Packet Body"), FALSE); |
|
14111
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
797 | gaim_request_field_group_add_field(group, field); |
|
14299
28dd8ab08304
[gaim-migrate @ 16919]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14257
diff
changeset
|
798 | field = gaim_request_field_bool_new("prepend", _("Prepend Key to Body"), FALSE); |
|
28dd8ab08304
[gaim-migrate @ 16919]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14257
diff
changeset
|
799 | gaim_request_field_group_add_field(group, field); |
|
28dd8ab08304
[gaim-migrate @ 16919]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14257
diff
changeset
|
800 | field = gaim_request_field_string_new("key", _("Encryption Key (hex)"), NULL, FALSE); |
|
28dd8ab08304
[gaim-migrate @ 16919]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14257
diff
changeset
|
801 | gaim_request_field_group_add_field(group, field); |
|
28dd8ab08304
[gaim-migrate @ 16919]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14257
diff
changeset
|
802 | |
|
14111
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
803 | |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
804 | gaim_request_fields(gc, _("Send a custom packet"), |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
805 | _("Send a custom packet"), NULL, fields, |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
806 | _("Send"), G_CALLBACK(_qq_send_custom_packet_cb), |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
807 | _("Cancel"), NULL, |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
808 | gc); |
|
14077
c7742fbe41fc
[gaim-migrate @ 16607]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14076
diff
changeset
|
809 | } |
|
14299
28dd8ab08304
[gaim-migrate @ 16919]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14257
diff
changeset
|
810 | */ |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
811 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
812 | /* protocol related menus */ |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14079
diff
changeset
|
813 | static GList *_qq_actions(GaimPlugin *plugin, gpointer context) |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
814 | { |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
815 | GList *m; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
816 | GaimPluginAction *act; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
817 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
818 | m = NULL; |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
819 | act = gaim_plugin_action_new(_("Modify My Information"), _qq_menu_modify_my_info); |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
820 | m = g_list_append(m, act); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
821 | |
|
14327
35a1e5dda285
[gaim-migrate @ 16947]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14304
diff
changeset
|
822 | act = gaim_plugin_action_new(_("Change My Face"), _qq_menu_change_face); |
|
35a1e5dda285
[gaim-migrate @ 16947]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14304
diff
changeset
|
823 | m = g_list_append(m, act); |
|
35a1e5dda285
[gaim-migrate @ 16947]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14304
diff
changeset
|
824 | |
|
14076
ac77316596dc
[gaim-migrate @ 16606]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14051
diff
changeset
|
825 | act = gaim_plugin_action_new(_("Change Password"), _qq_menu_change_password); |
|
ac77316596dc
[gaim-migrate @ 16606]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14051
diff
changeset
|
826 | m = g_list_append(m, act); |
|
ac77316596dc
[gaim-migrate @ 16606]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14051
diff
changeset
|
827 | |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
828 | act = gaim_plugin_action_new(_("Show Login Information"), _qq_menu_show_login_info); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
829 | m = g_list_append(m, act); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
830 | |
|
14299
28dd8ab08304
[gaim-migrate @ 16919]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14257
diff
changeset
|
831 | /* |
|
14077
c7742fbe41fc
[gaim-migrate @ 16607]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14076
diff
changeset
|
832 | act = gaim_plugin_action_new(_("Send Custom Packet"), _qq_menu_send_custom_packet); |
|
c7742fbe41fc
[gaim-migrate @ 16607]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14076
diff
changeset
|
833 | m = g_list_append(m, act); |
|
14299
28dd8ab08304
[gaim-migrate @ 16919]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14257
diff
changeset
|
834 | */ |
|
14077
c7742fbe41fc
[gaim-migrate @ 16607]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14076
diff
changeset
|
835 | |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
836 | /* XXX consider re-enabling this |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
837 | act = gaim_plugin_action_new(_("Show System Message"), _qq_menu_show_system_message); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
838 | m = g_list_append(m, act); |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
839 | */ |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
840 | |
|
14111
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
841 | /* |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
842 | act = gaim_plugin_action_new(_("Qun: Search a permanent Qun"), _qq_menu_search_or_add_permanent_group); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
843 | m = g_list_append(m, act); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
844 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
845 | act = gaim_plugin_action_new(_("Qun: Create a permanent Qun"), _qq_menu_create_permanent_group); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
846 | m = g_list_append(m, act); |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
847 | */ |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
848 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
849 | return m; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
850 | } |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
851 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
852 | /* chat-related (QQ Qun) menu shown up with right-click */ |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
853 | static GList *_qq_chat_menu(GaimBlistNode *node) |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
854 | { |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
855 | GList *m; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
856 | GaimMenuAction *act; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
857 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
858 | m = NULL; |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
859 | act = gaim_menu_action_new(_("Exit this QQ Qun"), GAIM_CALLBACK(_qq_menu_unsubscribe_group), NULL, NULL); |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
860 | m = g_list_append(m, act); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
861 | |
|
14466
4fcd9fdc8060
[gaim-migrate @ 17112]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14382
diff
changeset
|
862 | /* TODO: enable this |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
863 | act = gaim_menu_action_new(_("Show Details"), GAIM_CALLBACK(_qq_menu_manage_group), NULL, NULL); |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
864 | m = g_list_append(m, act); |
|
14466
4fcd9fdc8060
[gaim-migrate @ 17112]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14382
diff
changeset
|
865 | */ |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
866 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
867 | return m; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
868 | } |
|
14466
4fcd9fdc8060
[gaim-migrate @ 17112]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14382
diff
changeset
|
869 | |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
870 | /* buddy-related menu shown up with right-click */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
871 | static GList *_qq_buddy_menu(GaimBlistNode * node) |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
872 | { |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
873 | GList *m; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
874 | |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
875 | if(GAIM_BLIST_NODE_IS_CHAT(node)) |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
876 | return _qq_chat_menu(node); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
877 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
878 | m = NULL; |
|
14466
4fcd9fdc8060
[gaim-migrate @ 17112]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14382
diff
changeset
|
879 | return m; |
|
4fcd9fdc8060
[gaim-migrate @ 17112]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14382
diff
changeset
|
880 | } |
|
4fcd9fdc8060
[gaim-migrate @ 17112]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14382
diff
changeset
|
881 | |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
882 | /* TODO : not working, temp commented out by gfhuang |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
883 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
884 | act = gaim_menu_action_new(_("Block this buddy"), GAIM_CALLBACK(_qq_menu_block_buddy), NULL, NULL); //add NULL by gfhuang |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
885 | m = g_list_append(m, act); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
886 | // if (q_bud && is_online(q_bud->status)) { |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
887 | act = gaim_menu_action_new(_("Send File"), GAIM_CALLBACK(_qq_menu_send_file), NULL, NULL); //add NULL by gfhuang |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
888 | m = g_list_append(m, act); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
889 | // } |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
890 | */ |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
891 | /* |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
892 | return m; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
893 | } |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
894 | */ |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
895 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
896 | |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14079
diff
changeset
|
897 | static void _qq_keep_alive(GaimConnection *gc) |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
898 | { |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
899 | qq_group *group; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
900 | qq_data *qd; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
901 | GList *list; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
902 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
903 | g_return_if_fail(gc != NULL); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
904 | if (NULL == (qd = (qq_data *) gc->proto_data)) |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
905 | return; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
906 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
907 | list = qd->groups; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
908 | while (list != NULL) { |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
909 | group = (qq_group *) list->data; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
910 | if (group->my_status == QQ_GROUP_MEMBER_STATUS_IS_MEMBER || |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
911 | group->my_status == QQ_GROUP_MEMBER_STATUS_IS_ADMIN) |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14079
diff
changeset
|
912 | /* 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
|
913 | qq_send_cmd_group_get_online_members(gc, group); |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
914 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
915 | list = list->next; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
916 | } |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
917 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
918 | qq_send_packet_keep_alive(gc); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
919 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
920 | } |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
921 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
922 | /* convert chat nickname to qq-uid to get this buddy info */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
923 | /* who is the nickname of buddy in QQ chat-room (Qun) */ |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14079
diff
changeset
|
924 | static void _qq_get_chat_buddy_info(GaimConnection *gc, gint channel, const gchar *who) |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
925 | { |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
926 | gchar *gaim_name; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
927 | g_return_if_fail(gc != NULL && gc->proto_data != NULL && who != NULL); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
928 | |
|
14466
4fcd9fdc8060
[gaim-migrate @ 17112]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14382
diff
changeset
|
929 | gaim_name = chat_name_to_gaim_name(who); |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
930 | if (gaim_name != NULL) |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
931 | _qq_get_info(gc, gaim_name); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
932 | } |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
933 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
934 | /* 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
|
935 | /* who is the nickname of buddy in QQ chat-room (Qun) */ |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14079
diff
changeset
|
936 | static gchar *_qq_get_chat_buddy_real_name(GaimConnection *gc, gint channel, const gchar *who) |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
937 | { |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
938 | g_return_val_if_fail(gc != NULL && gc->proto_data != NULL && who != NULL, NULL); |
|
14466
4fcd9fdc8060
[gaim-migrate @ 17112]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14382
diff
changeset
|
939 | return chat_name_to_gaim_name(who); |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
940 | } |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
941 | |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14079
diff
changeset
|
942 | void qq_function_not_implemented(GaimConnection *gc) |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
943 | { |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14079
diff
changeset
|
944 | gaim_notify_warning(gc, NULL, |
|
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14079
diff
changeset
|
945 | _("This function has not be implemented yet"), _("Please wait for new version")); |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
946 | } |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
947 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
948 | GaimPlugin *my_protocol = NULL; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
949 | static GaimPluginProtocolInfo prpl_info = { |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
950 | OPT_PROTO_CHAT_TOPIC | OPT_PROTO_USE_POINTSIZE, |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
951 | NULL, /* user_splits */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
952 | NULL, /* protocol_options */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
953 | NO_BUDDY_ICONS, /* icon_spec */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
954 | _qq_list_icon, /* list_icon */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
955 | _qq_list_emblems, /* list_emblems */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
956 | _qq_status_text, /* status_text */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
957 | _qq_tooltip_text, /* tooltip_text */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
958 | _qq_away_states, /* away_states */ |
|
14466
4fcd9fdc8060
[gaim-migrate @ 17112]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14382
diff
changeset
|
959 | _qq_buddy_menu, /* blist_node_menu */ |
|
4fcd9fdc8060
[gaim-migrate @ 17112]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14382
diff
changeset
|
960 | qq_chat_info, /* chat_info */ |
|
4fcd9fdc8060
[gaim-migrate @ 17112]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14382
diff
changeset
|
961 | qq_chat_info_defaults, /* chat_info_defaults */ |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
962 | _qq_login, /* login */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
963 | _qq_close, /* close */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
964 | _qq_send_im, /* send_im */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
965 | NULL, /* set_info */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
966 | NULL, /* send_typing */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
967 | _qq_get_info, /* get_info */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
968 | _qq_set_away, /* set_away */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
969 | NULL, /* set_idle */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
970 | NULL, /* change_passwd */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
971 | qq_add_buddy, /* add_buddy */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
972 | NULL, /* add_buddies */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
973 | qq_remove_buddy, /* remove_buddy */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
974 | NULL, /* remove_buddies */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
975 | NULL, /* add_permit */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
976 | NULL, /* add_deny */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
977 | NULL, /* rem_permit */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
978 | NULL, /* rem_deny */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
979 | NULL, /* set_permit_deny */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
980 | qq_group_join, /* join_chat */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
981 | NULL, /* reject chat invite */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
982 | NULL, /* get_chat_name */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
983 | NULL, /* chat_invite */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
984 | NULL, /* chat_leave */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
985 | NULL, /* chat_whisper */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
986 | _qq_chat_send, /* chat_send */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
987 | _qq_keep_alive, /* keepalive */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
988 | NULL, /* register_user */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
989 | _qq_get_chat_buddy_info, /* get_cb_info */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
990 | NULL, /* get_cb_away */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
991 | NULL, /* alias_buddy */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
992 | NULL, /* group_buddy */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
993 | NULL, /* rename_group */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
994 | NULL, /* buddy_free */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
995 | NULL, /* convo_closed */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
996 | NULL, /* normalize */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
997 | NULL, /* set_buddy_icon */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
998 | NULL, /* remove_group */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
999 | _qq_get_chat_buddy_real_name, /* get_cb_real_name */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
1000 | NULL, /* set_chat_topic */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
1001 | NULL, /* find_blist_chat */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
1002 | qq_roomlist_get_list, /* roomlist_get_list */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
1003 | qq_roomlist_cancel, /* roomlist_cancel */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
1004 | NULL, /* roomlist_expand_category */ |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
1005 | NULL, /* can_receive_file */ |
|
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
1006 | qq_send_file, /* send_file */ |
|
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
1007 | NULL, /* new xfer */ |
|
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
1008 | NULL, /* offline_message */ |
|
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
1009 | NULL, /* GaimWhiteboardPrplOps */ |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
1010 | }; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
1011 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
1012 | static GaimPluginInfo info = { |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
1013 | GAIM_PLUGIN_MAGIC, |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
1014 | GAIM_MAJOR_VERSION, |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
1015 | GAIM_MINOR_VERSION, |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
1016 | GAIM_PLUGIN_PROTOCOL, /**< type */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
1017 | NULL, /**< ui_requirement */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
1018 | 0, /**< flags */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
1019 | NULL, /**< dependencies */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
1020 | GAIM_PRIORITY_DEFAULT, /**< priority */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
1021 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
1022 | "prpl-qq", /**< id */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
1023 | "QQ", /**< name */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
1024 | VERSION, /**< version */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
1025 | /** summary */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
1026 | N_("QQ Protocol Plugin"), |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
1027 | /** description */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
1028 | N_("QQ Protocol Plugin"), |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
1029 | OPENQ_AUTHOR, /**< author */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
1030 | OPENQ_WEBSITE, /**< homepage */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
1031 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
1032 | NULL, /**< load */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
1033 | NULL, /**< unload */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
1034 | NULL, /**< destroy */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
1035 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
1036 | NULL, /**< ui_info */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
1037 | &prpl_info, /**< extra_info */ |
|
14466
4fcd9fdc8060
[gaim-migrate @ 17112]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14382
diff
changeset
|
1038 | NULL, /**< prefs_info */ |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
1039 | _qq_actions |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
1040 | }; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
1041 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
1042 | |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14079
diff
changeset
|
1043 | static void init_plugin(GaimPlugin *plugin) |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
1044 | { |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
1045 | GaimAccountOption *option; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
1046 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
1047 | option = gaim_account_option_bool_new(_("Login in TCP"), "use_tcp", FALSE); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
1048 | 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
|
1049 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
1050 | option = gaim_account_option_bool_new(_("Login Hidden"), "hidden", FALSE); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
1051 | 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
|
1052 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
1053 | option = gaim_account_option_string_new(_("QQ Server"), "server", NULL); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
1054 | 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
|
1055 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
1056 | option = gaim_account_option_string_new(_("QQ Port"), "port", NULL); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
1057 | 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
|
1058 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
1059 | my_protocol = plugin; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
1060 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
1061 | gaim_prefs_add_none("/plugins/prpl/qq"); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
1062 | gaim_prefs_add_bool("/plugins/prpl/qq/show_status_by_icon", TRUE); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
1063 | gaim_prefs_add_bool("/plugins/prpl/qq/show_fake_video", FALSE); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
1064 | gaim_prefs_add_bool("/plugins/prpl/qq/prompt_for_missing_packet", TRUE); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
1065 | gaim_prefs_add_bool("/plugins/prpl/qq/prompt_group_msg_on_recv", TRUE); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
1066 | } |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
1067 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
1068 | GAIM_INIT_PLUGIN(qq, init_plugin, info); |