Sat, 16 Dec 2006 04:59:55 +0000
This is a hand-crafted commit to migrate across subversion revisions
16854:16861, due to some vagaries of the way the original renames were
done. Witness that monotone can do in one revision what svn had to
spread across several.
|
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" |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14079
diff
changeset
|
43 | #include "group.h" |
|
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14079
diff
changeset
|
44 | #include "group_find.h" |
|
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14079
diff
changeset
|
45 | #include "group_im.h" |
|
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14079
diff
changeset
|
46 | #include "group_info.h" |
|
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14079
diff
changeset
|
47 | #include "group_join.h" |
|
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14079
diff
changeset
|
48 | #include "group_opt.h" |
|
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14079
diff
changeset
|
49 | #include "header_info.h" |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
50 | #include "im.h" |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
51 | #include "keep_alive.h" |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
52 | #include "login_logout.h" |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14079
diff
changeset
|
53 | #include "packet_parse.h" |
|
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14079
diff
changeset
|
54 | #include "qq.h" |
|
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14079
diff
changeset
|
55 | #include "qq_proxy.h" |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
56 | #include "send_core.h" |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
57 | #include "send_file.h" |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14079
diff
changeset
|
58 | #include "utils.h" |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
59 | #include "version.h" |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
60 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
61 | #define OPENQ_AUTHOR "Puzzlebird" |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
62 | #define OPENQ_WEBSITE "http://openq.sourceforge.net" |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
63 | #define QQ_TCP_QUERY_PORT "8000" |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
64 | #define QQ_UDP_PORT "8000" |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
65 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
66 | const gchar *udp_server_list[] = { |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14079
diff
changeset
|
67 | "sz.tencent.com", /* 61.144.238.145 */ |
|
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14079
diff
changeset
|
68 | "sz2.tencent.com", /* 61.144.238.146 */ |
|
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14079
diff
changeset
|
69 | "sz3.tencent.com", /* 202.104.129.251 */ |
|
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14079
diff
changeset
|
70 | "sz4.tencent.com", /* 202.104.129.254 */ |
|
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14079
diff
changeset
|
71 | "sz5.tencent.com", /* 61.141.194.203 */ |
|
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14079
diff
changeset
|
72 | "sz6.tencent.com", /* 202.104.129.252 */ |
|
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14079
diff
changeset
|
73 | "sz7.tencent.com", /* 202.104.129.253 */ |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
74 | "202.96.170.64", |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
75 | "64.144.238.155", |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
76 | "202.104.129.254" |
|
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[] = { |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14079
diff
changeset
|
82 | "tcpconn.tencent.com", /* 218.17.209.23 */ |
|
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14079
diff
changeset
|
83 | "tcpconn2.tencent.com", /* 218.18.95.153 */ |
|
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14079
diff
changeset
|
84 | "tcpconn3.tencent.com", /* 218.17.209.23 */ |
|
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14079
diff
changeset
|
85 | "tcpconn4.tencent.com" /* 218.18.95.153 */ |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
86 | }; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
87 | 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
|
88 | |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14079
diff
changeset
|
89 | static void _qq_login(GaimAccount *account) |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
90 | { |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
91 | const gchar *qq_server, *qq_port; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
92 | qq_data *qd; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
93 | GaimConnection *gc; |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
94 | GaimPresence *presence; |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
95 | gboolean login_hidden, use_tcp; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
96 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
97 | g_return_if_fail(account != NULL); |
|
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 | gc = gaim_account_get_connection(account); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
100 | g_return_if_fail(gc != NULL); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
101 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
102 | 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
|
103 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
104 | qd = g_new0(qq_data, 1); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
105 | gc->proto_data = qd; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
106 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
107 | qq_server = gaim_account_get_string(account, "server", NULL); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
108 | qq_port = gaim_account_get_string(account, "port", NULL); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
109 | use_tcp = gaim_account_get_bool(account, "use_tcp", FALSE); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
110 | presence = gaim_account_get_presence(account); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
111 | login_hidden = gaim_presence_is_status_primitive_active(presence, GAIM_STATUS_INVISIBLE); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
112 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
113 | qd->use_tcp = use_tcp; |
|
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 | if (login_hidden) { |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
116 | qd->login_mode = QQ_LOGIN_MODE_HIDDEN; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
117 | gaim_debug(GAIM_DEBUG_INFO, "QQ", "Login in hidden mode\n"); |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14079
diff
changeset
|
118 | } else { |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
119 | qd->login_mode = QQ_LOGIN_MODE_NORMAL; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
120 | gaim_debug(GAIM_DEBUG_INFO, "QQ", "Login in normal mode\n"); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
121 | } |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
122 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
123 | if (qq_server == NULL || strlen(qq_server) == 0) |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
124 | qq_server = use_tcp ? |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
125 | tcp_server_list[random() % tcp_server_amount] : udp_server_list[random() % udp_server_amount]; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
126 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
127 | if (qq_port == NULL || strtol(qq_port, NULL, 10) == 0) |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
128 | qq_port = use_tcp ? QQ_TCP_QUERY_PORT : QQ_UDP_PORT; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
129 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
130 | gaim_connection_update_progress(gc, _("Connecting"), 0, QQ_CONNECT_STEPS); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
131 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
132 | 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
|
133 | gaim_connection_error(gc, _("Unable to connect.")); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
134 | } |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
135 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
136 | /* directly goes for qq_disconnect */ |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14079
diff
changeset
|
137 | static void _qq_close(GaimConnection *gc) |
|
13932
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 | g_return_if_fail(gc != NULL); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
140 | qq_disconnect(gc); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
141 | } |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
142 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
143 | /* returns the icon name for a buddy or protocol */ |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14079
diff
changeset
|
144 | static const gchar *_qq_list_icon(GaimAccount *a, GaimBuddy *b) |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
145 | { |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
146 | /* XXX temp commented out until we figure out what to do with |
|
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
147 | * status icons */ |
|
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
148 | /* |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
149 | gchar *filename; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
150 | qq_buddy *q_bud; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
151 | gchar icon_suffix; |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
152 | */ |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
153 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
154 | /* 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
|
155 | if (b == NULL || b->proto_data == NULL) |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
156 | return "qq"; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
157 | |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
158 | /* |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
159 | q_bud = (qq_buddy *) b->proto_data; |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
160 | |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
161 | icon_suffix = get_suffix_from_status(q_bud->status); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
162 | filename = get_icon_name(q_bud->icon / 3 + 1, icon_suffix); |
|
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 | return filename; |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
165 | */ |
|
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
166 | return "qq"; |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
167 | } |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
168 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
169 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
170 | /* a short status text beside buddy icon*/ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
171 | static gchar *_qq_status_text(GaimBuddy *b) |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
172 | { |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
173 | qq_buddy *q_bud; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
174 | GString *status; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
175 | gchar *ret; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
176 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
177 | q_bud = (qq_buddy *) b->proto_data; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
178 | if (q_bud == NULL) |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
179 | return NULL; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
180 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
181 | status = g_string_new(""); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
182 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
183 | switch(q_bud->status) { |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
184 | case QQ_BUDDY_OFFLINE: |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
185 | g_string_append(status, "My Offline"); |
|
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_NORMAL: |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
188 | return NULL; |
|
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_OFFLINE: |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
191 | g_string_append(status, "Online Offline"); |
|
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 | case QQ_BUDDY_ONLINE_AWAY: |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
194 | g_string_append(status, "Away"); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
195 | break; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
196 | case QQ_BUDDY_ONLINE_INVISIBLE: |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
197 | g_string_append(status, "Invisible"); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
198 | break; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
199 | default: |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
200 | g_string_printf(status, "Unknown-%d", q_bud->status); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
201 | } |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
202 | /* |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
203 | switch (q_bud->gender) { |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
204 | case QQ_BUDDY_GENDER_GG: |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
205 | g_string_append(status, " GG"); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
206 | break; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
207 | case QQ_BUDDY_GENDER_MM: |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
208 | g_string_append(status, " MM"); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
209 | break; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
210 | case QQ_BUDDY_GENDER_UNKNOWN: |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
211 | g_string_append(status, "^_*"); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
212 | break; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
213 | default: |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
214 | g_string_append(status, "^_^"); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
215 | } |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
216 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
217 | g_string_append_printf(status, " Age: %d", q_bud->age); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
218 | g_string_append_printf(status, " Client: %04x", q_bud->client_version); |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14079
diff
changeset
|
219 | having_video = q_bud->comm_flag & QQ_COMM_FLAG_VIDEO; |
|
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14079
diff
changeset
|
220 | if (having_video) |
|
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14079
diff
changeset
|
221 | g_string_append(status, " (video)"); |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
222 | */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
223 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
224 | ret = status->str; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
225 | g_string_free(status, FALSE); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
226 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
227 | return ret; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
228 | } |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
229 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
230 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
231 | /* 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
|
232 | static void _qq_tooltip_text(GaimBuddy *b, GString *tooltip, gboolean full) |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
233 | { |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
234 | qq_buddy *q_bud; |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14079
diff
changeset
|
235 | /* gchar *country, *country_utf8, *city, *city_utf8; |
|
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14079
diff
changeset
|
236 | guint32 ip_value; |
|
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14079
diff
changeset
|
237 | */ |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
238 | gchar *ip_str; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
239 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
240 | g_return_if_fail(b != NULL); |
|
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 | q_bud = (qq_buddy *) b->proto_data; |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14079
diff
changeset
|
243 | /* g_return_if_fail(q_bud != NULL); */ |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
244 | |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
245 | if (GAIM_BUDDY_IS_ONLINE(b) && q_bud != NULL) |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
246 | { |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
247 | ip_str = gen_ip_str(q_bud->ip); |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
248 | if (strlen(ip_str) != 0) { |
|
14113
11e7837a35e9
[gaim-migrate @ 16664]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14111
diff
changeset
|
249 | 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
|
250 | (q_bud->comm_flag & QQ_COMM_FLAG_TCP_MODE) |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
251 | ? "TCP" : "UDP", ip_str, q_bud->port); |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
252 | } |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
253 | g_free(ip_str); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
254 | 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
|
255 | switch (q_bud->gender) { |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
256 | case QQ_BUDDY_GENDER_GG: |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
257 | g_string_append(tooltip, "\n<b>Gender:</b> GG"); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
258 | break; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
259 | case QQ_BUDDY_GENDER_MM: |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
260 | g_string_append(tooltip, "\n<b>Gender:</b> MM"); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
261 | break; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
262 | case QQ_BUDDY_GENDER_UNKNOWN: |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
263 | g_string_append(tooltip, "\n<b>Gender:</b> UNKNOWN"); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
264 | break; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
265 | default: |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
266 | g_string_append_printf(tooltip, "\n<b>Gender:</b> ERROR(%d)", q_bud->gender); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
267 | } /* switch gender */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
268 | 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
|
269 | 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
|
270 | g_string_append_printf(tooltip, "\n<b>Client:</b> %04x", q_bud->client_version); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
271 | } |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
272 | } |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
273 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
274 | /* 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
|
275 | 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
|
276 | { |
|
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14079
diff
changeset
|
277 | /* 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
|
278 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
279 | qq_buddy *q_bud = b->proto_data; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
280 | const char *emblems[4] = { NULL, NULL, NULL, NULL }; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
281 | int i = 0; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
282 | |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14079
diff
changeset
|
283 | if (q_bud == NULL) { |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
284 | emblems[0] = "offline"; |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14079
diff
changeset
|
285 | } else { |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
286 | if (q_bud->comm_flag & QQ_COMM_FLAG_QQ_MEMBER) |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
287 | emblems[i++] = "qq_member"; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
288 | if (q_bud->comm_flag & QQ_COMM_FLAG_BIND_MOBILE) |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
289 | emblems[i++] = "wireless"; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
290 | if (q_bud->comm_flag & QQ_COMM_FLAG_VIDEO) |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
291 | emblems[i++] = "video"; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
292 | |
|
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 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
295 | *se = emblems[0]; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
296 | *sw = emblems[1]; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
297 | *nw = emblems[2]; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
298 | *ne = emblems[3]; |
|
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 | return; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
301 | } |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
302 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
303 | /* QQ away status (used to initiate QQ away packet) */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
304 | static GList *_qq_away_states(GaimAccount *ga) |
|
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 | GaimStatusType *status; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
307 | GList *types = NULL; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
308 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
309 | status = gaim_status_type_new_full(GAIM_STATUS_AVAILABLE, |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
310 | "available", _("QQ: Available"), FALSE, TRUE, FALSE); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
311 | types = g_list_append(types, status); |
|
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 | status = gaim_status_type_new_full(GAIM_STATUS_AWAY, |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
314 | "away", _("QQ: Away"), FALSE, TRUE, FALSE); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
315 | types = g_list_append(types, status); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
316 | |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
317 | status = gaim_status_type_new_full(GAIM_STATUS_INVISIBLE, |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
318 | "invisible", _("QQ: Invisible"), FALSE, TRUE, FALSE); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
319 | types = g_list_append(types, status); |
|
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 | status = gaim_status_type_new_full(GAIM_STATUS_OFFLINE, |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
322 | "offline", _("QQ: Offline"), FALSE, TRUE, FALSE); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
323 | types = g_list_append(types, status); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
324 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
325 | return types; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
326 | } |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
327 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
328 | /* initiate QQ away with proper change_status packet */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
329 | static void _qq_set_away(GaimAccount *account, GaimStatus *status) |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
330 | { |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
331 | GaimConnection *gc = gaim_account_get_connection(account); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
332 | const char *state = gaim_status_get_id(status); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
333 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
334 | qq_data *qd; |
|
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 | g_return_if_fail(gc != NULL && gc->proto_data != NULL); |
|
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 | qd = (qq_data *) gc->proto_data; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
340 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
341 | if(0 == strcmp(state, "available")) |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
342 | qd->status = QQ_SELF_STATUS_AVAILABLE; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
343 | else if (0 == strcmp(state, "away")) |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
344 | qd->status = QQ_SELF_STATUS_AWAY; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
345 | else if (0 == strcmp(state, "invisible")) |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
346 | qd->status = QQ_SELF_STATUS_INVISIBLE; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
347 | else |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
348 | qd->status = QQ_SELF_STATUS_AVAILABLE; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
349 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
350 | qq_send_packet_change_status(gc); |
|
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 | |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14079
diff
changeset
|
353 | /* IMPORTANT: GaimConvImFlags -> GaimMessageFlags */ |
|
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14079
diff
changeset
|
354 | /* send an instant msg to a buddy */ |
|
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14079
diff
changeset
|
355 | 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
|
356 | { |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
357 | gint type, to_uid; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
358 | gchar *msg, *msg_with_qq_smiley; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
359 | qq_data *qd; |
|
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 | 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
|
362 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
363 | qd = (qq_data *) gc->proto_data; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
364 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
365 | 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
|
366 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
367 | 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
|
368 | to_uid = gaim_name_to_uid(who); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
369 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
370 | /* if msg is to myself, bypass the network */ |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14079
diff
changeset
|
371 | if (to_uid == qd->uid) { |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
372 | serv_got_im(gc, who, message, flags, time(NULL)); |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14079
diff
changeset
|
373 | } else { |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
374 | msg = utf8_to_qq(message, QQ_CHARSET_DEFAULT); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
375 | msg_with_qq_smiley = gaim_smiley_to_qq(msg); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
376 | 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
|
377 | g_free(msg); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
378 | g_free(msg_with_qq_smiley); |
|
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 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
381 | return 1; |
|
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 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
384 | /* send a chat msg to a QQ Qun */ |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
385 | 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
|
386 | { |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
387 | gchar *msg, *msg_with_qq_smiley; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
388 | qq_group *group; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
389 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
390 | g_return_val_if_fail(gc != NULL && message != NULL, -1); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
391 | 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
|
392 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
393 | group = qq_group_find_by_channel(gc, channel); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
394 | g_return_val_if_fail(group != NULL, -1); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
395 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
396 | msg = utf8_to_qq(message, QQ_CHARSET_DEFAULT); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
397 | msg_with_qq_smiley = gaim_smiley_to_qq(msg); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
398 | qq_send_packet_group_im(gc, group, msg_with_qq_smiley); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
399 | g_free(msg); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
400 | g_free(msg_with_qq_smiley); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
401 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
402 | return 1; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
403 | } |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
404 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
405 | /* send packet to get who's detailed information */ |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14079
diff
changeset
|
406 | static void _qq_get_info(GaimConnection *gc, const gchar *who) |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
407 | { |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
408 | guint32 uid; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
409 | qq_data *qd; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
410 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
411 | g_return_if_fail(gc != NULL && gc->proto_data != NULL); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
412 | qd = gc->proto_data; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
413 | uid = gaim_name_to_uid(who); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
414 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
415 | if (uid <= 0) { |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
416 | gaim_debug(GAIM_DEBUG_ERROR, "QQ", "Not valid QQid: %s\n", who); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
417 | gaim_notify_error(gc, NULL, _("Invalid name, please input in qq-xxxxxxxx format"), NULL); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
418 | return; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
419 | } |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
420 | |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
421 | qq_send_packet_get_info(gc, uid, TRUE); |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
422 | } |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
423 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
424 | /* get my own information */ |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14079
diff
changeset
|
425 | static void _qq_menu_modify_my_info(GaimPluginAction *action) |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
426 | { |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
427 | GaimConnection *gc = (GaimConnection *) action->context; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
428 | qq_data *qd; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
429 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
430 | g_return_if_fail(gc != NULL && gc->proto_data != NULL); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
431 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
432 | qd = (qq_data *) gc->proto_data; |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
433 | qq_prepare_modify_info(gc); |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
434 | } |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
435 | |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14079
diff
changeset
|
436 | static void _qq_menu_change_password(GaimPluginAction *action) |
|
14076
ac77316596dc
[gaim-migrate @ 16606]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14051
diff
changeset
|
437 | { |
|
14077
c7742fbe41fc
[gaim-migrate @ 16607]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14076
diff
changeset
|
438 | gaim_notify_uri(NULL, "https://password.qq.com"); |
|
14076
ac77316596dc
[gaim-migrate @ 16606]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14051
diff
changeset
|
439 | } |
|
ac77316596dc
[gaim-migrate @ 16606]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14051
diff
changeset
|
440 | |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
441 | /* 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
|
442 | /* TODO: re-enable this |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
443 | static void _qq_menu_block_buddy(GaimBlistNode * node) |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
444 | { |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
445 | guint32 uid; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
446 | gc_and_uid *g; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
447 | GaimBuddy *buddy; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
448 | GaimConnection *gc; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
449 | // const gchar *who = param_who; gfhuang |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
450 | const gchar *who; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
451 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
452 | g_return_if_fail(GAIM_BLIST_NODE_IS_BUDDY(node)); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
453 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
454 | buddy = (GaimBuddy *) node; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
455 | gc = gaim_account_get_connection(buddy->account); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
456 | who = buddy->name; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
457 | g_return_if_fail(gc != NULL && who != NULL); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
458 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
459 | uid = gaim_name_to_uid(who); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
460 | g_return_if_fail(uid > 0); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
461 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
462 | g = g_new0(gc_and_uid, 1); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
463 | g->gc = gc; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
464 | g->uid = uid; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
465 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
466 | gaim_request_action(gc, _("Block Buddy"), |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
467 | _("Are you sure to block this buddy?"), NULL, |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
468 | 1, g, 2, |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
469 | _("Cancel"), |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
470 | G_CALLBACK(qq_do_nothing_with_gc_and_uid), |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
471 | _("Block"), G_CALLBACK(qq_block_buddy_with_gc_and_uid)); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
472 | } |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
473 | */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
474 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
475 | /* 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
|
476 | static void _qq_menu_show_login_info(GaimPluginAction *action) |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
477 | { |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
478 | GaimConnection *gc = (GaimConnection *) action->context; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
479 | qq_data *qd; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
480 | GString *info; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
481 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
482 | g_return_if_fail(gc != NULL && gc->proto_data != NULL); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
483 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
484 | qd = (qq_data *) gc->proto_data; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
485 | info = g_string_new("<html><body>\n"); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
486 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
487 | 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
|
488 | 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
|
489 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
490 | g_string_append(info, "<hr>\n"); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
491 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
492 | 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
|
493 | 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
|
494 | 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
|
495 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
496 | g_string_append(info, "<hr>\n"); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
497 | 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
|
498 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
499 | 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
|
500 | 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
|
501 | 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
|
502 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
503 | g_string_append(info, "</body></html>"); |
|
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 | 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
|
506 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
507 | g_string_free(info, TRUE); |
|
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 | |
|
14114
5dedb32aaa35
[gaim-migrate @ 16665]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14113
diff
changeset
|
510 | 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
|
511 | { |
|
14114
5dedb32aaa35
[gaim-migrate @ 16665]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14113
diff
changeset
|
512 | gaim_roomlist_show_with_account(NULL); |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
513 | } |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
514 | |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
515 | /* |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
516 | static void _qq_menu_create_permanent_group(GaimPluginAction * action) |
|
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 | GaimConnection *gc = (GaimConnection *) action->context; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
519 | g_return_if_fail(gc != NULL); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
520 | gaim_request_input(gc, _("Create QQ Qun"), |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
521 | _("Input Qun name here"), |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
522 | _("Only QQ member can create permanent Qun"), |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
523 | "OpenQ", FALSE, FALSE, NULL, |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
524 | _("Create"), G_CALLBACK(qq_group_create_with_name), _("Cancel"), NULL, gc); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
525 | } |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
526 | */ |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
527 | |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
528 | /* XXX re-enable this |
|
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
529 | static void _qq_menu_unsubscribe_group(GaimBlistNode * node) |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
530 | { |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
531 | GaimChat *chat = (GaimChat *)node; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
532 | GaimConnection *gc = gaim_account_get_connection(chat->account); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
533 | GHashTable *components = chat -> components; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
534 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
535 | g_return_if_fail(GAIM_BLIST_NODE_IS_CHAT(node)); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
536 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
537 | g_return_if_fail(gc != NULL && components != NULL); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
538 | qq_group_exit(gc, components); |
|
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 | |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
541 | // XXX re-enable this |
|
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
542 | static void _qq_menu_manage_group(GaimBlistNode * node) |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
543 | { |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
544 | GaimChat *chat = (GaimChat *)node; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
545 | GaimConnection *gc = gaim_account_get_connection(chat->account); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
546 | GHashTable *components = chat -> components; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
547 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
548 | g_return_if_fail(GAIM_BLIST_NODE_IS_CHAT(node)); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
549 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
550 | g_return_if_fail(gc != NULL && components != NULL); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
551 | qq_group_manage_group(gc, components); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
552 | } |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
553 | */ |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
554 | |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
555 | /* |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
556 | static void _qq_menu_show_system_message(GaimPluginAction *action) |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
557 | { |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
558 | GaimConnection *gc = (GaimConnection *) action->context; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
559 | g_return_if_fail ( gc != NULL ); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
560 | 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
|
561 | } |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
562 | */ |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
563 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
564 | /* TODO: re-enable this |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
565 | static void _qq_menu_send_file(GaimBlistNode * node, gpointer ignored) |
|
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 | GaimBuddy *buddy; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
568 | GaimConnection *gc; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
569 | qq_buddy *q_bud; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
570 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
571 | g_return_if_fail (GAIM_BLIST_NODE_IS_BUDDY (node)); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
572 | buddy = (GaimBuddy *) node; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
573 | q_bud = (qq_buddy *) buddy->proto_data; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
574 | // if (is_online (q_bud->status)) { |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
575 | gc = gaim_account_get_connection (buddy->account); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
576 | g_return_if_fail (gc != NULL && gc->proto_data != NULL); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
577 | qq_send_file(gc, buddy->name, NULL); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
578 | // } |
|
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 | */ |
|
14111
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
581 | |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
582 | static gboolean _qq_parse_custom_packet_field(GaimRequestFields *fields, |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
583 | const gchar *id, guint8 **value) |
|
14077
c7742fbe41fc
[gaim-migrate @ 16607]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14076
diff
changeset
|
584 | { |
|
14111
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
585 | GaimRequestField *field; |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
586 | const gchar *str; |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
587 | gint len, i; |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
588 | gboolean success; |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
589 | |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
590 | success = FALSE; |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
591 | field = gaim_request_fields_get_field(fields, id); |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
592 | str = gaim_request_field_string_get_value(field); |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
593 | if (str) { |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
594 | success = TRUE; |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
595 | if (strcmp(id, "uid") != 0) { |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
596 | *value = hex_str_to_bytes(str, &len); |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
597 | if (!*value || len != 2) |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
598 | success = FALSE; |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
599 | } else { |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
600 | for (i = 0; i < strlen(str); i++) { |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
601 | if (!g_ascii_isdigit(str[i])) { |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
602 | success = FALSE; |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
603 | break; |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
604 | } |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
605 | } |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
606 | if (success) { |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
607 | *(guint32 *) value = strtoul(str, NULL, 10); |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
608 | if (errno == ERANGE) |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
609 | success = FALSE; |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
610 | } |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
611 | } |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
612 | } |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
613 | if (!success) |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
614 | 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
|
615 | return success; |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
616 | } |
|
14077
c7742fbe41fc
[gaim-migrate @ 16607]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14076
diff
changeset
|
617 | |
|
14111
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
618 | static gboolean _qq_parse_custom_packet_fields(GaimRequestFields *fields, |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
619 | guint8 **client, guint8 **cmd, guint8 **seq, guint32 *uid, |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
620 | guint8 **body, gint *body_len) |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
621 | { |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
622 | GaimRequestField *field; |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
623 | gboolean success; |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
624 | |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
625 | success = TRUE; |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
626 | *client = *cmd = *seq = *body = NULL; |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
627 | *uid = 0; |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
628 | success = _qq_parse_custom_packet_field(fields, "client", client); |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
629 | if (success) |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
630 | success = _qq_parse_custom_packet_field(fields, "cmd", cmd); |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
631 | if (success) |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
632 | success = _qq_parse_custom_packet_field(fields, "uid", (guint8 **) uid); |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
633 | if (success) |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
634 | success = _qq_parse_custom_packet_field(fields, "seq", seq); |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
635 | if (success) { |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
636 | field = gaim_request_fields_get_field(fields, "body"); |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
637 | *body = hex_str_to_bytes(gaim_request_field_string_get_value(field), |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
638 | body_len); |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
639 | } else { |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
640 | if (*client) |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
641 | g_free(*client); |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
642 | if (*cmd) |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
643 | g_free(*cmd); |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
644 | if (*seq) |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
645 | g_free(*seq); |
|
14077
c7742fbe41fc
[gaim-migrate @ 16607]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14076
diff
changeset
|
646 | } |
|
14111
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
647 | return success; |
|
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 | |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
650 | 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
|
651 | { |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
652 | guint32 uid; |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
653 | guint8 *buf, *client, *cmd, *seq, *body, *cursor; |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
654 | gint bytes, len; |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
655 | qq_data *qd; |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
656 | gboolean success; |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
657 | |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
658 | qd = (qq_data *) gc->proto_data; |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
659 | |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
660 | success = _qq_parse_custom_packet_fields(fields, &client, &cmd, |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
661 | &seq, &uid, &body, &len); |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
662 | if (!success) { |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
663 | gaim_notify_error(gc, _("Error"), _("Invalid packet entry"), NULL); |
|
14077
c7742fbe41fc
[gaim-migrate @ 16607]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14076
diff
changeset
|
664 | return; |
|
c7742fbe41fc
[gaim-migrate @ 16607]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14076
diff
changeset
|
665 | } |
|
c7742fbe41fc
[gaim-migrate @ 16607]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14076
diff
changeset
|
666 | |
|
14111
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
667 | if (body) |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
668 | g_return_if_fail(len+12 <= MAX_PACKET_SIZE); |
|
14077
c7742fbe41fc
[gaim-migrate @ 16607]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14076
diff
changeset
|
669 | |
|
14111
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
670 | bytes = 0; |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
671 | buf = g_newa(guint8, MAX_PACKET_SIZE); |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
672 | cursor = buf; |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
673 | /* 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
|
674 | * so I leave room here for size */ |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
675 | if (qd->use_tcp) |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
676 | bytes += create_packet_w(buf, &cursor, 0x0000); |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
677 | bytes += create_packet_b(buf, &cursor, QQ_PACKET_TAG); |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
678 | bytes += create_packet_w(buf, &cursor, *(guint16 *) client); |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
679 | bytes += create_packet_w(buf, &cursor, *(guint16 *) cmd); |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
680 | bytes += create_packet_w(buf, &cursor, *(guint16 *) seq); |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
681 | bytes += create_packet_dw(buf, &cursor, uid); |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
682 | if (body) { |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
683 | bytes += create_packet_data(buf, &cursor, body, len); |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
684 | g_free(body); |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
685 | } |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
686 | bytes += create_packet_b(buf, &cursor, QQ_PACKET_TAIL); |
|
14077
c7742fbe41fc
[gaim-migrate @ 16607]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14076
diff
changeset
|
687 | |
|
14111
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
688 | 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
|
689 | _qq_show_packet("Outgoing custom packet", buf, bytes); |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
690 | |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
691 | _qq_send_packet(gc, buf, bytes, *(guint16 *) cmd); |
|
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 | g_free(cmd); |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
694 | g_free(seq); |
|
14077
c7742fbe41fc
[gaim-migrate @ 16607]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14076
diff
changeset
|
695 | } |
|
c7742fbe41fc
[gaim-migrate @ 16607]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14076
diff
changeset
|
696 | |
|
c7742fbe41fc
[gaim-migrate @ 16607]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14076
diff
changeset
|
697 | /* send a custom packet to the server - for protocol testing */ |
|
c7742fbe41fc
[gaim-migrate @ 16607]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14076
diff
changeset
|
698 | static void _qq_menu_send_custom_packet(GaimPluginAction *action) |
|
c7742fbe41fc
[gaim-migrate @ 16607]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14076
diff
changeset
|
699 | { |
|
14111
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
700 | GaimConnection *gc; |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
701 | GaimRequestFields *fields; |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
702 | GaimRequestFieldGroup *group; |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
703 | GaimRequestField *field; |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
704 | gchar *tmp; |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
705 | qq_data *qd; |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
706 | |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
707 | gc = (GaimConnection *) action->context; |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
708 | qd = (qq_data *) gc->proto_data; |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
709 | g_return_if_fail(gc != NULL && qd != NULL); |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
710 | |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
711 | fields = gaim_request_fields_new(); |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
712 | group = gaim_request_field_group_new(_("Packet Elements")); |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
713 | gaim_request_fields_add_group(fields, group); |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
714 | tmp = g_strdup_printf("%04X", QQ_CLIENT); |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
715 | 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
|
716 | g_free(tmp); |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
717 | gaim_request_field_group_add_field(group, field); |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
718 | 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
|
719 | gaim_request_field_group_add_field(group, field); |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
720 | 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
|
721 | gaim_request_field_group_add_field(group, field); |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
722 | tmp = g_strdup_printf("%u", qd->uid); |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
723 | 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
|
724 | g_free(tmp); |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
725 | gaim_request_field_group_add_field(group, field); |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
726 | field = gaim_request_field_string_new("body", _("Body (hex)"), NULL, FALSE); |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
727 | gaim_request_field_group_add_field(group, field); |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
728 | |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
729 | gaim_request_fields(gc, _("Send a custom packet"), |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
730 | _("Send a custom packet"), NULL, fields, |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
731 | _("Send"), G_CALLBACK(_qq_send_custom_packet_cb), |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
732 | _("Cancel"), NULL, |
|
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
733 | gc); |
|
14077
c7742fbe41fc
[gaim-migrate @ 16607]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14076
diff
changeset
|
734 | } |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
735 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
736 | /* protocol related menus */ |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14079
diff
changeset
|
737 | static GList *_qq_actions(GaimPlugin *plugin, gpointer context) |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
738 | { |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
739 | GList *m; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
740 | GaimPluginAction *act; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
741 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
742 | m = NULL; |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
743 | 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
|
744 | m = g_list_append(m, act); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
745 | |
|
14076
ac77316596dc
[gaim-migrate @ 16606]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14051
diff
changeset
|
746 | 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
|
747 | m = g_list_append(m, act); |
|
ac77316596dc
[gaim-migrate @ 16606]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14051
diff
changeset
|
748 | |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
749 | 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
|
750 | m = g_list_append(m, act); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
751 | |
|
14111
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
752 | /* |
|
14077
c7742fbe41fc
[gaim-migrate @ 16607]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14076
diff
changeset
|
753 | 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
|
754 | m = g_list_append(m, act); |
|
c7742fbe41fc
[gaim-migrate @ 16607]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14076
diff
changeset
|
755 | */ |
|
c7742fbe41fc
[gaim-migrate @ 16607]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14076
diff
changeset
|
756 | |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
757 | /* XXX consider re-enabling this |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
758 | 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
|
759 | m = g_list_append(m, act); |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
760 | */ |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
761 | |
|
14111
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
762 | /* |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
763 | 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
|
764 | m = g_list_append(m, act); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
765 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
766 | 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
|
767 | m = g_list_append(m, act); |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
768 | */ |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
769 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
770 | return m; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
771 | } |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
772 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
773 | /* 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
|
774 | /* XXX re-enable this |
|
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
775 | static GList *_qq_chat_menu(GaimBlistNode *node) |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
776 | { |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
777 | GList *m; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
778 | GaimMenuAction *act; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
779 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
780 | m = NULL; |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
781 | 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
|
782 | m = g_list_append(m, act); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
783 | |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
784 | 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
|
785 | m = g_list_append(m, act); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
786 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
787 | return m; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
788 | } |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
789 | */ |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
790 | /* buddy-related menu shown up with right-click */ |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
791 | /* XXX re-enable this |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
792 | static GList *_qq_buddy_menu(GaimBlistNode * node) |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
793 | { |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
794 | GList *m; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
795 | |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
796 | if(GAIM_BLIST_NODE_IS_CHAT(node)) |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
797 | return _qq_chat_menu(node); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
798 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
799 | m = NULL; |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
800 | */ |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
801 | /* TODO : not working, temp commented out by gfhuang |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
802 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
803 | 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
|
804 | m = g_list_append(m, act); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
805 | // if (q_bud && is_online(q_bud->status)) { |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
806 | 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
|
807 | m = g_list_append(m, act); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
808 | // } |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
809 | */ |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
810 | /* |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
811 | return m; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
812 | } |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
813 | */ |
|
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 | |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14079
diff
changeset
|
816 | static void _qq_keep_alive(GaimConnection *gc) |
|
13932
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 | qq_group *group; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
819 | qq_data *qd; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
820 | GList *list; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
821 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
822 | g_return_if_fail(gc != NULL); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
823 | if (NULL == (qd = (qq_data *) gc->proto_data)) |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
824 | return; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
825 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
826 | list = qd->groups; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
827 | while (list != NULL) { |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
828 | group = (qq_group *) list->data; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
829 | if (group->my_status == QQ_GROUP_MEMBER_STATUS_IS_MEMBER || |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
830 | group->my_status == QQ_GROUP_MEMBER_STATUS_IS_ADMIN) |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14079
diff
changeset
|
831 | /* no need to get info time and time again, online members enough */ |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
832 | qq_send_cmd_group_get_online_member(gc, group); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
833 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
834 | list = list->next; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
835 | } |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
836 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
837 | qq_send_packet_keep_alive(gc); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
838 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
839 | } |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
840 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
841 | /* convert chat nickname to qq-uid to get this buddy info */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
842 | /* 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
|
843 | 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
|
844 | { |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
845 | gchar *gaim_name; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
846 | 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
|
847 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
848 | gaim_name = qq_group_find_member_by_channel_and_nickname(gc, channel, who); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
849 | if (gaim_name != NULL) |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
850 | _qq_get_info(gc, gaim_name); |
|
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 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
853 | /* 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
|
854 | /* 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
|
855 | 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
|
856 | { |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
857 | g_return_val_if_fail(gc != NULL && gc->proto_data != NULL && who != NULL, NULL); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
858 | return qq_group_find_member_by_channel_and_nickname(gc, channel, who); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
859 | } |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
860 | |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14079
diff
changeset
|
861 | void qq_function_not_implemented(GaimConnection *gc) |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
862 | { |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14079
diff
changeset
|
863 | gaim_notify_warning(gc, NULL, |
|
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14079
diff
changeset
|
864 | _("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
|
865 | } |
|
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 | GaimPlugin *my_protocol = NULL; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
868 | static GaimPluginProtocolInfo prpl_info = { |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
869 | OPT_PROTO_CHAT_TOPIC | OPT_PROTO_USE_POINTSIZE, |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
870 | NULL, /* user_splits */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
871 | NULL, /* protocol_options */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
872 | NO_BUDDY_ICONS, /* icon_spec */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
873 | _qq_list_icon, /* list_icon */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
874 | _qq_list_emblems, /* list_emblems */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
875 | _qq_status_text, /* status_text */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
876 | _qq_tooltip_text, /* tooltip_text */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
877 | _qq_away_states, /* away_states */ |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
878 | NULL, /* blist_node_menu */ |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
879 | qq_chat_info, /* chat_info */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
880 | NULL, /* chat_info_defaults */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
881 | _qq_login, /* login */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
882 | _qq_close, /* close */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
883 | _qq_send_im, /* send_im */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
884 | NULL, /* set_info */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
885 | NULL, /* send_typing */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
886 | _qq_get_info, /* get_info */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
887 | _qq_set_away, /* set_away */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
888 | NULL, /* set_idle */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
889 | NULL, /* change_passwd */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
890 | qq_add_buddy, /* add_buddy */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
891 | NULL, /* add_buddies */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
892 | qq_remove_buddy, /* remove_buddy */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
893 | NULL, /* remove_buddies */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
894 | NULL, /* add_permit */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
895 | NULL, /* add_deny */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
896 | NULL, /* rem_permit */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
897 | NULL, /* rem_deny */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
898 | NULL, /* set_permit_deny */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
899 | qq_group_join, /* join_chat */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
900 | NULL, /* reject chat invite */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
901 | NULL, /* get_chat_name */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
902 | NULL, /* chat_invite */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
903 | NULL, /* chat_leave */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
904 | NULL, /* chat_whisper */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
905 | _qq_chat_send, /* chat_send */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
906 | _qq_keep_alive, /* keepalive */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
907 | NULL, /* register_user */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
908 | _qq_get_chat_buddy_info, /* get_cb_info */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
909 | NULL, /* get_cb_away */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
910 | NULL, /* alias_buddy */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
911 | NULL, /* group_buddy */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
912 | NULL, /* rename_group */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
913 | NULL, /* buddy_free */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
914 | NULL, /* convo_closed */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
915 | NULL, /* normalize */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
916 | NULL, /* set_buddy_icon */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
917 | NULL, /* remove_group */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
918 | _qq_get_chat_buddy_real_name, /* get_cb_real_name */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
919 | NULL, /* set_chat_topic */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
920 | NULL, /* find_blist_chat */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
921 | qq_roomlist_get_list, /* roomlist_get_list */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
922 | qq_roomlist_cancel, /* roomlist_cancel */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
923 | NULL, /* roomlist_expand_category */ |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
924 | NULL, /* can_receive_file */ |
|
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
925 | qq_send_file, /* send_file */ |
|
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
926 | NULL, /* new xfer */ |
|
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
927 | NULL, /* offline_message */ |
|
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
928 | NULL, /* GaimWhiteboardPrplOps */ |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
929 | }; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
930 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
931 | static GaimPluginInfo info = { |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
932 | GAIM_PLUGIN_MAGIC, |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
933 | GAIM_MAJOR_VERSION, |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
934 | GAIM_MINOR_VERSION, |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
935 | GAIM_PLUGIN_PROTOCOL, /**< type */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
936 | NULL, /**< ui_requirement */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
937 | 0, /**< flags */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
938 | NULL, /**< dependencies */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
939 | GAIM_PRIORITY_DEFAULT, /**< priority */ |
|
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 | "prpl-qq", /**< id */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
942 | "QQ", /**< name */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
943 | VERSION, /**< version */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
944 | /** summary */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
945 | N_("QQ Protocol Plugin"), |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
946 | /** description */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
947 | N_("QQ Protocol Plugin"), |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
948 | OPENQ_AUTHOR, /**< author */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
949 | OPENQ_WEBSITE, /**< homepage */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
950 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
951 | NULL, /**< load */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
952 | NULL, /**< unload */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
953 | NULL, /**< destroy */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
954 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
955 | NULL, /**< ui_info */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
956 | &prpl_info, /**< extra_info */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
957 | NULL, /**< prefs_info */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
958 | _qq_actions |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
959 | }; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
960 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
961 | |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14079
diff
changeset
|
962 | static void init_plugin(GaimPlugin *plugin) |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
963 | { |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
964 | GaimAccountOption *option; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
965 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
966 | 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
|
967 | 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
|
968 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
969 | option = gaim_account_option_bool_new(_("Login Hidden"), "hidden", FALSE); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
970 | 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
|
971 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
972 | option = gaim_account_option_string_new(_("QQ Server"), "server", NULL); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
973 | 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
|
974 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
975 | option = gaim_account_option_string_new(_("QQ Port"), "port", NULL); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
976 | 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
|
977 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
978 | my_protocol = plugin; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
979 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
980 | gaim_prefs_add_none("/plugins/prpl/qq"); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
981 | 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
|
982 | gaim_prefs_add_bool("/plugins/prpl/qq/show_fake_video", FALSE); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
983 | 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
|
984 | 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
|
985 | } |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
986 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
987 | GAIM_INIT_PLUGIN(qq, init_plugin, info); |