Tue, 24 Jun 2008 12:28:38 +0000
patch-05-reconnect-and-code-cleanup
*** patch-05-reconnect-and-code-cleanup ***
* Clean code and apply patches from QuLogic
* Reconnect server 5 time in 5000 ms, when connect failed
* Rename sendqueue.c/sendqueue.h to qq_trans.c/qq_trans.h
* Rewrite packet_process
* Rewrite qq_send_cmd
* Create server list, try to connect every server when failed
Apply patch from #5934.
|
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" |
| 23192 | 58 | #include "qq_network.h" |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
59 | #include "send_file.h" |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14079
diff
changeset
|
60 | #include "utils.h" |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
61 | #include "version.h" |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
62 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
63 | #define OPENQ_AUTHOR "Puzzlebird" |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
64 | #define OPENQ_WEBSITE "http://openq.sourceforge.net" |
|
23193
384ba35bfa8f
patch-05-reconnect-and-code-cleanup
SHiNE CsyFeK <csyfek@gmail.com>
parents:
23192
diff
changeset
|
65 | |
| 23192 | 66 | #define QQ_TCP_PORT 8000 |
| 67 | #define QQ_UDP_PORT 8000 | |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
68 | |
|
23193
384ba35bfa8f
patch-05-reconnect-and-code-cleanup
SHiNE CsyFeK <csyfek@gmail.com>
parents:
23192
diff
changeset
|
69 | static void server_list_create(PurpleAccount *account) { |
| 23192 | 70 | PurpleConnection *gc; |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
71 | qq_data *qd; |
|
23193
384ba35bfa8f
patch-05-reconnect-and-code-cleanup
SHiNE CsyFeK <csyfek@gmail.com>
parents:
23192
diff
changeset
|
72 | const gchar *user_server; |
| 23192 | 73 | int port; |
| 74 | ||
|
23193
384ba35bfa8f
patch-05-reconnect-and-code-cleanup
SHiNE CsyFeK <csyfek@gmail.com>
parents:
23192
diff
changeset
|
75 | purple_debug(PURPLE_DEBUG_INFO, "QQ", "Create server list\n"); |
| 23192 | 76 | gc = purple_account_get_connection(account); |
|
23193
384ba35bfa8f
patch-05-reconnect-and-code-cleanup
SHiNE CsyFeK <csyfek@gmail.com>
parents:
23192
diff
changeset
|
77 | g_return_if_fail(gc != NULL && gc->proto_data != NULL); |
|
384ba35bfa8f
patch-05-reconnect-and-code-cleanup
SHiNE CsyFeK <csyfek@gmail.com>
parents:
23192
diff
changeset
|
78 | qd = gc->proto_data; |
| 23192 | 79 | |
|
23193
384ba35bfa8f
patch-05-reconnect-and-code-cleanup
SHiNE CsyFeK <csyfek@gmail.com>
parents:
23192
diff
changeset
|
80 | qd->use_tcp = purple_account_get_bool(account, "use_tcp", TRUE); |
| 23192 | 81 | port = purple_account_get_int(account, "port", 0); |
| 82 | if (port == 0) { | |
| 83 | if (qd->use_tcp) { | |
| 84 | port = QQ_TCP_PORT; | |
| 85 | } else { | |
| 86 | port = QQ_UDP_PORT; | |
| 87 | } | |
| 88 | } | |
|
23193
384ba35bfa8f
patch-05-reconnect-and-code-cleanup
SHiNE CsyFeK <csyfek@gmail.com>
parents:
23192
diff
changeset
|
89 | qd->user_port = port; |
| 23192 | 90 | |
|
23193
384ba35bfa8f
patch-05-reconnect-and-code-cleanup
SHiNE CsyFeK <csyfek@gmail.com>
parents:
23192
diff
changeset
|
91 | g_return_if_fail(qd->user_server == NULL); |
|
384ba35bfa8f
patch-05-reconnect-and-code-cleanup
SHiNE CsyFeK <csyfek@gmail.com>
parents:
23192
diff
changeset
|
92 | user_server = purple_account_get_string(account, "server", NULL); |
|
384ba35bfa8f
patch-05-reconnect-and-code-cleanup
SHiNE CsyFeK <csyfek@gmail.com>
parents:
23192
diff
changeset
|
93 | if (user_server != NULL && strlen(user_server) > 0) { |
|
384ba35bfa8f
patch-05-reconnect-and-code-cleanup
SHiNE CsyFeK <csyfek@gmail.com>
parents:
23192
diff
changeset
|
94 | qd->user_server = g_strdup(user_server); |
| 23192 | 95 | } |
| 96 | ||
|
23193
384ba35bfa8f
patch-05-reconnect-and-code-cleanup
SHiNE CsyFeK <csyfek@gmail.com>
parents:
23192
diff
changeset
|
97 | if (qd->user_server != NULL) { |
|
384ba35bfa8f
patch-05-reconnect-and-code-cleanup
SHiNE CsyFeK <csyfek@gmail.com>
parents:
23192
diff
changeset
|
98 | qd->servers = g_list_append(qd->servers, qd->user_server); |
|
384ba35bfa8f
patch-05-reconnect-and-code-cleanup
SHiNE CsyFeK <csyfek@gmail.com>
parents:
23192
diff
changeset
|
99 | return; |
|
384ba35bfa8f
patch-05-reconnect-and-code-cleanup
SHiNE CsyFeK <csyfek@gmail.com>
parents:
23192
diff
changeset
|
100 | } |
|
384ba35bfa8f
patch-05-reconnect-and-code-cleanup
SHiNE CsyFeK <csyfek@gmail.com>
parents:
23192
diff
changeset
|
101 | if (qd->use_tcp) { |
|
384ba35bfa8f
patch-05-reconnect-and-code-cleanup
SHiNE CsyFeK <csyfek@gmail.com>
parents:
23192
diff
changeset
|
102 | qd->servers = g_list_append(qd->servers, "tcpconn.tencent.com"); |
|
384ba35bfa8f
patch-05-reconnect-and-code-cleanup
SHiNE CsyFeK <csyfek@gmail.com>
parents:
23192
diff
changeset
|
103 | qd->servers = g_list_append(qd->servers, "tcpconn2.tencent.com"); |
|
384ba35bfa8f
patch-05-reconnect-and-code-cleanup
SHiNE CsyFeK <csyfek@gmail.com>
parents:
23192
diff
changeset
|
104 | qd->servers = g_list_append(qd->servers, "tcpconn3.tencent.com"); |
|
384ba35bfa8f
patch-05-reconnect-and-code-cleanup
SHiNE CsyFeK <csyfek@gmail.com>
parents:
23192
diff
changeset
|
105 | qd->servers = g_list_append(qd->servers, "tcpconn4.tencent.com"); |
|
384ba35bfa8f
patch-05-reconnect-and-code-cleanup
SHiNE CsyFeK <csyfek@gmail.com>
parents:
23192
diff
changeset
|
106 | qd->servers = g_list_append(qd->servers, "tcpconn5.tencent.com"); |
|
384ba35bfa8f
patch-05-reconnect-and-code-cleanup
SHiNE CsyFeK <csyfek@gmail.com>
parents:
23192
diff
changeset
|
107 | qd->servers = g_list_append(qd->servers, "tcpconn6.tencent.com"); |
|
384ba35bfa8f
patch-05-reconnect-and-code-cleanup
SHiNE CsyFeK <csyfek@gmail.com>
parents:
23192
diff
changeset
|
108 | return; |
|
384ba35bfa8f
patch-05-reconnect-and-code-cleanup
SHiNE CsyFeK <csyfek@gmail.com>
parents:
23192
diff
changeset
|
109 | } |
|
384ba35bfa8f
patch-05-reconnect-and-code-cleanup
SHiNE CsyFeK <csyfek@gmail.com>
parents:
23192
diff
changeset
|
110 | |
|
384ba35bfa8f
patch-05-reconnect-and-code-cleanup
SHiNE CsyFeK <csyfek@gmail.com>
parents:
23192
diff
changeset
|
111 | qd->servers = g_list_append(qd->servers, "sz.tencent.com"); |
|
384ba35bfa8f
patch-05-reconnect-and-code-cleanup
SHiNE CsyFeK <csyfek@gmail.com>
parents:
23192
diff
changeset
|
112 | qd->servers = g_list_append(qd->servers, "sz2.tencent.com"); |
|
384ba35bfa8f
patch-05-reconnect-and-code-cleanup
SHiNE CsyFeK <csyfek@gmail.com>
parents:
23192
diff
changeset
|
113 | qd->servers = g_list_append(qd->servers, "sz3.tencent.com"); |
|
384ba35bfa8f
patch-05-reconnect-and-code-cleanup
SHiNE CsyFeK <csyfek@gmail.com>
parents:
23192
diff
changeset
|
114 | qd->servers = g_list_append(qd->servers, "sz4.tencent.com"); |
|
384ba35bfa8f
patch-05-reconnect-and-code-cleanup
SHiNE CsyFeK <csyfek@gmail.com>
parents:
23192
diff
changeset
|
115 | qd->servers = g_list_append(qd->servers, "sz5.tencent.com"); |
|
384ba35bfa8f
patch-05-reconnect-and-code-cleanup
SHiNE CsyFeK <csyfek@gmail.com>
parents:
23192
diff
changeset
|
116 | qd->servers = g_list_append(qd->servers, "sz6.tencent.com"); |
|
384ba35bfa8f
patch-05-reconnect-and-code-cleanup
SHiNE CsyFeK <csyfek@gmail.com>
parents:
23192
diff
changeset
|
117 | qd->servers = g_list_append(qd->servers, "sz7.tencent.com"); |
|
384ba35bfa8f
patch-05-reconnect-and-code-cleanup
SHiNE CsyFeK <csyfek@gmail.com>
parents:
23192
diff
changeset
|
118 | qd->servers = g_list_append(qd->servers, "sz8.tencent.com"); |
|
384ba35bfa8f
patch-05-reconnect-and-code-cleanup
SHiNE CsyFeK <csyfek@gmail.com>
parents:
23192
diff
changeset
|
119 | qd->servers = g_list_append(qd->servers, "sz9.tencent.com"); |
|
384ba35bfa8f
patch-05-reconnect-and-code-cleanup
SHiNE CsyFeK <csyfek@gmail.com>
parents:
23192
diff
changeset
|
120 | } |
| 23192 | 121 | |
|
23193
384ba35bfa8f
patch-05-reconnect-and-code-cleanup
SHiNE CsyFeK <csyfek@gmail.com>
parents:
23192
diff
changeset
|
122 | static void server_list_remove_all(qq_data *qd) { |
|
384ba35bfa8f
patch-05-reconnect-and-code-cleanup
SHiNE CsyFeK <csyfek@gmail.com>
parents:
23192
diff
changeset
|
123 | g_return_if_fail(qd != NULL); |
|
384ba35bfa8f
patch-05-reconnect-and-code-cleanup
SHiNE CsyFeK <csyfek@gmail.com>
parents:
23192
diff
changeset
|
124 | |
|
384ba35bfa8f
patch-05-reconnect-and-code-cleanup
SHiNE CsyFeK <csyfek@gmail.com>
parents:
23192
diff
changeset
|
125 | if (qd->real_hostname) { |
|
384ba35bfa8f
patch-05-reconnect-and-code-cleanup
SHiNE CsyFeK <csyfek@gmail.com>
parents:
23192
diff
changeset
|
126 | purple_debug(PURPLE_DEBUG_INFO, "QQ", "free real_hostname\n"); |
|
384ba35bfa8f
patch-05-reconnect-and-code-cleanup
SHiNE CsyFeK <csyfek@gmail.com>
parents:
23192
diff
changeset
|
127 | g_free(qd->real_hostname); |
|
384ba35bfa8f
patch-05-reconnect-and-code-cleanup
SHiNE CsyFeK <csyfek@gmail.com>
parents:
23192
diff
changeset
|
128 | qd->real_hostname = NULL; |
|
384ba35bfa8f
patch-05-reconnect-and-code-cleanup
SHiNE CsyFeK <csyfek@gmail.com>
parents:
23192
diff
changeset
|
129 | } |
|
384ba35bfa8f
patch-05-reconnect-and-code-cleanup
SHiNE CsyFeK <csyfek@gmail.com>
parents:
23192
diff
changeset
|
130 | |
|
384ba35bfa8f
patch-05-reconnect-and-code-cleanup
SHiNE CsyFeK <csyfek@gmail.com>
parents:
23192
diff
changeset
|
131 | if (qd->user_server != NULL) { |
|
384ba35bfa8f
patch-05-reconnect-and-code-cleanup
SHiNE CsyFeK <csyfek@gmail.com>
parents:
23192
diff
changeset
|
132 | purple_debug(PURPLE_DEBUG_INFO, "QQ", "free user_server\n"); |
|
384ba35bfa8f
patch-05-reconnect-and-code-cleanup
SHiNE CsyFeK <csyfek@gmail.com>
parents:
23192
diff
changeset
|
133 | g_free(qd->user_server); |
|
384ba35bfa8f
patch-05-reconnect-and-code-cleanup
SHiNE CsyFeK <csyfek@gmail.com>
parents:
23192
diff
changeset
|
134 | qd->user_server = NULL; |
|
384ba35bfa8f
patch-05-reconnect-and-code-cleanup
SHiNE CsyFeK <csyfek@gmail.com>
parents:
23192
diff
changeset
|
135 | } |
|
384ba35bfa8f
patch-05-reconnect-and-code-cleanup
SHiNE CsyFeK <csyfek@gmail.com>
parents:
23192
diff
changeset
|
136 | |
|
384ba35bfa8f
patch-05-reconnect-and-code-cleanup
SHiNE CsyFeK <csyfek@gmail.com>
parents:
23192
diff
changeset
|
137 | purple_debug(PURPLE_DEBUG_INFO, "QQ", "free server list\n"); |
|
384ba35bfa8f
patch-05-reconnect-and-code-cleanup
SHiNE CsyFeK <csyfek@gmail.com>
parents:
23192
diff
changeset
|
138 | g_list_free(qd->servers); |
| 23192 | 139 | } |
| 140 | ||
| 141 | static void qq_login(PurpleAccount *account) | |
| 142 | { | |
|
23193
384ba35bfa8f
patch-05-reconnect-and-code-cleanup
SHiNE CsyFeK <csyfek@gmail.com>
parents:
23192
diff
changeset
|
143 | PurpleConnection *gc; |
| 23192 | 144 | qq_data *qd; |
| 15884 | 145 | PurplePresence *presence; |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
146 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
147 | g_return_if_fail(account != NULL); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
148 | |
| 15884 | 149 | gc = purple_account_get_connection(account); |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
150 | g_return_if_fail(gc != NULL); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
151 | |
| 15884 | 152 | 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
|
153 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
154 | qd = g_new0(qq_data, 1); |
|
14257
6510563c1ee9
[gaim-migrate @ 16867]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14254
diff
changeset
|
155 | qd->gc = gc; |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
156 | gc->proto_data = qd; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
157 | |
| 15884 | 158 | presence = purple_account_get_presence(account); |
| 159 | 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
|
160 | qd->login_mode = QQ_LOGIN_MODE_HIDDEN; |
| 15884 | 161 | } else if(purple_presence_is_status_primitive_active(presence, PURPLE_STATUS_AWAY) |
| 162 | || 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
|
163 | qd->login_mode = QQ_LOGIN_MODE_AWAY; |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14079
diff
changeset
|
164 | } else { |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
165 | qd->login_mode = QQ_LOGIN_MODE_NORMAL; |
|
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 | |
|
23193
384ba35bfa8f
patch-05-reconnect-and-code-cleanup
SHiNE CsyFeK <csyfek@gmail.com>
parents:
23192
diff
changeset
|
168 | server_list_create(account); |
|
384ba35bfa8f
patch-05-reconnect-and-code-cleanup
SHiNE CsyFeK <csyfek@gmail.com>
parents:
23192
diff
changeset
|
169 | purple_debug(PURPLE_DEBUG_INFO, "QQ", |
|
384ba35bfa8f
patch-05-reconnect-and-code-cleanup
SHiNE CsyFeK <csyfek@gmail.com>
parents:
23192
diff
changeset
|
170 | "Server list has %d\n", g_list_length(qd->servers)); |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
171 | |
|
23193
384ba35bfa8f
patch-05-reconnect-and-code-cleanup
SHiNE CsyFeK <csyfek@gmail.com>
parents:
23192
diff
changeset
|
172 | qq_connect(account); |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
173 | } |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
174 | |
| 23192 | 175 | /* clean up the given QQ connection and free all resources */ |
| 176 | static void qq_close(PurpleConnection *gc) | |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
177 | { |
| 23192 | 178 | qq_data *qd; |
| 179 | ||
|
23193
384ba35bfa8f
patch-05-reconnect-and-code-cleanup
SHiNE CsyFeK <csyfek@gmail.com>
parents:
23192
diff
changeset
|
180 | g_return_if_fail(gc != NULL && gc->proto_data); |
| 23192 | 181 | qd = gc->proto_data; |
| 182 | ||
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
183 | qq_disconnect(gc); |
| 23192 | 184 | |
|
23193
384ba35bfa8f
patch-05-reconnect-and-code-cleanup
SHiNE CsyFeK <csyfek@gmail.com>
parents:
23192
diff
changeset
|
185 | server_list_remove_all(qd); |
| 23192 | 186 | |
| 187 | g_free(qd); | |
| 188 | ||
| 189 | gc->proto_data = NULL; | |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
190 | } |
|
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 | /* returns the icon name for a buddy or protocol */ |
| 15884 | 193 | static const gchar *_qq_list_icon(PurpleAccount *a, PurpleBuddy *b) |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
194 | { |
|
15133
9d5bbb9f8248
[gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15087
diff
changeset
|
195 | return "qq"; |
|
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 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
198 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
199 | /* a short status text beside buddy icon*/ |
| 15884 | 200 | static gchar *_qq_status_text(PurpleBuddy *b) |
|
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 | qq_buddy *q_bud; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
203 | GString *status; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
204 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
205 | q_bud = (qq_buddy *) b->proto_data; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
206 | if (q_bud == NULL) |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
207 | return NULL; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
208 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
209 | status = g_string_new(""); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
210 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
211 | switch(q_bud->status) { |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
212 | case QQ_BUDDY_OFFLINE: |
|
15202
bba46d1374d0
[gaim-migrate @ 17926]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15200
diff
changeset
|
213 | g_string_append(status, _("Offline")); |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
214 | break; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
215 | case QQ_BUDDY_ONLINE_NORMAL: |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
216 | return NULL; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
217 | break; |
|
14330
f81629246c27
[gaim-migrate @ 16950]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14327
diff
changeset
|
218 | /* TODO What does this status mean? Labelling it as offline... */ |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
219 | case QQ_BUDDY_ONLINE_OFFLINE: |
|
15202
bba46d1374d0
[gaim-migrate @ 17926]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15200
diff
changeset
|
220 | g_string_append(status, _("Offline")); |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
221 | break; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
222 | case QQ_BUDDY_ONLINE_AWAY: |
|
15202
bba46d1374d0
[gaim-migrate @ 17926]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15200
diff
changeset
|
223 | g_string_append(status, _("Away")); |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
224 | break; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
225 | case QQ_BUDDY_ONLINE_INVISIBLE: |
|
15202
bba46d1374d0
[gaim-migrate @ 17926]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15200
diff
changeset
|
226 | g_string_append(status, _("Invisible")); |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
227 | break; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
228 | default: |
|
15202
bba46d1374d0
[gaim-migrate @ 17926]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15200
diff
changeset
|
229 | g_string_printf(status, _("Unknown-%d"), q_bud->status); |
|
15137
28f227957781
[gaim-migrate @ 17859]
Daniel Atallah <datallah@pidgin.im>
parents:
15134
diff
changeset
|
230 | } |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
231 | |
|
14559
78092ceb0bc3
[gaim-migrate @ 17216]
Daniel Atallah <datallah@pidgin.im>
parents:
14466
diff
changeset
|
232 | return g_string_free(status, FALSE); |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
233 | } |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
234 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
235 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
236 | /* a floating text when mouse is on the icon, show connection status here */ |
| 15884 | 237 | 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
|
238 | { |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
239 | qq_buddy *q_bud; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
240 | gchar *ip_str; |
|
19098
a2e75786ddb3
Fix a compile warning
Mark Doliner <markdoliner@pidgin.im>
parents:
19097
diff
changeset
|
241 | char *tmp; |
|
a2e75786ddb3
Fix a compile warning
Mark Doliner <markdoliner@pidgin.im>
parents:
19097
diff
changeset
|
242 | const char *tmp2; |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
243 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
244 | g_return_if_fail(b != NULL); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
245 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
246 | q_bud = (qq_buddy *) b->proto_data; |
|
14330
f81629246c27
[gaim-migrate @ 16950]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14327
diff
changeset
|
247 | g_return_if_fail(q_bud != NULL); |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
248 | |
| 15884 | 249 | if (PURPLE_BUDDY_IS_ONLINE(b) && q_bud != NULL) |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
250 | { |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
251 | ip_str = gen_ip_str(q_bud->ip); |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
252 | if (strlen(ip_str) != 0) { |
|
19097
9f5b720e73bc
Improve a bunch of strings in QQ
Mark Doliner <markdoliner@pidgin.im>
parents:
18992
diff
changeset
|
253 | 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
|
254 | tmp2 = _("TCP Address"); |
|
19097
9f5b720e73bc
Improve a bunch of strings in QQ
Mark Doliner <markdoliner@pidgin.im>
parents:
18992
diff
changeset
|
255 | else |
|
19098
a2e75786ddb3
Fix a compile warning
Mark Doliner <markdoliner@pidgin.im>
parents:
19097
diff
changeset
|
256 | tmp2 = _("UDP Address"); |
|
a2e75786ddb3
Fix a compile warning
Mark Doliner <markdoliner@pidgin.im>
parents:
19097
diff
changeset
|
257 | 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
|
258 | purple_notify_user_info_add_pair(user_info, tmp2, tmp); |
|
a2e75786ddb3
Fix a compile warning
Mark Doliner <markdoliner@pidgin.im>
parents:
19097
diff
changeset
|
259 | g_free(tmp); |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
260 | } |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
261 | g_free(ip_str); |
|
15205
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15202
diff
changeset
|
262 | |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15202
diff
changeset
|
263 | tmp = g_strdup_printf("%d", q_bud->age); |
| 15884 | 264 | purple_notify_user_info_add_pair(user_info, _("Age"), tmp); |
|
15205
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15202
diff
changeset
|
265 | g_free(tmp); |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15202
diff
changeset
|
266 | |
|
15137
28f227957781
[gaim-migrate @ 17859]
Daniel Atallah <datallah@pidgin.im>
parents:
15134
diff
changeset
|
267 | switch (q_bud->gender) { |
|
28f227957781
[gaim-migrate @ 17859]
Daniel Atallah <datallah@pidgin.im>
parents:
15134
diff
changeset
|
268 | case QQ_BUDDY_GENDER_GG: |
| 15884 | 269 | purple_notify_user_info_add_pair(user_info, _("Gender"), _("Male")); |
|
15137
28f227957781
[gaim-migrate @ 17859]
Daniel Atallah <datallah@pidgin.im>
parents:
15134
diff
changeset
|
270 | break; |
|
28f227957781
[gaim-migrate @ 17859]
Daniel Atallah <datallah@pidgin.im>
parents:
15134
diff
changeset
|
271 | case QQ_BUDDY_GENDER_MM: |
| 15884 | 272 | purple_notify_user_info_add_pair(user_info, _("Gender"), _("Female")); |
|
15137
28f227957781
[gaim-migrate @ 17859]
Daniel Atallah <datallah@pidgin.im>
parents:
15134
diff
changeset
|
273 | break; |
|
28f227957781
[gaim-migrate @ 17859]
Daniel Atallah <datallah@pidgin.im>
parents:
15134
diff
changeset
|
274 | case QQ_BUDDY_GENDER_UNKNOWN: |
| 15884 | 275 | purple_notify_user_info_add_pair(user_info, _("Gender"), _("Unknown")); |
|
15137
28f227957781
[gaim-migrate @ 17859]
Daniel Atallah <datallah@pidgin.im>
parents:
15134
diff
changeset
|
276 | break; |
|
28f227957781
[gaim-migrate @ 17859]
Daniel Atallah <datallah@pidgin.im>
parents:
15134
diff
changeset
|
277 | default: |
|
15205
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15202
diff
changeset
|
278 | tmp = g_strdup_printf("Error (%d)", q_bud->gender); |
| 15884 | 279 | purple_notify_user_info_add_pair(user_info, _("Gender"), tmp); |
|
15205
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15202
diff
changeset
|
280 | g_free(tmp); |
|
15137
28f227957781
[gaim-migrate @ 17859]
Daniel Atallah <datallah@pidgin.im>
parents:
15134
diff
changeset
|
281 | } |
|
15205
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15202
diff
changeset
|
282 | |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15202
diff
changeset
|
283 | if (q_bud->level) { |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15202
diff
changeset
|
284 | tmp = g_strdup_printf("%d", q_bud->level); |
| 15884 | 285 | 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
|
286 | g_free(tmp); |
|
15205
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15202
diff
changeset
|
287 | } |
|
14330
f81629246c27
[gaim-migrate @ 16950]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14327
diff
changeset
|
288 | /* For debugging */ |
|
f81629246c27
[gaim-migrate @ 16950]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14327
diff
changeset
|
289 | /* |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
290 | 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
|
291 | 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
|
292 | 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
|
293 | */ |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
294 | } |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
295 | } |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
296 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
297 | /* we can show tiny icons on the four corners of buddy icon, */ |
| 15884 | 298 | static const char *_qq_list_emblem(PurpleBuddy *b) |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14079
diff
changeset
|
299 | { |
| 15884 | 300 | /* 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
|
301 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
302 | qq_buddy *q_bud = b->proto_data; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
303 | |
| 15524 | 304 | if (q_bud) { |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
305 | if (q_bud->comm_flag & QQ_COMM_FLAG_QQ_MEMBER) |
| 15524 | 306 | return "qq_member"; |
|
15134
a77e82cc9285
[gaim-migrate @ 17856]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15133
diff
changeset
|
307 | /* |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
308 | if (q_bud->comm_flag & QQ_COMM_FLAG_VIDEO) |
| 15524 | 309 | return "video"; |
|
15134
a77e82cc9285
[gaim-migrate @ 17856]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15133
diff
changeset
|
310 | */ |
|
15137
28f227957781
[gaim-migrate @ 17859]
Daniel Atallah <datallah@pidgin.im>
parents:
15134
diff
changeset
|
311 | } |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
312 | |
| 15524 | 313 | return NULL; |
|
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 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
316 | /* QQ away status (used to initiate QQ away packet) */ |
| 15884 | 317 | static GList *_qq_away_states(PurpleAccount *ga) |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
318 | { |
| 15884 | 319 | PurpleStatusType *status; |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
320 | GList *types = NULL; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
321 | |
| 15884 | 322 | 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
|
323 | "available", _("Available"), FALSE, TRUE, FALSE); |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
324 | types = g_list_append(types, status); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
325 | |
| 15884 | 326 | 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
|
327 | "away", _("Away"), FALSE, TRUE, FALSE); |
|
15137
28f227957781
[gaim-migrate @ 17859]
Daniel Atallah <datallah@pidgin.im>
parents:
15134
diff
changeset
|
328 | types = g_list_append(types, status); |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
329 | |
| 15884 | 330 | 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
|
331 | "invisible", _("Invisible"), FALSE, TRUE, FALSE); |
|
15137
28f227957781
[gaim-migrate @ 17859]
Daniel Atallah <datallah@pidgin.im>
parents:
15134
diff
changeset
|
332 | types = g_list_append(types, status); |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
333 | |
| 15884 | 334 | 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
|
335 | "offline", _("Offline"), FALSE, TRUE, FALSE); |
|
15137
28f227957781
[gaim-migrate @ 17859]
Daniel Atallah <datallah@pidgin.im>
parents:
15134
diff
changeset
|
336 | types = g_list_append(types, status); |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
337 | |
| 15884 | 338 | 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
|
339 | "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
|
340 | 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
|
341 | |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
342 | return types; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
343 | } |
|
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 | /* initiate QQ away with proper change_status packet */ |
| 15884 | 346 | static void _qq_set_away(PurpleAccount *account, PurpleStatus *status) |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
347 | { |
| 15884 | 348 | PurpleConnection *gc = purple_account_get_connection(account); |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
349 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
350 | qq_send_packet_change_status(gc); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
351 | } |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
352 | |
| 15884 | 353 | /* IMPORTANT: PurpleConvImFlags -> PurpleMessageFlags */ |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14079
diff
changeset
|
354 | /* send an instant msg to a buddy */ |
| 15884 | 355 | 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
|
356 | { |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
357 | gint type, to_uid; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
358 | gchar *msg, *msg_with_qq_smiley; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
359 | qq_data *qd; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
360 | |
|
14691
efb5fd0a34b7
[gaim-migrate @ 17375]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14604
diff
changeset
|
361 | g_return_val_if_fail(who != NULL, -1); |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
362 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
363 | qd = (qq_data *) gc->proto_data; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
364 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
365 | g_return_val_if_fail(strlen(message) <= QQ_MSG_IM_MAX, -E2BIG); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
366 | |
| 15884 | 367 | type = (flags == PURPLE_MESSAGE_AUTO_RESP ? QQ_IM_AUTO_REPLY : QQ_IM_TEXT); |
| 368 | to_uid = purple_name_to_uid(who); | |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
369 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
370 | /* if msg is to myself, bypass the network */ |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14079
diff
changeset
|
371 | if (to_uid == qd->uid) { |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
372 | serv_got_im(gc, who, message, flags, time(NULL)); |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14079
diff
changeset
|
373 | } else { |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
374 | msg = utf8_to_qq(message, QQ_CHARSET_DEFAULT); |
| 15884 | 375 | msg_with_qq_smiley = purple_smiley_to_qq(msg); |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
376 | qq_send_packet_im(gc, to_uid, msg_with_qq_smiley, type); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
377 | g_free(msg); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
378 | g_free(msg_with_qq_smiley); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
379 | } |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
380 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
381 | return 1; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
382 | } |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
383 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
384 | /* send a chat msg to a QQ Qun */ |
| 15884 | 385 | 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
|
386 | { |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
387 | gchar *msg, *msg_with_qq_smiley; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
388 | qq_group *group; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
389 | |
|
14691
efb5fd0a34b7
[gaim-migrate @ 17375]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14604
diff
changeset
|
390 | g_return_val_if_fail(message != NULL, -1); |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
391 | g_return_val_if_fail(strlen(message) <= QQ_MSG_IM_MAX, -E2BIG); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
392 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
393 | group = qq_group_find_by_channel(gc, channel); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
394 | g_return_val_if_fail(group != NULL, -1); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
395 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
396 | msg = utf8_to_qq(message, QQ_CHARSET_DEFAULT); |
| 15884 | 397 | msg_with_qq_smiley = purple_smiley_to_qq(msg); |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
398 | qq_send_packet_group_im(gc, group, msg_with_qq_smiley); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
399 | g_free(msg); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
400 | g_free(msg_with_qq_smiley); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
401 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
402 | return 1; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
403 | } |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
404 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
405 | /* send packet to get who's detailed information */ |
| 15884 | 406 | static void _qq_get_info(PurpleConnection *gc, const gchar *who) |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
407 | { |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
408 | guint32 uid; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
409 | qq_data *qd; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
410 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
411 | qd = gc->proto_data; |
| 15884 | 412 | uid = purple_name_to_uid(who); |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
413 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
414 | if (uid <= 0) { |
| 15884 | 415 | purple_debug(PURPLE_DEBUG_ERROR, "QQ", "Not valid QQid: %s\n", who); |
| 416 | purple_notify_error(gc, NULL, _("Invalid name"), NULL); | |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
417 | return; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
418 | } |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
419 | |
|
15200
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15185
diff
changeset
|
420 | qq_send_packet_get_level(gc, uid); |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
421 | qq_send_packet_get_info(gc, uid, TRUE); |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
422 | } |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
423 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
424 | /* get my own information */ |
| 15884 | 425 | static void _qq_menu_modify_my_info(PurplePluginAction *action) |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
426 | { |
| 15884 | 427 | PurpleConnection *gc = (PurpleConnection *) action->context; |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
428 | qq_data *qd; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
429 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
430 | qd = (qq_data *) gc->proto_data; |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
431 | qq_prepare_modify_info(gc); |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
432 | } |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
433 | |
| 15884 | 434 | static void _qq_menu_change_password(PurplePluginAction *action) |
|
14076
ac77316596dc
[gaim-migrate @ 16606]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14051
diff
changeset
|
435 | { |
| 15884 | 436 | purple_notify_uri(NULL, "https://password.qq.com"); |
|
14076
ac77316596dc
[gaim-migrate @ 16606]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14051
diff
changeset
|
437 | } |
|
ac77316596dc
[gaim-migrate @ 16606]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14051
diff
changeset
|
438 | |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
439 | /* 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
|
440 | /* TODO: re-enable this |
| 15884 | 441 | static void _qq_menu_block_buddy(PurpleBlistNode * node) |
|
13932
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 | guint32 uid; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
444 | gc_and_uid *g; |
| 15884 | 445 | PurpleBuddy *buddy; |
| 446 | PurpleConnection *gc; | |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
447 | const gchar *who; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
448 | |
| 15884 | 449 | g_return_if_fail(PURPLE_BLIST_NODE_IS_BUDDY(node)); |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
450 | |
| 15884 | 451 | buddy = (PurpleBuddy *) node; |
| 452 | gc = purple_account_get_connection(buddy->account); | |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
453 | who = buddy->name; |
|
14691
efb5fd0a34b7
[gaim-migrate @ 17375]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14604
diff
changeset
|
454 | g_return_if_fail(who != NULL); |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
455 | |
| 15884 | 456 | uid = purple_name_to_uid(who); |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
457 | g_return_if_fail(uid > 0); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
458 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
459 | g = g_new0(gc_and_uid, 1); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
460 | g->gc = gc; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
461 | g->uid = uid; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
462 | |
|
21175
c6d76b49c206
disapproval of revision '8ba833993a115415727bb1b70362e0bd1603c169'
Richard Laager <rlaager@pidgin.im>
parents:
21174
diff
changeset
|
463 | purple_request_action(gc, _("Block Buddy"), |
|
19097
9f5b720e73bc
Improve a bunch of strings in QQ
Mark Doliner <markdoliner@pidgin.im>
parents:
18992
diff
changeset
|
464 | _("Are you sure you want to block this buddy?"), NULL, |
|
21175
c6d76b49c206
disapproval of revision '8ba833993a115415727bb1b70362e0bd1603c169'
Richard Laager <rlaager@pidgin.im>
parents:
21174
diff
changeset
|
465 | 1, g, 2, |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
466 | _("Cancel"), |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
467 | G_CALLBACK(qq_do_nothing_with_gc_and_uid), |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
468 | _("Block"), G_CALLBACK(qq_block_buddy_with_gc_and_uid)); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
469 | } |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
470 | */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
471 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
472 | /* show a brief summary of what we get from login packet */ |
| 15884 | 473 | static void _qq_menu_show_login_info(PurplePluginAction *action) |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
474 | { |
| 15884 | 475 | PurpleConnection *gc = (PurpleConnection *) action->context; |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
476 | qq_data *qd; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
477 | GString *info; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
478 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
479 | qd = (qq_data *) gc->proto_data; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
480 | info = g_string_new("<html><body>\n"); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
481 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
482 | g_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
|
483 | 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
|
484 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
485 | g_string_append(info, "<hr>\n"); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
486 | |
| 23192 | 487 | g_string_append_printf(info, _("<b>Server</b>: %s: %d<br>\n"), qd->server_name, qd->real_port); |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
488 | g_string_append_printf(info, _("<b>Connection Mode</b>: %s<br>\n"), qd->use_tcp ? "TCP" : "UDP"); |
| 23192 | 489 | g_string_append_printf(info, _("<b>Real hostname</b>: %s: %d<br>\n"), qd->real_hostname, qd->real_port); |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
490 | 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
|
491 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
492 | g_string_append(info, "<hr>\n"); |
|
15133
9d5bbb9f8248
[gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15087
diff
changeset
|
493 | 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
|
494 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
495 | 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
|
496 | 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
|
497 | 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
|
498 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
499 | g_string_append(info, "</body></html>"); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
500 | |
| 15884 | 501 | 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
|
502 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
503 | g_string_free(info, TRUE); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
504 | } |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
505 | |
|
14304
1b119ac26ec3
[gaim-migrate @ 16924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14299
diff
changeset
|
506 | /* |
| 15884 | 507 | 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
|
508 | { |
| 15884 | 509 | purple_roomlist_show_with_account(NULL); |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
510 | } |
|
14304
1b119ac26ec3
[gaim-migrate @ 16924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14299
diff
changeset
|
511 | */ |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
512 | |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
513 | /* |
| 15884 | 514 | static void _qq_menu_create_permanent_group(PurplePluginAction * action) |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
515 | { |
| 15884 | 516 | PurpleConnection *gc = (PurpleConnection *) action->context; |
|
21175
c6d76b49c206
disapproval of revision '8ba833993a115415727bb1b70362e0bd1603c169'
Richard Laager <rlaager@pidgin.im>
parents:
21174
diff
changeset
|
517 | purple_request_input(gc, _("Create QQ Qun"), |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
518 | _("Input Qun name here"), |
|
19097
9f5b720e73bc
Improve a bunch of strings in QQ
Mark Doliner <markdoliner@pidgin.im>
parents:
18992
diff
changeset
|
519 | _("Only QQ members can create permanent Qun"), |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
520 | "OpenQ", FALSE, FALSE, NULL, |
|
21175
c6d76b49c206
disapproval of revision '8ba833993a115415727bb1b70362e0bd1603c169'
Richard Laager <rlaager@pidgin.im>
parents:
21174
diff
changeset
|
521 | _("Create"), G_CALLBACK(qq_group_create_with_name), _("Cancel"), NULL, gc); |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
522 | } |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
523 | */ |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
524 | |
| 15884 | 525 | static void _qq_menu_unsubscribe_group(PurpleBlistNode * node) |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
526 | { |
| 15884 | 527 | PurpleChat *chat = (PurpleChat *)node; |
| 528 | PurpleConnection *gc = purple_account_get_connection(chat->account); | |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
529 | GHashTable *components = chat -> components; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
530 | |
| 15884 | 531 | g_return_if_fail(PURPLE_BLIST_NODE_IS_CHAT(node)); |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
532 | |
|
14691
efb5fd0a34b7
[gaim-migrate @ 17375]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14604
diff
changeset
|
533 | g_return_if_fail(components != NULL); |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
534 | qq_group_exit(gc, components); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
535 | } |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
536 | |
|
14466
4fcd9fdc8060
[gaim-migrate @ 17112]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14382
diff
changeset
|
537 | /* |
| 15884 | 538 | static void _qq_menu_manage_group(PurpleBlistNode * node) |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
539 | { |
| 15884 | 540 | PurpleChat *chat = (PurpleChat *)node; |
| 541 | PurpleConnection *gc = purple_account_get_connection(chat->account); | |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
542 | GHashTable *components = chat -> components; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
543 | |
| 15884 | 544 | g_return_if_fail(PURPLE_BLIST_NODE_IS_CHAT(node)); |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
545 | |
|
14691
efb5fd0a34b7
[gaim-migrate @ 17375]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14604
diff
changeset
|
546 | g_return_if_fail(components != NULL); |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
547 | qq_group_manage_group(gc, components); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
548 | } |
|
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 | |
| 16413 | 551 | #if 0 |
| 552 | /* TODO: re-enable this */ | |
| 15884 | 553 | static void _qq_menu_send_file(PurpleBlistNode * node, gpointer ignored) |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
554 | { |
| 15884 | 555 | PurpleBuddy *buddy; |
| 556 | PurpleConnection *gc; | |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
557 | qq_buddy *q_bud; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
558 | |
| 15884 | 559 | g_return_if_fail (PURPLE_BLIST_NODE_IS_BUDDY (node)); |
| 560 | buddy = (PurpleBuddy *) node; | |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
561 | q_bud = (qq_buddy *) buddy->proto_data; |
| 16413 | 562 | /* if (is_online (q_bud->status)) { */ |
| 15884 | 563 | gc = purple_account_get_connection (buddy->account); |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
564 | g_return_if_fail (gc != NULL && gc->proto_data != NULL); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
565 | qq_send_file(gc, buddy->name, NULL); |
| 16413 | 566 | /* } */ |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
567 | } |
| 16413 | 568 | #endif |
|
14111
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
569 | |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
570 | /* protocol related menus */ |
| 15884 | 571 | static GList *_qq_actions(PurplePlugin *plugin, gpointer context) |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
572 | { |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
573 | GList *m; |
| 15884 | 574 | PurplePluginAction *act; |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
575 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
576 | m = NULL; |
|
19097
9f5b720e73bc
Improve a bunch of strings in QQ
Mark Doliner <markdoliner@pidgin.im>
parents:
18992
diff
changeset
|
577 | 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
|
578 | m = g_list_append(m, act); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
579 | |
| 15884 | 580 | 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
|
581 | m = g_list_append(m, act); |
|
ac77316596dc
[gaim-migrate @ 16606]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14051
diff
changeset
|
582 | |
| 15884 | 583 | 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
|
584 | m = g_list_append(m, act); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
585 | |
|
14111
0adb61f87bbb
[gaim-migrate @ 16662]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14102
diff
changeset
|
586 | /* |
| 15884 | 587 | 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
|
588 | m = g_list_append(m, act); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
589 | |
| 15884 | 590 | 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
|
591 | m = g_list_append(m, act); |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
592 | */ |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
593 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
594 | return m; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
595 | } |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
596 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
597 | /* chat-related (QQ Qun) menu shown up with right-click */ |
| 15884 | 598 | static GList *_qq_chat_menu(PurpleBlistNode *node) |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
599 | { |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
600 | GList *m; |
| 15884 | 601 | PurpleMenuAction *act; |
|
13932
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 | m = NULL; |
|
19097
9f5b720e73bc
Improve a bunch of strings in QQ
Mark Doliner <markdoliner@pidgin.im>
parents:
18992
diff
changeset
|
604 | 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
|
605 | m = g_list_append(m, act); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
606 | |
|
14466
4fcd9fdc8060
[gaim-migrate @ 17112]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14382
diff
changeset
|
607 | /* TODO: enable this |
| 15884 | 608 | 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
|
609 | m = g_list_append(m, act); |
|
14466
4fcd9fdc8060
[gaim-migrate @ 17112]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14382
diff
changeset
|
610 | */ |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
611 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
612 | return m; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
613 | } |
|
14466
4fcd9fdc8060
[gaim-migrate @ 17112]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14382
diff
changeset
|
614 | |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
615 | /* buddy-related menu shown up with right-click */ |
| 15884 | 616 | static GList *_qq_buddy_menu(PurpleBlistNode * node) |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
617 | { |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
618 | GList *m; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
619 | |
| 15884 | 620 | if(PURPLE_BLIST_NODE_IS_CHAT(node)) |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
621 | return _qq_chat_menu(node); |
|
15137
28f227957781
[gaim-migrate @ 17859]
Daniel Atallah <datallah@pidgin.im>
parents:
15134
diff
changeset
|
622 | |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
623 | m = NULL; |
| 16413 | 624 | |
| 625 | /* TODO : not working, temp commented out by gfhuang */ | |
| 626 | #if 0 | |
| 627 | ||
| 628 | act = purple_menu_action_new(_("Block this buddy"), PURPLE_CALLBACK(_qq_menu_block_buddy), NULL, NULL); /* add NULL by gfhuang */ | |
| 629 | m = g_list_append(m, act); | |
| 630 | /* if (q_bud && is_online(q_bud->status)) { */ | |
| 631 | act = purple_menu_action_new(_("Send File"), PURPLE_CALLBACK(_qq_menu_send_file), NULL, NULL); /* add NULL by gfhuang */ | |
| 632 | m = g_list_append(m, act); | |
| 633 | /* } */ | |
| 634 | #endif | |
| 635 | ||
|
14466
4fcd9fdc8060
[gaim-migrate @ 17112]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14382
diff
changeset
|
636 | return m; |
|
4fcd9fdc8060
[gaim-migrate @ 17112]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14382
diff
changeset
|
637 | } |
|
4fcd9fdc8060
[gaim-migrate @ 17112]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14382
diff
changeset
|
638 | |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
639 | |
| 23192 | 640 | static void qq_keep_alive(PurpleConnection *gc) |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
641 | { |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
642 | qq_group *group; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
643 | qq_data *qd; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
644 | GList *list; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
645 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
646 | if (NULL == (qd = (qq_data *) gc->proto_data)) |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
647 | return; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
648 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
649 | list = qd->groups; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
650 | while (list != NULL) { |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
651 | group = (qq_group *) list->data; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
652 | if (group->my_status == QQ_GROUP_MEMBER_STATUS_IS_MEMBER || |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
653 | group->my_status == QQ_GROUP_MEMBER_STATUS_IS_ADMIN) |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14079
diff
changeset
|
654 | /* 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
|
655 | qq_send_cmd_group_get_online_members(gc, group); |
|
15137
28f227957781
[gaim-migrate @ 17859]
Daniel Atallah <datallah@pidgin.im>
parents:
15134
diff
changeset
|
656 | |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
657 | list = list->next; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
658 | } |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
659 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
660 | qq_send_packet_keep_alive(gc); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
661 | } |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
662 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
663 | /* convert chat nickname to qq-uid to get this buddy info */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
664 | /* who is the nickname of buddy in QQ chat-room (Qun) */ |
| 15884 | 665 | 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
|
666 | { |
| 15884 | 667 | gchar *purple_name; |
|
14691
efb5fd0a34b7
[gaim-migrate @ 17375]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14604
diff
changeset
|
668 | g_return_if_fail(who != NULL); |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
669 | |
| 15884 | 670 | purple_name = chat_name_to_purple_name(who); |
| 671 | if (purple_name != NULL) | |
| 672 | _qq_get_info(gc, purple_name); | |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
673 | } |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
674 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
675 | /* 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
|
676 | /* who is the nickname of buddy in QQ chat-room (Qun) */ |
| 15884 | 677 | 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
|
678 | { |
|
14691
efb5fd0a34b7
[gaim-migrate @ 17375]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14604
diff
changeset
|
679 | g_return_val_if_fail(who != NULL, NULL); |
| 15884 | 680 | return chat_name_to_purple_name(who); |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
681 | } |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
682 | |
| 15884 | 683 | PurplePlugin *my_protocol = NULL; |
| 684 | static PurplePluginProtocolInfo prpl_info = { | |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
685 | OPT_PROTO_CHAT_TOPIC | OPT_PROTO_USE_POINTSIZE, |
|
15133
9d5bbb9f8248
[gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15087
diff
changeset
|
686 | NULL, /* user_splits */ |
|
9d5bbb9f8248
[gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15087
diff
changeset
|
687 | NULL, /* protocol_options */ |
| 15884 | 688 | {"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
|
689 | _qq_list_icon, /* list_icon */ |
| 15524 | 690 | _qq_list_emblem, /* list_emblems */ |
|
15133
9d5bbb9f8248
[gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15087
diff
changeset
|
691 | _qq_status_text, /* status_text */ |
|
9d5bbb9f8248
[gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15087
diff
changeset
|
692 | _qq_tooltip_text, /* tooltip_text */ |
|
9d5bbb9f8248
[gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15087
diff
changeset
|
693 | _qq_away_states, /* away_states */ |
|
9d5bbb9f8248
[gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15087
diff
changeset
|
694 | _qq_buddy_menu, /* blist_node_menu */ |
|
9d5bbb9f8248
[gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15087
diff
changeset
|
695 | qq_chat_info, /* chat_info */ |
|
9d5bbb9f8248
[gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15087
diff
changeset
|
696 | qq_chat_info_defaults, /* chat_info_defaults */ |
| 23192 | 697 | qq_login, /* open */ |
| 698 | qq_close, /* close */ | |
|
15133
9d5bbb9f8248
[gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15087
diff
changeset
|
699 | _qq_send_im, /* send_im */ |
|
9d5bbb9f8248
[gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15087
diff
changeset
|
700 | NULL, /* set_info */ |
|
9d5bbb9f8248
[gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15087
diff
changeset
|
701 | NULL, /* send_typing */ |
|
9d5bbb9f8248
[gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15087
diff
changeset
|
702 | _qq_get_info, /* get_info */ |
|
9d5bbb9f8248
[gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15087
diff
changeset
|
703 | _qq_set_away, /* set_away */ |
|
9d5bbb9f8248
[gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15087
diff
changeset
|
704 | NULL, /* set_idle */ |
|
9d5bbb9f8248
[gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15087
diff
changeset
|
705 | NULL, /* change_passwd */ |
|
9d5bbb9f8248
[gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15087
diff
changeset
|
706 | qq_add_buddy, /* add_buddy */ |
|
9d5bbb9f8248
[gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15087
diff
changeset
|
707 | NULL, /* add_buddies */ |
|
9d5bbb9f8248
[gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15087
diff
changeset
|
708 | qq_remove_buddy, /* remove_buddy */ |
|
9d5bbb9f8248
[gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15087
diff
changeset
|
709 | NULL, /* remove_buddies */ |
|
9d5bbb9f8248
[gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15087
diff
changeset
|
710 | NULL, /* add_permit */ |
|
9d5bbb9f8248
[gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15087
diff
changeset
|
711 | NULL, /* add_deny */ |
|
9d5bbb9f8248
[gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15087
diff
changeset
|
712 | NULL, /* rem_permit */ |
|
9d5bbb9f8248
[gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15087
diff
changeset
|
713 | NULL, /* rem_deny */ |
|
9d5bbb9f8248
[gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15087
diff
changeset
|
714 | NULL, /* set_permit_deny */ |
|
9d5bbb9f8248
[gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15087
diff
changeset
|
715 | qq_group_join, /* join_chat */ |
|
9d5bbb9f8248
[gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15087
diff
changeset
|
716 | NULL, /* reject chat invite */ |
|
9d5bbb9f8248
[gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15087
diff
changeset
|
717 | NULL, /* get_chat_name */ |
|
9d5bbb9f8248
[gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15087
diff
changeset
|
718 | NULL, /* chat_invite */ |
|
9d5bbb9f8248
[gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15087
diff
changeset
|
719 | NULL, /* chat_leave */ |
|
9d5bbb9f8248
[gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15087
diff
changeset
|
720 | NULL, /* chat_whisper */ |
|
9d5bbb9f8248
[gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15087
diff
changeset
|
721 | _qq_chat_send, /* chat_send */ |
| 23192 | 722 | qq_keep_alive, /* keepalive */ |
|
15133
9d5bbb9f8248
[gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15087
diff
changeset
|
723 | NULL, /* register_user */ |
|
9d5bbb9f8248
[gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15087
diff
changeset
|
724 | _qq_get_chat_buddy_info, /* get_cb_info */ |
|
9d5bbb9f8248
[gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15087
diff
changeset
|
725 | NULL, /* get_cb_away */ |
|
9d5bbb9f8248
[gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15087
diff
changeset
|
726 | NULL, /* alias_buddy */ |
|
9d5bbb9f8248
[gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15087
diff
changeset
|
727 | NULL, /* group_buddy */ |
|
9d5bbb9f8248
[gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15087
diff
changeset
|
728 | NULL, /* rename_group */ |
|
15137
28f227957781
[gaim-migrate @ 17859]
Daniel Atallah <datallah@pidgin.im>
parents:
15134
diff
changeset
|
729 | NULL, /* buddy_free */ |
|
15133
9d5bbb9f8248
[gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15087
diff
changeset
|
730 | NULL, /* convo_closed */ |
|
9d5bbb9f8248
[gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15087
diff
changeset
|
731 | NULL, /* normalize */ |
|
9d5bbb9f8248
[gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15087
diff
changeset
|
732 | qq_set_my_buddy_icon, /* set_buddy_icon */ |
|
9d5bbb9f8248
[gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15087
diff
changeset
|
733 | NULL, /* remove_group */ |
|
9d5bbb9f8248
[gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15087
diff
changeset
|
734 | _qq_get_chat_buddy_real_name, /* get_cb_real_name */ |
|
9d5bbb9f8248
[gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15087
diff
changeset
|
735 | NULL, /* set_chat_topic */ |
|
9d5bbb9f8248
[gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15087
diff
changeset
|
736 | NULL, /* find_blist_chat */ |
|
9d5bbb9f8248
[gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15087
diff
changeset
|
737 | qq_roomlist_get_list, /* roomlist_get_list */ |
|
9d5bbb9f8248
[gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15087
diff
changeset
|
738 | qq_roomlist_cancel, /* roomlist_cancel */ |
|
9d5bbb9f8248
[gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15087
diff
changeset
|
739 | NULL, /* roomlist_expand_category */ |
|
9d5bbb9f8248
[gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15087
diff
changeset
|
740 | NULL, /* can_receive_file */ |
|
9d5bbb9f8248
[gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15087
diff
changeset
|
741 | qq_send_file, /* send_file */ |
|
15137
28f227957781
[gaim-migrate @ 17859]
Daniel Atallah <datallah@pidgin.im>
parents:
15134
diff
changeset
|
742 | NULL, /* new xfer */ |
|
15133
9d5bbb9f8248
[gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15087
diff
changeset
|
743 | NULL, /* offline_message */ |
| 15884 | 744 | NULL, /* PurpleWhiteboardPrplOps */ |
|
15133
9d5bbb9f8248
[gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15087
diff
changeset
|
745 | NULL, /* send_raw */ |
| 15185 | 746 | NULL, /* roomlist_room_serialize */ |
|
16746
72faf41c3c4f
And now the protocols
Gary Kramlich <grim@reaperworld.com>
parents:
16413
diff
changeset
|
747 | |
|
72faf41c3c4f
And now the protocols
Gary Kramlich <grim@reaperworld.com>
parents:
16413
diff
changeset
|
748 | /* padding */ |
|
72faf41c3c4f
And now the protocols
Gary Kramlich <grim@reaperworld.com>
parents:
16413
diff
changeset
|
749 | NULL, |
|
72faf41c3c4f
And now the protocols
Gary Kramlich <grim@reaperworld.com>
parents:
16413
diff
changeset
|
750 | NULL, |
|
72faf41c3c4f
And now the protocols
Gary Kramlich <grim@reaperworld.com>
parents:
16413
diff
changeset
|
751 | NULL, |
|
72faf41c3c4f
And now the protocols
Gary Kramlich <grim@reaperworld.com>
parents:
16413
diff
changeset
|
752 | NULL |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
753 | }; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
754 | |
| 15884 | 755 | static PurplePluginInfo info = { |
| 756 | PURPLE_PLUGIN_MAGIC, | |
| 757 | PURPLE_MAJOR_VERSION, | |
| 758 | PURPLE_MINOR_VERSION, | |
| 759 | PURPLE_PLUGIN_PROTOCOL, /**< type */ | |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
760 | NULL, /**< ui_requirement */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
761 | 0, /**< flags */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
762 | NULL, /**< dependencies */ |
| 15884 | 763 | PURPLE_PRIORITY_DEFAULT, /**< priority */ |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
764 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
765 | "prpl-qq", /**< id */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
766 | "QQ", /**< name */ |
|
20288
5ca925a094e2
applied changes from 03b709ec2a153e7e82719df0ba4635108bb1d3c6
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
19859
diff
changeset
|
767 | DISPLAY_VERSION, /**< version */ |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
768 | /** summary */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
769 | N_("QQ Protocol Plugin"), |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
770 | /** description */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
771 | N_("QQ Protocol Plugin"), |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
772 | OPENQ_AUTHOR, /**< author */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
773 | OPENQ_WEBSITE, /**< homepage */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
774 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
775 | NULL, /**< load */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
776 | NULL, /**< unload */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
777 | NULL, /**< destroy */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
778 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
779 | NULL, /**< ui_info */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
780 | &prpl_info, /**< extra_info */ |
|
14466
4fcd9fdc8060
[gaim-migrate @ 17112]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14382
diff
changeset
|
781 | NULL, /**< prefs_info */ |
|
16746
72faf41c3c4f
And now the protocols
Gary Kramlich <grim@reaperworld.com>
parents:
16413
diff
changeset
|
782 | _qq_actions, |
|
72faf41c3c4f
And now the protocols
Gary Kramlich <grim@reaperworld.com>
parents:
16413
diff
changeset
|
783 | |
|
72faf41c3c4f
And now the protocols
Gary Kramlich <grim@reaperworld.com>
parents:
16413
diff
changeset
|
784 | /* padding */ |
|
72faf41c3c4f
And now the protocols
Gary Kramlich <grim@reaperworld.com>
parents:
16413
diff
changeset
|
785 | NULL, |
|
72faf41c3c4f
And now the protocols
Gary Kramlich <grim@reaperworld.com>
parents:
16413
diff
changeset
|
786 | NULL, |
|
72faf41c3c4f
And now the protocols
Gary Kramlich <grim@reaperworld.com>
parents:
16413
diff
changeset
|
787 | NULL, |
|
72faf41c3c4f
And now the protocols
Gary Kramlich <grim@reaperworld.com>
parents:
16413
diff
changeset
|
788 | NULL |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
789 | }; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
790 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
791 | |
| 15884 | 792 | static void init_plugin(PurplePlugin *plugin) |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
793 | { |
| 15884 | 794 | PurpleAccountOption *option; |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
795 | |
| 15884 | 796 | option = purple_account_option_string_new(_("Server"), "server", NULL); |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
797 | 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
|
798 | |
| 23192 | 799 | option = purple_account_option_int_new(_("Port"), "port", 0); |
| 800 | prpl_info.protocol_options = g_list_append(prpl_info.protocol_options, option); | |
| 801 | ||
| 802 | option = purple_account_option_bool_new(_("Connect using TCP"), "use_tcp", TRUE); | |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
803 | 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
|
804 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
805 | my_protocol = plugin; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
806 | |
| 15884 | 807 | purple_prefs_add_none("/plugins/prpl/qq"); |
| 808 | purple_prefs_add_bool("/plugins/prpl/qq/show_status_by_icon", TRUE); | |
| 809 | purple_prefs_add_bool("/plugins/prpl/qq/show_fake_video", FALSE); | |
| 810 | 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
|
811 | } |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
812 | |
| 15884 | 813 | PURPLE_INIT_PLUGIN(qq, init_plugin, info); |