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