Mercurial > pidgin.yaz
annotate src/protocols/gg/gg.c @ 12216:4d3119205a33
[gaim-migrate @ 14518]
Remove GaimConvImFlags and GaimConvChatFlags - use GaimMessageFlags
everywhere instead.
Add a new GAIM_MESSAGE_IMAGES flag, and set it when sending a message
containing images.
When sending a message, the core will now always send "html" to the prpls,
just like it expects to receive html from the prpls for received messages.
This will allow text prpls such as SILC to support IM images and differentiate
them from user input. Previously gaim_unescape_html() was used before passing
the message to the prpl, now the prpl does this itself if it needs it.
I think I updated all the prpls correctly, but I'm not so sure about sametime.
committer: Tailor Script <tailor@pidgin.im>
author | Stu Tomlinson <stu@nosnilmot.com> |
---|---|
date | Thu, 24 Nov 2005 20:47:46 +0000 |
parents | cbebda5f019c |
children | 64254fbabc7b |
rev | line source |
---|---|
11394 | 1 /** |
2 * @file gg.c Gadu-Gadu protocol plugin | |
3 * | |
4 * gaim | |
5 * | |
6 * Copyright (C) 2005 Bartosz Oler <bartosz@bzimage.us> | |
7 * | |
12007
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
8 * Some parts of the code are adapted or taken from the previous implementation |
11394 | 9 * of this plugin written by Arkadiusz Miskiewicz <misiek@pld.org.pl> |
10 * | |
11 * Thanks to Google's Summer of Code Program. | |
12 * | |
13 * This program is free software; you can redistribute it and/or modify | |
14 * it under the terms of the GNU General Public License as published by | |
15 * the Free Software Foundation; either version 2 of the License, or | |
16 * (at your option) any later version. | |
17 * | |
18 * This program is distributed in the hope that it will be useful, | |
19 * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
20 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
21 * GNU General Public License for more details. | |
22 * | |
23 * You should have received a copy of the GNU General Public License | |
24 * along with this program; if not, write to the Free Software | |
25 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
26 */ | |
27 | |
11360 | 28 |
2393 | 29 /* |
11360 | 30 * NOTES |
2393 | 31 * |
11360 | 32 * I don't like automatic updates of the buddylist stored on the server, so not |
33 * going to implement this. Maybe some kind of option to enable/disable this | |
34 * feature. | |
2393 | 35 */ |
11360 | 36 |
5872
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5681
diff
changeset
|
37 #include "internal.h" |
2393 | 38 |
11360 | 39 #include "plugin.h" |
40 #include "version.h" | |
41 #include "notify.h" | |
42 #include "status.h" | |
9030 | 43 #include "blist.h" |
11360 | 44 #include "accountopt.h" |
5872
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5681
diff
changeset
|
45 #include "debug.h" |
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5681
diff
changeset
|
46 #include "util.h" |
11360 | 47 #include "request.h" |
2393 | 48 |
11360 | 49 #include "lib/libgadu.h" |
5603 | 50 |
11414 | 51 #include "gg.h" |
52 #include "confer.h" | |
53 #include "search.h" | |
54 #include "buddylist.h" | |
55 #include "utils.h" | |
11394 | 56 |
11414 | 57 static GaimPlugin *my_protocol = NULL; |
11394 | 58 |
11360 | 59 /* ---------------------------------------------------------------------- */ |
11414 | 60 /* ----- EXTERNAL CALLBACKS --------------------------------------------- */ |
11360 | 61 /* ---------------------------------------------------------------------- */ |
9950 | 62 |
12007
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
63 |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
64 /* ----- HELPERS -------------------------------------------------------- */ |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
65 |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
66 /* |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
67 */ |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
68 /* static void ggp_async_token_handler(gpointer _gc, gint fd, GaimInputCondition cond) {{{ */ |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
69 static void ggp_async_token_handler(gpointer _gc, gint fd, GaimInputCondition cond) |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
70 { |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
71 GaimConnection *gc = _gc; |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
72 GGPInfo *info = gc->proto_data; |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
73 GGPToken *token = info->token; |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
74 GGPTokenCallback cb; |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
75 |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
76 struct gg_token *t = NULL; |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
77 |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
78 gaim_debug_info("gg", "token_handler: token->req->fd = %d\n", token->req->fd); |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
79 gaim_debug_info("gg", "token_handler: token->req: check = %d; state = %d;\n", |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
80 token->req->check, token->req->state); |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
81 |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
82 if (gg_token_watch_fd(token->req) == -1 || token->req->state == GG_STATE_ERROR) { |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
83 gaim_debug_error("gg", "token error (1): %d\n", token->req->error); |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
84 gaim_input_remove(token->inpa); |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
85 gg_token_free(token->req); |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
86 token->req = NULL; |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
87 |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
88 gaim_notify_error(gaim_connection_get_account(gc), |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
89 _("Token Error"), |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
90 _("Unable to fetch the token.\n"), NULL); |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
91 return; |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
92 } |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
93 |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
94 if (token->req->state != GG_STATE_DONE) { |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
95 gaim_input_remove(token->inpa); |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
96 token->inpa = gaim_input_add(token->req->fd, |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
97 (token->req->check == 1) |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
98 ? GAIM_INPUT_WRITE |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
99 : GAIM_INPUT_READ, |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
100 ggp_async_token_handler, gc); |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
101 return; |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
102 } |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
103 |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
104 if (!(t = token->req->data) || !token->req->body) { |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
105 gaim_debug_error("gg", "token error (2): %d\n", token->req->error); |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
106 gaim_input_remove(token->inpa); |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
107 gg_token_free(token->req); |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
108 token->req = NULL; |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
109 |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
110 gaim_notify_error(gaim_connection_get_account(gc), |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
111 _("Token Error"), |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
112 _("Unable to fetch the token.\n"), NULL); |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
113 return; |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
114 } |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
115 |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
116 gaim_input_remove(token->inpa); |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
117 |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
118 token->id = g_strdup(t->tokenid); |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
119 token->size = token->req->body_size; |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
120 token->data = g_new0(char, token->size); |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
121 memcpy(token->data, token->req->body, token->size); |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
122 |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
123 gaim_debug_info("gg", "TOKEN! tokenid = %s; size = %d\n", |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
124 token->id, token->size); |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
125 |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
126 gg_token_free(token->req); |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
127 token->req = NULL; |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
128 token->inpa = 0; |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
129 |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
130 cb = token->cb; |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
131 token->cb = NULL; |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
132 cb(gc); |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
133 } |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
134 /* }}} */ |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
135 |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
136 /* |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
137 */ |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
138 /* static void ggp_token_request(GaimConnection *gc, GGPTokenCallback cb) {{{ */ |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
139 static void ggp_token_request(GaimConnection *gc, GGPTokenCallback cb) |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
140 { |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
141 GGPInfo *info = gc->proto_data; |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
142 struct gg_http *req; |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
143 |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
144 if ((req = gg_token(1)) == NULL) { |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
145 gaim_notify_error(gaim_connection_get_account(gc), |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
146 _("Token Error"), |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
147 _("Unable to fetch the token.\n"), NULL); |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
148 return; |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
149 } |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
150 |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
151 info->token = g_new(GGPToken, 1); |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
152 info->token->cb = cb; |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
153 |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
154 info->token->req = req; |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
155 info->token->inpa = gaim_input_add(req->fd, GAIM_INPUT_READ, |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
156 ggp_async_token_handler, gc); |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
157 } |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
158 /* }}} */ |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
159 |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
160 /* ---------------------------------------------------------------------- */ |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
161 |
11360 | 162 /** |
163 * Request buddylist from the server. | |
164 * Buddylist is received in the ggp_callback_recv(). | |
165 * | |
166 * @param Current action handler. | |
167 */ | |
168 /* static void ggp_action_buddylist_get(GaimPluginAction *action) {{{ */ | |
169 static void ggp_action_buddylist_get(GaimPluginAction *action) | |
170 { | |
171 GaimConnection *gc = (GaimConnection *)action->context; | |
172 GGPInfo *info = gc->proto_data; | |
173 | |
174 gaim_debug_info("gg", "Downloading...\n"); | |
175 | |
176 gg_userlist_request(info->session, GG_USERLIST_GET, NULL); | |
177 } | |
178 /* }}} */ | |
179 | |
180 /** | |
181 * Upload the buddylist to the server. | |
182 * | |
183 * @param action Current action handler. | |
184 */ | |
185 /* static void ggp_action_buddylist_put(GaimPluginAction *action) {{{ */ | |
186 static void ggp_action_buddylist_put(GaimPluginAction *action) | |
187 { | |
188 GaimConnection *gc = (GaimConnection *)action->context; | |
189 GGPInfo *info = gc->proto_data; | |
190 | |
191 char *buddylist = ggp_buddylist_dump(gaim_connection_get_account(gc)); | |
192 | |
193 gaim_debug_info("gg", "Uploading...\n"); | |
194 | |
195 if (buddylist == NULL) | |
196 return; | |
197 | |
198 gg_userlist_request(info->session, GG_USERLIST_PUT, buddylist); | |
199 g_free(buddylist); | |
200 } | |
201 /* }}} */ | |
202 | |
203 /** | |
204 * Delete buddylist from the server. | |
205 * | |
206 * @param action Current action handler. | |
207 */ | |
208 /* static void ggp_action_buddylist_delete(GaimPluginAction *action) {{{ */ | |
209 static void ggp_action_buddylist_delete(GaimPluginAction *action) | |
210 { | |
211 GaimConnection *gc = (GaimConnection *)action->context; | |
212 GGPInfo *info = gc->proto_data; | |
213 | |
214 gaim_debug_info("gg", "Deleting...\n"); | |
215 | |
216 gg_userlist_request(info->session, GG_USERLIST_PUT, NULL); | |
217 } | |
218 /* }}} */ | |
219 | |
220 /* | |
221 */ | |
222 /* static void ggp_callback_buddylist_save_ok(GaimConnection *gc, gchar *file) {{{ */ | |
223 static void ggp_callback_buddylist_save_ok(GaimConnection *gc, gchar *file) | |
224 { | |
225 GaimAccount *account = gaim_connection_get_account(gc); | |
226 | |
227 FILE *fh; | |
228 char *buddylist = ggp_buddylist_dump(account); | |
229 gchar *msg; | |
230 | |
231 gaim_debug_info("gg", "Saving...\n"); | |
232 gaim_debug_info("gg", "file = %s\n", file); | |
233 | |
234 if (buddylist == NULL) { | |
235 gaim_notify_info(account, _("Save Buddylist..."), | |
12007
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
236 _("Your buddylist is empty, nothing was written to the file."), |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
237 NULL); |
2792
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
238 return; |
9123abd0db92
[gaim-migrate @ 2805]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2791
diff
changeset
|
239 } |
2393 | 240 |
11360 | 241 if ((fh = g_fopen(file, "wb")) == NULL) { |
242 msg = g_strconcat(_("Couldn't open file"), ": ", file, "\n", NULL); | |
243 gaim_debug_error("gg", "Could not open file: %s\n", file); | |
244 gaim_notify_error(account, _("Couldn't open file"), msg, NULL); | |
245 g_free(msg); | |
246 g_free(file); | |
247 return; | |
248 } | |
249 | |
250 fwrite(buddylist, sizeof(char), g_utf8_strlen(buddylist, -1), fh); | |
251 fclose(fh); | |
252 g_free(buddylist); | |
253 | |
254 gaim_notify_info(account, _("Save Buddylist..."), | |
255 _("Buddylist saved successfully!"), NULL); | |
256 } | |
257 /* }}} */ | |
2806
1ffac7cf4e94
[gaim-migrate @ 2819]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2792
diff
changeset
|
258 |
11360 | 259 /* |
260 */ | |
261 /* static void ggp_callback_buddylist_load_ok(GaimConnection *gc, gchar *file) {{{ */ | |
262 static void ggp_callback_buddylist_load_ok(GaimConnection *gc, gchar *file) | |
263 { | |
264 GaimAccount *account = gaim_connection_get_account(gc); | |
12007
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
265 GError *error = NULL; |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
266 char *buddylist = NULL; |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
267 gsize length; |
11360 | 268 |
269 gaim_debug_info("gg", "file_name = %s\n", file); | |
270 | |
12007
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
271 if (!g_file_get_contents(file, &buddylist, &length, &error)) { |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
272 gaim_notify_error(account, |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
273 _("Couldn't load buddylist"), |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
274 _("Couldn't load buddylist"), |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
275 error->message); |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
276 |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
277 gaim_debug_error("gg", |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
278 "Couldn't load buddylist. file = %s; error = %s\n", |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
279 file, error->message); |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
280 |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
281 g_error_free(error); |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
282 |
2806
1ffac7cf4e94
[gaim-migrate @ 2819]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2792
diff
changeset
|
283 return; |
1ffac7cf4e94
[gaim-migrate @ 2819]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2792
diff
changeset
|
284 } |
11360 | 285 |
286 ggp_buddylist_load(gc, buddylist); | |
287 g_free(buddylist); | |
288 | |
289 gaim_notify_info(account, | |
290 _("Load Buddylist..."), | |
291 _("Buddylist loaded successfully!"), NULL); | |
2806
1ffac7cf4e94
[gaim-migrate @ 2819]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2792
diff
changeset
|
292 } |
11360 | 293 /* }}} */ |
294 | |
295 /* | |
296 */ | |
297 /* static void ggp_action_buddylist_save(GaimPluginAction *action) {{{ */ | |
298 static void ggp_action_buddylist_save(GaimPluginAction *action) | |
299 { | |
300 GaimConnection *gc = (GaimConnection *)action->context; | |
301 | |
302 gaim_request_file(action, _("Save buddylist..."), NULL, TRUE, | |
12007
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
303 G_CALLBACK(ggp_callback_buddylist_save_ok), NULL, gc); |
11360 | 304 } |
305 /* }}} */ | |
2806
1ffac7cf4e94
[gaim-migrate @ 2819]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2792
diff
changeset
|
306 |
11360 | 307 /* |
308 */ | |
309 /* static void ggp_action_buddylist_load(GaimPluginAction *action) {{{ */ | |
310 static void ggp_action_buddylist_load(GaimPluginAction *action) | |
311 { | |
312 GaimConnection *gc = (GaimConnection *)action->context; | |
313 | |
314 gaim_request_file(action, "Load buddylist from file...", NULL, FALSE, | |
12007
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
315 G_CALLBACK(ggp_callback_buddylist_load_ok), NULL, gc); |
11360 | 316 } |
317 /* }}} */ | |
318 | |
319 /* | |
320 */ | |
11414 | 321 /* static void ggp_callback_register_account_ok(GaimConnection *gc, GaimRequestFields *fields) {{{ */ |
12007
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
322 static void ggp_callback_register_account_ok(GaimConnection *gc, |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
323 GaimRequestFields *fields) |
11414 | 324 { |
325 GaimAccount *account; | |
326 GGPInfo *info = gc->proto_data; | |
327 struct gg_http *h = NULL; | |
328 struct gg_pubdir *s; | |
329 uin_t uin; | |
330 gchar *email, *p1, *p2, *t; | |
12007
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
331 GGPToken *token = info->token; |
11414 | 332 |
333 email = charset_convert(gaim_request_fields_get_string(fields, "email"), | |
334 "UTF-8", "CP1250"); | |
335 p1 = charset_convert(gaim_request_fields_get_string(fields, "password1"), | |
336 "UTF-8", "CP1250"); | |
337 p2 = charset_convert(gaim_request_fields_get_string(fields, "password2"), | |
338 "UTF-8", "CP1250"); | |
339 t = charset_convert(gaim_request_fields_get_string(fields, "token"), | |
340 "UTF-8", "CP1250"); | |
341 | |
342 account = gaim_connection_get_account(gc); | |
343 | |
344 if (email == NULL || p1 == NULL || p2 == NULL || t == NULL || | |
345 *email == '\0' || *p1 == '\0' || *p2 == '\0' || *t == '\0') { | |
11545
85abf1deac05
[gaim-migrate @ 13800]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11544
diff
changeset
|
346 gaim_connection_error(gc, _("Fill in the registration fields.")); |
11414 | 347 goto exit_err; |
348 } | |
349 | |
350 if (g_utf8_collate(p1, p2) != 0) { | |
11545
85abf1deac05
[gaim-migrate @ 13800]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11544
diff
changeset
|
351 gaim_connection_error(gc, _("Passwords do not match.")); |
11414 | 352 goto exit_err; |
353 } | |
354 | |
12007
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
355 gaim_debug_info("gg", "register_account_ok: token_id = %d; t = %s\n", |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
356 token->id, t); |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
357 h = gg_register3(email, p1, token->id, t, 0); |
11414 | 358 if (h == NULL || !(s = h->data) || !s->success) { |
11545
85abf1deac05
[gaim-migrate @ 13800]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11544
diff
changeset
|
359 gaim_connection_error(gc, |
85abf1deac05
[gaim-migrate @ 13800]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11544
diff
changeset
|
360 _("Unable to register new account. Error occurred.\n")); |
11414 | 361 goto exit_err; |
362 } | |
363 | |
364 uin = s->uin; | |
365 gaim_debug_info("gg", "registered uin: %d\n", uin); | |
366 | |
11545
85abf1deac05
[gaim-migrate @ 13800]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11544
diff
changeset
|
367 g_free(t); |
85abf1deac05
[gaim-migrate @ 13800]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11544
diff
changeset
|
368 t = g_strdup_printf("%u", uin); |
85abf1deac05
[gaim-migrate @ 13800]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11544
diff
changeset
|
369 gaim_account_set_username(account, t); |
85abf1deac05
[gaim-migrate @ 13800]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11544
diff
changeset
|
370 /* Save the password if remembering passwords for the account */ |
85abf1deac05
[gaim-migrate @ 13800]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11544
diff
changeset
|
371 gaim_account_set_password(account, p1); |
85abf1deac05
[gaim-migrate @ 13800]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11544
diff
changeset
|
372 |
11414 | 373 gaim_notify_info(NULL, _("New Gadu-Gadu Account Registered"), |
374 _("Registration completed successfully!"), NULL); | |
375 | |
12007
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
376 /* TODO: the currently open Accounts Window will not be updated withthe |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
377 * new username and etc, we need to somehow have it refresh at this |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
378 * point |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
379 */ |
11545
85abf1deac05
[gaim-migrate @ 13800]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11544
diff
changeset
|
380 |
85abf1deac05
[gaim-migrate @ 13800]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11544
diff
changeset
|
381 /* Need to disconnect or actually log in. For now, we disconnect. */ |
85abf1deac05
[gaim-migrate @ 13800]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11544
diff
changeset
|
382 gaim_connection_destroy(gc); |
85abf1deac05
[gaim-migrate @ 13800]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11544
diff
changeset
|
383 |
11414 | 384 exit_err: |
385 gg_register_free(h); | |
386 g_free(email); | |
387 g_free(p1); | |
388 g_free(p2); | |
389 g_free(t); | |
12007
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
390 g_free(token->id); |
11545
85abf1deac05
[gaim-migrate @ 13800]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11544
diff
changeset
|
391 g_free(token); |
11414 | 392 } |
393 /* }}} */ | |
394 | |
11565 | 395 /* |
396 */ | |
397 /* static void ggp_callback_register_account_cancel(GaimConnection *gc, GaimRequestFields *fields) {{{ */ | |
12007
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
398 static void ggp_callback_register_account_cancel(GaimConnection *gc, |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
399 GaimRequestFields *fields) |
11545
85abf1deac05
[gaim-migrate @ 13800]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11544
diff
changeset
|
400 { |
85abf1deac05
[gaim-migrate @ 13800]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11544
diff
changeset
|
401 GGPInfo *info = gc->proto_data; |
12007
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
402 GGPToken *token = info->token; |
11545
85abf1deac05
[gaim-migrate @ 13800]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11544
diff
changeset
|
403 |
85abf1deac05
[gaim-migrate @ 13800]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11544
diff
changeset
|
404 gaim_connection_destroy(gc); |
85abf1deac05
[gaim-migrate @ 13800]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11544
diff
changeset
|
405 |
12007
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
406 g_free(token->id); |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
407 g_free(token->data); |
11545
85abf1deac05
[gaim-migrate @ 13800]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11544
diff
changeset
|
408 g_free(token); |
85abf1deac05
[gaim-migrate @ 13800]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11544
diff
changeset
|
409 |
85abf1deac05
[gaim-migrate @ 13800]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11544
diff
changeset
|
410 } |
11565 | 411 /* }}} */ |
11545
85abf1deac05
[gaim-migrate @ 13800]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11544
diff
changeset
|
412 |
12007
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
413 /* |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
414 */ |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
415 /* static void ggp_register_user_dialog(GaimConnection *gc) {{{ */ |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
416 static void ggp_register_user_dialog(GaimConnection *gc) |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
417 { |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
418 GaimAccount *account; |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
419 GaimRequestFields *fields; |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
420 GaimRequestFieldGroup *group; |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
421 GaimRequestField *field; |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
422 |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
423 GGPInfo *info = gc->proto_data; |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
424 GGPToken *token = info->token; |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
425 |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
426 |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
427 account = gaim_connection_get_account(gc); |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
428 |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
429 fields = gaim_request_fields_new(); |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
430 group = gaim_request_field_group_new(NULL); |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
431 gaim_request_fields_add_group(fields, group); |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
432 |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
433 field = gaim_request_field_string_new("email", |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
434 _("e-Mail"), "", FALSE); |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
435 gaim_request_field_string_set_masked(field, FALSE); |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
436 gaim_request_field_group_add_field(group, field); |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
437 |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
438 field = gaim_request_field_string_new("password1", |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
439 _("Password"), "", FALSE); |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
440 gaim_request_field_string_set_masked(field, TRUE); |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
441 gaim_request_field_group_add_field(group, field); |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
442 |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
443 field = gaim_request_field_string_new("password2", |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
444 _("Password (retype)"), "", FALSE); |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
445 gaim_request_field_string_set_masked(field, TRUE); |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
446 gaim_request_field_group_add_field(group, field); |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
447 |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
448 field = gaim_request_field_string_new("token", |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
449 _("Enter current token"), "", FALSE); |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
450 gaim_request_field_string_set_masked(field, FALSE); |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
451 gaim_request_field_group_add_field(group, field); |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
452 |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
453 /* original size: 60x24 */ |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
454 field = gaim_request_field_image_new("token_img", |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
455 _("Current token"), token->data, token->size); |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
456 gaim_request_field_group_add_field(group, field); |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
457 |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
458 gaim_request_fields(account, |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
459 _("Register New Gadu-Gadu Account"), |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
460 _("Register New Gadu-Gadu Account"), |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
461 _("Please, fill in the following fields"), |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
462 fields, |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
463 _("OK"), G_CALLBACK(ggp_callback_register_account_ok), |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
464 _("Cancel"), G_CALLBACK(ggp_callback_register_account_cancel), |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
465 gc); |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
466 } |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
467 /* }}} */ |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
468 |
11414 | 469 /* ----- PUBLIC DIRECTORY SEARCH ---------------------------------------- */ |
470 | |
471 /* | |
472 */ | |
473 /* static void ggp_callback_show_next(GaimConnection *gc, GList *row) {{{ */ | |
474 static void ggp_callback_show_next(GaimConnection *gc, GList *row) | |
475 { | |
476 GGPInfo *info = gc->proto_data; | |
477 | |
478 g_free(info->search_form->offset); | |
479 info->search_form->offset = g_strdup(info->search_form->last_uin); | |
480 ggp_search_start(gc, info->search_form); | |
481 } | |
482 /* }}} */ | |
483 | |
484 /* | |
485 */ | |
486 /* static void ggp_callback_add_buddy(GaimConnection *gc, GList *row) {{{ */ | |
487 static void ggp_callback_add_buddy(GaimConnection *gc, GList *row) | |
488 { | |
489 gaim_blist_request_add_buddy(gaim_connection_get_account(gc), | |
12007
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
490 g_list_nth_data(row, 0), NULL, NULL); |
11414 | 491 } |
492 /* }}} */ | |
493 | |
494 /* | |
495 */ | |
496 /* static void ggp_callback_find_buddies(GaimConnection *gc, GaimRequestFields *fields) {{{ */ | |
497 static void ggp_callback_find_buddies(GaimConnection *gc, GaimRequestFields *fields) | |
498 { | |
499 GGPInfo *info = gc->proto_data; | |
500 GGPSearchForm *form; | |
501 | |
502 form = ggp_search_form_new(); | |
503 /* | |
504 * TODO: Fail if we have already a form attached. Only one search | |
505 * at a time will be allowed for now. | |
506 */ | |
507 info->search_form = form; | |
508 | |
12007
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
509 form->lastname = charset_convert( |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
510 gaim_request_fields_get_string(fields, "lastname"), |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
511 "UTF-8", "CP1250"); |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
512 form->firstname = charset_convert( |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
513 gaim_request_fields_get_string(fields, "firstname"), |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
514 "UTF-8", "CP1250"); |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
515 form->nickname = charset_convert( |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
516 gaim_request_fields_get_string(fields, "nickname"), |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
517 "UTF-8", "CP1250"); |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
518 form->city = charset_convert( |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
519 gaim_request_fields_get_string(fields, "city"), |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
520 "UTF-8", "CP1250"); |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
521 form->birthyear = charset_convert( |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
522 gaim_request_fields_get_string(fields, "year"), |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
523 "UTF-8", "CP1250"); |
11414 | 524 |
525 switch (gaim_request_fields_get_choice(fields, "gender")) { | |
526 case 1: | |
527 form->gender = g_strdup(GG_PUBDIR50_GENDER_MALE); | |
528 break; | |
529 case 2: | |
530 form->gender = g_strdup(GG_PUBDIR50_GENDER_FEMALE); | |
531 break; | |
532 default: | |
533 form->gender = NULL; | |
534 break; | |
535 } | |
536 | |
537 form->active = gaim_request_fields_get_bool(fields, "active") | |
538 ? g_strdup(GG_PUBDIR50_ACTIVE_TRUE) : NULL; | |
539 | |
540 form->offset = g_strdup("0"); | |
541 | |
542 ggp_search_start(gc, form); | |
543 } | |
544 /* }}} */ | |
545 | |
546 /* | |
547 */ | |
548 /* static void ggp_find_buddies(GaimPluginAction *action) {{{ */ | |
549 static void ggp_find_buddies(GaimPluginAction *action) | |
550 { | |
551 GaimConnection *gc = (GaimConnection *)action->context; | |
552 | |
553 GaimRequestFields *fields; | |
554 GaimRequestFieldGroup *group; | |
555 GaimRequestField *field; | |
556 | |
557 fields = gaim_request_fields_new(); | |
558 group = gaim_request_field_group_new(NULL); | |
559 gaim_request_fields_add_group(fields, group); | |
560 | |
12007
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
561 field = gaim_request_field_string_new("lastname", |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
562 _("Last name"), NULL, FALSE); |
11414 | 563 gaim_request_field_string_set_masked(field, FALSE); |
564 gaim_request_field_group_add_field(group, field); | |
565 | |
12007
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
566 field = gaim_request_field_string_new("firstname", |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
567 _("First name"), NULL, FALSE); |
11414 | 568 gaim_request_field_string_set_masked(field, FALSE); |
569 gaim_request_field_group_add_field(group, field); | |
570 | |
12007
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
571 field = gaim_request_field_string_new("nickname", |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
572 _("Nickname"), NULL, FALSE); |
11414 | 573 gaim_request_field_string_set_masked(field, FALSE); |
574 gaim_request_field_group_add_field(group, field); | |
575 | |
12007
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
576 field = gaim_request_field_string_new("city", |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
577 _("City"), NULL, FALSE); |
11414 | 578 gaim_request_field_string_set_masked(field, FALSE); |
579 gaim_request_field_group_add_field(group, field); | |
580 | |
12007
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
581 field = gaim_request_field_string_new("year", |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
582 _("Year of birth"), NULL, FALSE); |
11414 | 583 gaim_request_field_group_add_field(group, field); |
584 | |
12007
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
585 field = gaim_request_field_choice_new("gender", _("Gender"), 0); |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
586 gaim_request_field_choice_add(field, _("Male or female")); |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
587 gaim_request_field_choice_add(field, _("Male")); |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
588 gaim_request_field_choice_add(field, _("Female")); |
11414 | 589 gaim_request_field_group_add_field(group, field); |
590 | |
12007
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
591 field = gaim_request_field_bool_new("active", |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
592 _("Only online"), FALSE); |
11414 | 593 gaim_request_field_group_add_field(group, field); |
594 | |
595 gaim_request_fields(gc, | |
596 _("Find buddies"), | |
597 _("Find buddies"), | |
598 _("Please, enter your search criteria below"), | |
599 fields, | |
600 _("OK"), G_CALLBACK(ggp_callback_find_buddies), | |
601 _("Cancel"), NULL, | |
602 gc); | |
603 } | |
604 /* }}} */ | |
605 | |
606 /* ----- CHANGE PASSWORD ------------------------------------------------ */ | |
607 | |
608 /* | |
609 */ | |
11360 | 610 /* static void ggp_callback_change_passwd_ok(GaimConnection *gc, GaimRequestFields *fields) {{{ */ |
611 static void ggp_callback_change_passwd_ok(GaimConnection *gc, GaimRequestFields *fields) | |
2393 | 612 { |
11360 | 613 GaimAccount *account; |
614 GGPInfo *info = gc->proto_data; | |
615 struct gg_http *h; | |
616 gchar *cur, *p1, *p2, *t; | |
617 | |
12007
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
618 cur = charset_convert( |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
619 gaim_request_fields_get_string(fields, "password_cur"), |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
620 "UTF-8", "CP1250"); |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
621 p1 = charset_convert( |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
622 gaim_request_fields_get_string(fields, "password1"), |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
623 "UTF-8", "CP1250"); |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
624 p2 = charset_convert( |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
625 gaim_request_fields_get_string(fields, "password2"), |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
626 "UTF-8", "CP1250"); |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
627 t = charset_convert( |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
628 gaim_request_fields_get_string(fields, "token"), |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
629 "UTF-8", "CP1250"); |
11360 | 630 |
631 account = gaim_connection_get_account(gc); | |
632 | |
633 if (cur == NULL || p1 == NULL || p2 == NULL || t == NULL || | |
634 *cur == '\0' || *p1 == '\0' || *p2 == '\0' || *t == '\0') { | |
635 gaim_notify_error(account, NULL, _("Fill in the fields."), NULL); | |
636 goto exit_err; | |
637 } | |
638 | |
639 if (g_utf8_collate(p1, p2) != 0) { | |
12007
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
640 gaim_notify_error(account, NULL, |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
641 _("New passwords do not match."), NULL); |
11360 | 642 goto exit_err; |
643 } | |
2393 | 644 |
11360 | 645 if (g_utf8_collate(cur, gaim_account_get_password(account)) != 0) { |
646 gaim_notify_error(account, NULL, | |
647 _("Your current password is different from the one that you specified."), | |
648 NULL); | |
649 goto exit_err; | |
650 } | |
651 | |
652 gaim_debug_info("gg", "change_passwd: old=%s; p1=%s; token=%s\n", | |
12007
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
653 cur, p1, info->token->id); |
11360 | 654 |
655 /* XXX: this e-mail should be a pref... */ | |
656 h = gg_change_passwd4(ggp_get_uin(account), | |
657 "user@example.net", gaim_account_get_password(account), | |
12007
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
658 p1, info->token->id, t, 0); |
2393 | 659 |
11360 | 660 if (h == NULL) { |
661 gaim_notify_error(account, NULL, | |
662 _("Unable to change password. Error occured.\n"), | |
663 NULL); | |
664 goto exit_err; | |
665 } | |
666 | |
667 gaim_account_set_password(account, p1); | |
668 | |
669 gg_change_passwd_free(h); | |
670 | |
671 gaim_notify_info(account, _("Change password for the Gadu-Gadu account"), | |
672 _("Password was changed successfully!"), NULL); | |
673 | |
674 exit_err: | |
675 g_free(cur); | |
676 g_free(p1); | |
677 g_free(p2); | |
678 g_free(t); | |
12007
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
679 g_free(info->token->id); |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
680 g_free(info->token->data); |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
681 g_free(info->token); |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
682 } |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
683 /* }}} */ |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
684 |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
685 /* |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
686 */ |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
687 /* static void ggp_change_passwd_dialog(GaimConnection *gc) {{{ */ |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
688 static void ggp_change_passwd_dialog(GaimConnection *gc) |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
689 { |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
690 GaimRequestFields *fields; |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
691 GaimRequestFieldGroup *group; |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
692 GaimRequestField *field; |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
693 |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
694 GGPInfo *info = gc->proto_data; |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
695 GGPToken *token = info->token; |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
696 |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
697 char *msg; |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
698 |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
699 |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
700 fields = gaim_request_fields_new(); |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
701 group = gaim_request_field_group_new(NULL); |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
702 gaim_request_fields_add_group(fields, group); |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
703 |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
704 field = gaim_request_field_string_new("password_cur", |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
705 _("Current password"), "", FALSE); |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
706 gaim_request_field_string_set_masked(field, TRUE); |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
707 gaim_request_field_group_add_field(group, field); |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
708 |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
709 field = gaim_request_field_string_new("password1", |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
710 _("Password"), "", FALSE); |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
711 gaim_request_field_string_set_masked(field, TRUE); |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
712 gaim_request_field_group_add_field(group, field); |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
713 |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
714 field = gaim_request_field_string_new("password2", |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
715 _("Password (retype)"), "", FALSE); |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
716 gaim_request_field_string_set_masked(field, TRUE); |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
717 gaim_request_field_group_add_field(group, field); |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
718 |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
719 field = gaim_request_field_string_new("token", |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
720 _("Enter current token"), "", FALSE); |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
721 gaim_request_field_string_set_masked(field, FALSE); |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
722 gaim_request_field_group_add_field(group, field); |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
723 |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
724 /* original size: 60x24 */ |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
725 field = gaim_request_field_image_new("token_img", |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
726 _("Current token"), token->data, token->size); |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
727 gaim_request_field_group_add_field(group, field); |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
728 |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
729 msg = g_strdup_printf("%s %d", |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
730 _("Please, enter your current password and your new password for UIN: "), |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
731 ggp_get_uin(gaim_connection_get_account(gc))); |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
732 |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
733 gaim_request_fields(gc, |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
734 _("Change Gadu-Gadu Password"), |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
735 _("Change Gadu-Gadu Password"), |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
736 msg, |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
737 fields, _("OK"), G_CALLBACK(ggp_callback_change_passwd_ok), |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
738 _("Cancel"), NULL, gc); |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
739 |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
740 g_free(msg); |
11360 | 741 } |
742 /* }}} */ | |
2393 | 743 |
11360 | 744 /* |
745 */ | |
746 /* static void ggp_change_passwd(GaimPluginAction *action) {{{ */ | |
747 static void ggp_change_passwd(GaimPluginAction *action) | |
748 { | |
749 GaimConnection *gc = (GaimConnection *)action->context; | |
750 | |
12007
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
751 ggp_token_request(gc, ggp_change_passwd_dialog); |
11360 | 752 } |
753 /* }}} */ | |
754 | |
11414 | 755 /* ----- CONFERENCES ---------------------------------------------------- */ |
756 | |
11394 | 757 /* |
758 */ | |
759 /* static void ggp_callback_add_to_chat_ok(GaimConnection *gc, GaimRequestFields *fields) {{{ */ | |
760 static void ggp_callback_add_to_chat_ok(GaimConnection *gc, GaimRequestFields *fields) | |
761 { | |
762 GGPInfo *info = gc->proto_data; | |
763 GaimRequestField *field; | |
764 const GList *sel, *l; | |
765 | |
766 field = gaim_request_fields_get_field(fields, "name"); | |
767 sel = gaim_request_field_list_get_selected(field); | |
12007
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
768 gaim_debug_info("gg", "selected chat %s for buddy %s\n", |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
769 sel->data, info->tmp_buddy); |
11394 | 770 |
771 for (l = info->chats; l != NULL; l = l->next) { | |
772 GGPChat *chat = l->data; | |
773 | |
774 if (g_utf8_collate(chat->name, sel->data) == 0) { | |
12007
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
775 chat->participants = g_list_append(chat->participants, |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
776 info->tmp_buddy); |
11394 | 777 break; |
778 } | |
779 } | |
780 } | |
781 /* }}} */ | |
782 | |
783 /* | |
784 */ | |
785 /* static void ggp_bmenu_add_to_chat(GaimBlistNode *node, gpointer ignored) {{{ */ | |
786 static void ggp_bmenu_add_to_chat(GaimBlistNode *node, gpointer ignored) | |
787 { | |
788 GaimBuddy *buddy; | |
789 GaimConnection *gc; | |
790 GGPInfo *info; | |
791 | |
792 GaimRequestFields *fields; | |
793 GaimRequestFieldGroup *group; | |
794 GaimRequestField *field; | |
795 | |
796 GList *l; | |
797 gchar *msg; | |
798 | |
799 buddy = (GaimBuddy *)node; | |
800 gc = gaim_account_get_connection(gaim_buddy_get_account(buddy)); | |
801 info = gc->proto_data; | |
802 | |
803 /* TODO: It tmp_buddy != NULL then stop! */ | |
804 info->tmp_buddy = g_strdup(gaim_buddy_get_name(buddy)); | |
805 | |
806 fields = gaim_request_fields_new(); | |
807 group = gaim_request_field_group_new(NULL); | |
808 gaim_request_fields_add_group(fields, group); | |
809 | |
810 field = gaim_request_field_list_new("name", "Chat name"); | |
811 for (l = info->chats; l != NULL; l = l->next) { | |
812 GGPChat *chat = l->data; | |
813 gaim_debug_info("gg", "adding chat %s\n", chat->name); | |
12007
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
814 gaim_request_field_list_add(field, g_strdup(chat->name), |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
815 g_strdup(chat->name)); |
11394 | 816 } |
817 gaim_request_field_group_add_field(group, field); | |
818 | |
12007
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
819 msg = g_strdup_printf(_("Select a chat for buddy: %s"), |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
820 gaim_buddy_get_name(buddy)); |
11394 | 821 gaim_request_fields(gc, |
822 _("Add to chat..."), | |
823 _("Add to chat..."), | |
824 msg, | |
825 fields, | |
826 _("Add"), G_CALLBACK(ggp_callback_add_to_chat_ok), | |
827 _("Cancel"), NULL, gc); | |
828 g_free(msg); | |
829 } | |
830 /* }}} */ | |
831 | |
11414 | 832 /* ----- BLOCK BUDDIES -------------------------------------------------- */ |
833 | |
11410 | 834 /* |
835 */ | |
836 /* static void ggp_bmenu_block(GaimBlistNode *node, gpointer ignored) {{{ */ | |
837 static void ggp_bmenu_block(GaimBlistNode *node, gpointer ignored) | |
838 { | |
839 GaimConnection *gc; | |
840 GaimBuddy *buddy; | |
841 GGPInfo *info; | |
842 uin_t uin; | |
843 | |
844 buddy = (GaimBuddy *)node; | |
845 gc = gaim_account_get_connection(gaim_buddy_get_account(buddy)); | |
846 info = gc->proto_data; | |
847 | |
848 uin = ggp_str_to_uin(gaim_buddy_get_name(buddy)); | |
849 | |
850 if (gaim_blist_node_get_bool(node, "blocked")) { | |
851 gaim_blist_node_set_bool(node, "blocked", FALSE); | |
852 gg_remove_notify_ex(info->session, uin, GG_USER_BLOCKED); | |
853 gg_add_notify_ex(info->session, uin, GG_USER_NORMAL); | |
854 gaim_debug_info("gg", "send: uin=%d; mode=NORMAL\n", uin); | |
855 } else { | |
856 gaim_blist_node_set_bool(node, "blocked", TRUE); | |
857 gg_remove_notify_ex(info->session, uin, GG_USER_NORMAL); | |
858 gg_add_notify_ex(info->session, uin, GG_USER_BLOCKED); | |
859 gaim_debug_info("gg", "send: uin=%d; mode=BLOCKED\n", uin); | |
860 } | |
861 } | |
862 /* }}} */ | |
863 | |
11360 | 864 /* ---------------------------------------------------------------------- */ |
11414 | 865 /* ----- INTERNAL CALLBACKS --------------------------------------------- */ |
866 /* ---------------------------------------------------------------------- */ | |
867 | |
868 /** | |
869 * Handle change of the status of the buddy. | |
870 * | |
871 * @param gc GaimConnection | |
872 * @param uin UIN of the buddy. | |
873 * @param status ID of the status. | |
874 * @param descr Description. | |
875 */ | |
876 /* static void ggp_generic_status_handler(GaimConnection *gc, uin_t uin, int status, const char *descr) {{{ */ | |
12007
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
877 static void ggp_generic_status_handler(GaimConnection *gc, uin_t uin, |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
878 int status, const char *descr) |
11414 | 879 { |
880 gchar *from; | |
881 const char *st; | |
882 gchar *msg; | |
883 | |
884 from = g_strdup_printf("%ld", (unsigned long int)uin); | |
885 switch (status) { | |
886 case GG_STATUS_NOT_AVAIL: | |
887 case GG_STATUS_NOT_AVAIL_DESCR: | |
888 st = "offline"; | |
889 break; | |
890 case GG_STATUS_AVAIL: | |
891 case GG_STATUS_AVAIL_DESCR: | |
11638 | 892 st = "available"; |
11414 | 893 break; |
894 case GG_STATUS_BUSY: | |
895 case GG_STATUS_BUSY_DESCR: | |
896 st = "away"; | |
897 break; | |
898 case GG_STATUS_BLOCKED: | |
899 /* user is blocking us.... */ | |
900 st = "blocked"; | |
901 break; | |
902 default: | |
11638 | 903 st = "available"; |
12007
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
904 gaim_debug_info("gg", |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
905 "GG_EVENT_NOTIFY: Unknown status: %d\n", status); |
11414 | 906 break; |
907 } | |
908 | |
909 gaim_debug_info("gg", "st = %s\n", st); | |
910 msg = charset_convert(descr, "CP1250", "UTF-8"); | |
12007
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
911 gaim_prpl_got_user_status(gaim_connection_get_account(gc), |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
912 from, st, "message", msg, NULL); |
11414 | 913 g_free(from); |
914 g_free(msg); | |
915 } | |
916 /* }}} */ | |
917 | |
12007
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
918 /* |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
919 */ |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
920 /* static void ggp_pubdir_reply_handler(GaimConnection *gc, gg_pubdir50_t req) {{{ */ |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
921 static void ggp_pubdir_reply_handler(GaimConnection *gc, gg_pubdir50_t req) |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
922 { |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
923 GGPInfo *info = gc->proto_data; |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
924 GaimNotifySearchResults *results; |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
925 GaimNotifySearchColumn *column; |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
926 int res_count = 0; |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
927 int start; |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
928 int i; |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
929 |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
930 res_count = gg_pubdir50_count(req); |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
931 if (res_count < 1) { |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
932 gaim_debug_info("gg", "GG_EVENT_PUBDIR50_SEARCH_REPLY: Nothing found\n"); |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
933 return; |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
934 } |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
935 res_count = (res_count > 20) ? 20 : res_count; |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
936 |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
937 results = gaim_notify_searchresults_new(); |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
938 |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
939 column = gaim_notify_searchresults_column_new("UIN"); |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
940 gaim_notify_searchresults_column_add(results, column); |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
941 |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
942 column = gaim_notify_searchresults_column_new("First name"); |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
943 gaim_notify_searchresults_column_add(results, column); |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
944 |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
945 column = gaim_notify_searchresults_column_new("Nick name"); |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
946 gaim_notify_searchresults_column_add(results, column); |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
947 |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
948 column = gaim_notify_searchresults_column_new("City"); |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
949 gaim_notify_searchresults_column_add(results, column); |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
950 |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
951 column = gaim_notify_searchresults_column_new("Birth year"); |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
952 gaim_notify_searchresults_column_add(results, column); |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
953 |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
954 gaim_debug_info("gg", "Going with %d entries\n", res_count); |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
955 |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
956 start = (int)ggp_str_to_uin(gg_pubdir50_get(req, 0, GG_PUBDIR50_START)); |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
957 gaim_debug_info("gg", "start = %d\n", start); |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
958 |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
959 for (i = 0; i < res_count; i++) { |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
960 GList *row = NULL; |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
961 char *birth = ggp_search_get_result(req, i, GG_PUBDIR50_BIRTHYEAR); |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
962 |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
963 /* TODO: Status will be displayed as an icon. */ |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
964 /* row = g_list_append(row, ggp_search_get_result(req, i, GG_PUBDIR50_STATUS)); */ |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
965 row = g_list_append(row, ggp_search_get_result(req, i, |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
966 GG_PUBDIR50_UIN)); |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
967 row = g_list_append(row, ggp_search_get_result(req, i, |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
968 GG_PUBDIR50_FIRSTNAME)); |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
969 row = g_list_append(row, ggp_search_get_result(req, i, |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
970 GG_PUBDIR50_NICKNAME)); |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
971 row = g_list_append(row, ggp_search_get_result(req, i, |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
972 GG_PUBDIR50_CITY)); |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
973 row = g_list_append(row, |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
974 (birth && strncmp(birth, "0", 1)) ? birth : g_strdup("-")); |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
975 |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
976 gaim_notify_searchresults_row_add(results, row); |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
977 |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
978 if (i == res_count - 1) { |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
979 g_free(info->search_form->last_uin); |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
980 info->search_form->last_uin = ggp_search_get_result(req, i, |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
981 GG_PUBDIR50_UIN); |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
982 } |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
983 } |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
984 |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
985 gaim_notify_searchresults_button_add(results, GAIM_NOTIFY_BUTTON_CONTINUE, |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
986 ggp_callback_show_next); |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
987 gaim_notify_searchresults_button_add(results, GAIM_NOTIFY_BUTTON_ADD_BUDDY, |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
988 ggp_callback_add_buddy); |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
989 if (info->searchresults_window == NULL) { |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
990 void *h = gaim_notify_searchresults(gc, |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
991 _("Gadu-Gadu Public Directory"), |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
992 _("Search results"), NULL, results, NULL, NULL); |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
993 info->searchresults_window = h; |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
994 } else { |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
995 gaim_notify_searchresults_new_rows(gc, results, |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
996 info->searchresults_window, NULL); |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
997 } |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
998 } |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
999 /* }}} */ |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1000 |
11414 | 1001 /** |
1002 * Dispatch a message received from a buddy. | |
1003 * | |
1004 * @param gc GaimConnection. | |
1005 * @param ev Gadu-Gadu event structure. | |
1006 */ | |
1007 /* static void ggp_recv_message_handler(GaimConnection *gc, const struct gg_event *ev) {{{ */ | |
1008 static void ggp_recv_message_handler(GaimConnection *gc, const struct gg_event *ev) | |
1009 { | |
1010 GGPInfo *info = gc->proto_data; | |
1011 GaimConversation *conv; | |
1012 gchar *from; | |
1013 gchar *msg; | |
1014 gchar *tmp; | |
1015 const char *chat_name; | |
1016 int chat_id; | |
1017 | |
1018 from = g_strdup_printf("%lu", (unsigned long int)ev->event.msg.sender); | |
1019 | |
1020 msg = charset_convert((const char *)ev->event.msg.message, | |
12007
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1021 "CP1250", "UTF-8"); |
11920 | 1022 gaim_str_strip_char(msg, '\r'); |
11414 | 1023 tmp = g_markup_escape_text(msg, -1); |
1024 | |
1025 gaim_debug_info("gg", "msg form (%s): %s (class = %d; rcpt_count = %d)\n", | |
12007
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1026 from, tmp, ev->event.msg.msgclass, |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1027 ev->event.msg.recipients_count); |
11414 | 1028 |
1029 if (ev->event.msg.recipients_count == 0) { | |
1030 serv_got_im(gc, from, tmp, 0, ev->event.msg.time); | |
1031 } else { | |
1032 chat_name = ggp_confer_find_by_participants(gc, | |
12007
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1033 ev->event.msg.recipients, |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1034 ev->event.msg.recipients_count); |
11414 | 1035 if (chat_name == NULL) { |
1036 chat_name = ggp_confer_add_new(gc, NULL); | |
1037 serv_got_joined_chat(gc, info->chats_count, chat_name); | |
12007
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1038 |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1039 ggp_confer_participants_add_uin(gc, chat_name, |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1040 ev->event.msg.sender); |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1041 |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1042 ggp_confer_participants_add(gc, chat_name, |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1043 ev->event.msg.recipients, |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1044 ev->event.msg.recipients_count); |
11414 | 1045 } |
1046 conv = ggp_confer_find_by_name(gc, chat_name); | |
1047 chat_id = gaim_conv_chat_get_id(GAIM_CONV_CHAT(conv)); | |
12007
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1048 serv_got_chat_in(gc, chat_id, |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1049 ggp_buddy_get_name(gc, ev->event.msg.sender), |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1050 0, msg, ev->event.msg.time); |
11414 | 1051 } |
1052 g_free(msg); | |
1053 g_free(tmp); | |
1054 g_free(from); | |
1055 } | |
1056 /* }}} */ | |
1057 | |
1058 /* | |
1059 */ | |
1060 /* static void ggp_callback_recv(gpointer _gc, gint fd, GaimInputCondition cond) {{{ */ | |
1061 static void ggp_callback_recv(gpointer _gc, gint fd, GaimInputCondition cond) | |
1062 { | |
1063 GaimConnection *gc = _gc; | |
1064 GGPInfo *info = gc->proto_data; | |
1065 struct gg_event *ev; | |
1066 int i; | |
1067 | |
1068 if (!(ev = gg_watch_fd(info->session))) { | |
12007
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1069 gaim_debug_error("gg", |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1070 "ggp_callback_recv: gg_watch_fd failed -- CRITICAL!\n"); |
11414 | 1071 gaim_connection_error(gc, _("Unable to read socket")); |
1072 return; | |
1073 } | |
1074 | |
1075 switch (ev->type) { | |
1076 case GG_EVENT_NONE: | |
1077 /* Nothing happened. */ | |
1078 break; | |
1079 case GG_EVENT_MSG: | |
1080 ggp_recv_message_handler(gc, ev); | |
1081 break; | |
1082 case GG_EVENT_ACK: | |
12007
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1083 gaim_debug_info("gg", |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1084 "message sent to: %ld, delivery status=%d, seq=%d\n", |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1085 ev->event.ack.recipient, ev->event.ack.status, |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1086 ev->event.ack.seq); |
11414 | 1087 break; |
1088 case GG_EVENT_NOTIFY: | |
1089 case GG_EVENT_NOTIFY_DESCR: | |
1090 { | |
1091 struct gg_notify_reply *n; | |
1092 char *descr; | |
1093 | |
1094 gaim_debug_info("gg", "notify_pre: (%d) status: %d\n", | |
1095 ev->event.notify->uin, | |
1096 ev->event.notify->status); | |
1097 | |
1098 n = (ev->type == GG_EVENT_NOTIFY) ? ev->event.notify | |
1099 : ev->event.notify_descr.notify; | |
1100 | |
1101 for (; n->uin; n++) { | |
1102 descr = (ev->type == GG_EVENT_NOTIFY) ? NULL | |
12007
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1103 : ev->event.notify_descr.descr; |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1104 |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1105 gaim_debug_info("gg", |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1106 "notify: (%d) status: %d; descr: %s\n", |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1107 n->uin, n->status, descr); |
11414 | 1108 |
1109 ggp_generic_status_handler(gc, | |
12007
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1110 n->uin, n->status, descr); |
11414 | 1111 } |
1112 } | |
1113 break; | |
1114 case GG_EVENT_NOTIFY60: | |
12007
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1115 gaim_debug_info("gg", |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1116 "notify60_pre: (%d) status=%d; version=%d; descr=%s\n", |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1117 ev->event.notify60->uin, ev->event.notify60->status, |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1118 ev->event.notify60->version, ev->event.notify60->descr); |
11414 | 1119 |
1120 for (i = 0; ev->event.notify60[i].uin; i++) { | |
12007
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1121 gaim_debug_info("gg", |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1122 "notify60: (%d) status=%d; version=%d; descr=%s\n", |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1123 ev->event.notify60[i].uin, |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1124 ev->event.notify60[i].status, |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1125 ev->event.notify60[i].version, |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1126 ev->event.notify60[i].descr); |
11414 | 1127 |
12007
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1128 ggp_generic_status_handler(gc, ev->event.notify60[i].uin, |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1129 ev->event.notify60[i].status, |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1130 ev->event.notify60[i].descr); |
11414 | 1131 } |
1132 break; | |
1133 case GG_EVENT_STATUS: | |
1134 gaim_debug_info("gg", "status: (%d) status=%d; descr=%s\n", | |
1135 ev->event.status.uin, ev->event.status.status, | |
1136 ev->event.status.descr); | |
1137 | |
12007
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1138 ggp_generic_status_handler(gc, ev->event.status.uin, |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1139 ev->event.status.status, ev->event.status.descr); |
11414 | 1140 break; |
1141 case GG_EVENT_STATUS60: | |
12007
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1142 gaim_debug_info("gg", |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1143 "status60: (%d) status=%d; version=%d; descr=%s\n", |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1144 ev->event.status60.uin, ev->event.status60.status, |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1145 ev->event.status60.version, ev->event.status60.descr); |
11414 | 1146 |
12007
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1147 ggp_generic_status_handler(gc, ev->event.status60.uin, |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1148 ev->event.status60.status, ev->event.status60.descr); |
11414 | 1149 break; |
1150 case GG_EVENT_USERLIST: | |
1151 if (ev->event.userlist.type == GG_USERLIST_GET_REPLY) { | |
1152 gaim_debug_info("gg", "GG_USERLIST_GET_REPLY\n"); | |
1153 if (ev->event.userlist.reply != NULL) { | |
12007
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1154 ggp_buddylist_load(gc, ev->event.userlist.reply); |
11414 | 1155 } |
1156 } else { | |
12007
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1157 gaim_debug_info("gg", |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1158 "GG_USERLIST_PUT_REPLY. Userlist stored on the server.\n"); |
11414 | 1159 } |
1160 break; | |
1161 case GG_EVENT_PUBDIR50_SEARCH_REPLY: | |
12007
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1162 ggp_pubdir_reply_handler(gc, ev->event.pubdir50); |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1163 break; |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1164 default: |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1165 gaim_debug_error("gg", |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1166 "unsupported event type=%d\n", ev->type); |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1167 break; |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1168 } |
11414 | 1169 |
12007
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1170 gg_free_event(ev); |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1171 } |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1172 /* }}} */ |
11414 | 1173 |
12007
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1174 /* |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1175 */ |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1176 /* static void ggp_async_login_handler(gpointer _gc, gint fd, GaimInputCondition cond) {{{ */ |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1177 static void ggp_async_login_handler(gpointer _gc, gint fd, GaimInputCondition cond) |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1178 { |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1179 GaimConnection *gc = _gc; |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1180 GGPInfo *info = gc->proto_data; |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1181 struct gg_event *ev; |
11414 | 1182 |
12007
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1183 gaim_debug_info("gg", "login_handler: session: check = %d; state = %d;\n", |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1184 info->session->check, info->session->state); |
11414 | 1185 |
12007
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1186 switch (info->session->state) { |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1187 case GG_STATE_RESOLVING: |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1188 gaim_debug_info("gg", "GG_STATE_RESOLVING\n"); |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1189 break; |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1190 case GG_STATE_CONNECTING_HUB: |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1191 gaim_debug_info("gg", "GG_STATE_CONNECTING_HUB\n"); |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1192 break; |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1193 case GG_STATE_READING_DATA: |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1194 gaim_debug_info("gg", "GG_STATE_READING_DATA\n"); |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1195 break; |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1196 case GG_STATE_CONNECTING_GG: |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1197 gaim_debug_info("gg", "GG_STATE_CONNECTING_GG\n"); |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1198 break; |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1199 case GG_STATE_READING_KEY: |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1200 gaim_debug_info("gg", "GG_STATE_READING_KEY\n"); |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1201 break; |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1202 case GG_STATE_READING_REPLY: |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1203 gaim_debug_info("gg", "GG_STATE_READING_REPLY\n"); |
11414 | 1204 break; |
1205 default: | |
12007
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1206 gaim_debug_error("gg", "unknown state = %d\n", |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1207 info->session->state); |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1208 break; |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1209 } |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1210 |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1211 if (!(ev = gg_watch_fd(info->session))) { |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1212 gaim_debug_error("gg", "login_handler: gg_watch_fd failed!\n"); |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1213 gaim_connection_error(gc, _("Unable to read socket")); |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1214 return; |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1215 } |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1216 gaim_debug_info("gg", "login_handler: session->fd = %d\n", info->session->fd); |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1217 gaim_debug_info("gg", "login_handler: session: check = %d; state = %d;\n", |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1218 info->session->check, info->session->state); |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1219 |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1220 gaim_input_remove(gc->inpa); |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1221 |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1222 /** XXX I think that this shouldn't be done if ev->type is GG_EVENT_CONN_FAILED or GG_EVENT_CONN_SUCCESS -datallah */ |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1223 gc->inpa = gaim_input_add(info->session->fd, |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1224 (info->session->check == 1) ? GAIM_INPUT_WRITE |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1225 : GAIM_INPUT_READ, |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1226 ggp_async_login_handler, gc); |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1227 |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1228 switch (ev->type) { |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1229 case GG_EVENT_NONE: |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1230 /* Nothing happened. */ |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1231 gaim_debug_info("gg", "GG_EVENT_NONE\n"); |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1232 break; |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1233 case GG_EVENT_CONN_SUCCESS: |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1234 gaim_debug_info("gg", "GG_EVENT_CONN_SUCCESS\n"); |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1235 gaim_input_remove(gc->inpa); |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1236 gc->inpa = gaim_input_add(info->session->fd, |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1237 GAIM_INPUT_READ, |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1238 ggp_callback_recv, gc); |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1239 |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1240 /* gg_change_status(info->session, GG_STATUS_AVAIL); */ |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1241 gaim_connection_set_state(gc, GAIM_CONNECTED); |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1242 ggp_buddylist_send(gc); |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1243 break; |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1244 case GG_EVENT_CONN_FAILED: |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1245 gaim_input_remove(gc->inpa); |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1246 gc->inpa = 0; |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1247 gaim_connection_error(gc, _("Connection failed.")); |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1248 break; |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1249 default: |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1250 gaim_debug_error("gg", "strange event: %d\n", ev->type); |
11414 | 1251 break; |
1252 } | |
1253 | |
1254 gg_free_event(ev); | |
1255 } | |
1256 /* }}} */ | |
1257 | |
1258 /* ---------------------------------------------------------------------- */ | |
11360 | 1259 /* ----- GaimPluginProtocolInfo ----------------------------------------- */ |
1260 /* ---------------------------------------------------------------------- */ | |
1261 | |
1262 /* static const char *ggp_list_icon(GaimAccount *account, GaimBuddy *buddy) {{{ */ | |
1263 static const char *ggp_list_icon(GaimAccount *account, GaimBuddy *buddy) | |
1264 { | |
1265 return "gadu-gadu"; | |
1266 } | |
1267 /* }}} */ | |
1268 | |
1269 /* static void ggp_list_emblems(GaimBuddy *b, const char **se, const char **sw, const char **nw, const char **ne) {{{ */ | |
12007
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1270 static void ggp_list_emblems(GaimBuddy *b, const char **se, const char **sw, |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1271 const char **nw, const char **ne) |
11360 | 1272 { |
1273 GaimPresence *presence = gaim_buddy_get_presence(b); | |
1274 | |
1275 /* | |
1276 * Note to myself: | |
1277 * The only valid status types are those defined | |
1278 * in prpl_info->status_types. | |
1279 * | |
1280 * Usable icons: away, blocked, dnd, extendedaway, | |
1281 * freeforchat, ignored, invisible, na, offline. | |
1282 */ | |
1283 | |
1284 if (!GAIM_BUDDY_IS_ONLINE(b)) { | |
1285 *se = "offline"; | |
1286 } else if (gaim_presence_is_status_active(presence, "away")) { | |
1287 *se = "away"; | |
11638 | 1288 } else if (gaim_presence_is_status_active(presence, "available")) { |
11360 | 1289 *se = "online"; |
1290 } else if (gaim_presence_is_status_active(presence, "offline")) { | |
1291 *se = "offline"; | |
1292 } else if (gaim_presence_is_status_active(presence, "blocked")) { | |
1293 *se = "blocked"; | |
1294 } else { | |
1295 *se = "offline"; | |
1296 gaim_debug_info("gg", "ggp_list_emblems: unknown status\n"); | |
1297 } | |
2393 | 1298 } |
11360 | 1299 /* }}} */ |
2393 | 1300 |
11360 | 1301 /* static char *ggp_status_text(GaimBuddy *b) {{{ */ |
1302 static char *ggp_status_text(GaimBuddy *b) | |
2846
4b3f17ca66bf
[gaim-migrate @ 2859]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2835
diff
changeset
|
1303 { |
11360 | 1304 GaimStatus *status; |
1305 const char *msg; | |
1306 char *text; | |
1307 char *tmp; | |
2846
4b3f17ca66bf
[gaim-migrate @ 2859]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2835
diff
changeset
|
1308 |
11360 | 1309 status = gaim_presence_get_active_status(gaim_buddy_get_presence(b)); |
2846
4b3f17ca66bf
[gaim-migrate @ 2859]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2835
diff
changeset
|
1310 |
11360 | 1311 msg = gaim_status_get_attr_string(status, "message"); |
2846
4b3f17ca66bf
[gaim-migrate @ 2859]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2835
diff
changeset
|
1312 |
11360 | 1313 if (msg != NULL) { |
1314 tmp = gaim_markup_strip_html(msg); | |
1315 text = g_markup_escape_text(tmp, -1); | |
1316 g_free(tmp); | |
2846
4b3f17ca66bf
[gaim-migrate @ 2859]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2835
diff
changeset
|
1317 |
11360 | 1318 return text; |
1319 } else { | |
1320 tmp = g_strdup(gaim_status_get_name(status)); | |
1321 text = g_markup_escape_text(tmp, -1); | |
1322 g_free(tmp); | |
1323 | |
1324 return text; | |
8997 | 1325 } |
2846
4b3f17ca66bf
[gaim-migrate @ 2859]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2835
diff
changeset
|
1326 } |
11360 | 1327 /* }}} */ |
2846
4b3f17ca66bf
[gaim-migrate @ 2859]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2835
diff
changeset
|
1328 |
11360 | 1329 /* static char *ggp_tooltip_text(GaimBuddy *b) {{{ */ |
1330 static char *ggp_tooltip_text(GaimBuddy *b) | |
1331 { | |
1332 GaimStatus *status; | |
1333 char *text; | |
1334 gchar *ret; | |
1335 const char *msg, *name; | |
1336 | |
1337 status = gaim_presence_get_active_status(gaim_buddy_get_presence(b)); | |
1338 msg = gaim_status_get_attr_string(status, "message"); | |
1339 name = gaim_status_get_name(status); | |
1340 | |
1341 if (msg != NULL) { | |
1342 char *tmp = gaim_markup_strip_html(msg); | |
1343 text = g_markup_escape_text(tmp, -1); | |
1344 g_free(tmp); | |
1345 | |
1346 ret = g_strdup_printf("\n<b>%s:</b> %s: %s", | |
12007
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1347 _("Status"), name, text); |
11360 | 1348 |
1349 g_free(text); | |
1350 } else { | |
1351 ret = g_strdup_printf("\n<b>%s:</b> %s", | |
12007
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1352 _("Status"), name); |
11360 | 1353 } |
1354 | |
1355 return ret; | |
1356 } | |
1357 /* }}} */ | |
1358 | |
1359 /* static GList *ggp_status_types(GaimAccount *account) {{{ */ | |
1360 static GList *ggp_status_types(GaimAccount *account) | |
1361 { | |
1362 GaimStatusType *type; | |
1363 GList *types = NULL; | |
1364 | |
12007
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1365 type = gaim_status_type_new_with_attrs(GAIM_STATUS_OFFLINE, "offline", |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1366 _("Offline"), TRUE, TRUE, FALSE, "message", _("Message"), |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1367 gaim_value_new(GAIM_TYPE_STRING), NULL); |
11360 | 1368 types = g_list_append(types, type); |
1369 | |
12007
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1370 type = gaim_status_type_new_with_attrs(GAIM_STATUS_AVAILABLE, "available", |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1371 _("Online"), TRUE, TRUE, FALSE, "message", _("Message"), |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1372 gaim_value_new(GAIM_TYPE_STRING), NULL); |
11360 | 1373 types = g_list_append(types, type); |
1374 | |
1375 /* | |
11638 | 1376 * Without this selecting Invisible as own status doesn't |
11360 | 1377 * work. It's not used and not needed to show status of buddies. |
1378 */ | |
12007
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1379 type = gaim_status_type_new_with_attrs(GAIM_STATUS_HIDDEN, "invisible", |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1380 _("Invisible"), TRUE, TRUE, FALSE, "message", _("Message"), |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1381 gaim_value_new(GAIM_TYPE_STRING), NULL); |
11360 | 1382 types = g_list_append(types, type); |
1383 | |
12007
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1384 type = gaim_status_type_new_with_attrs(GAIM_STATUS_AWAY, "away", |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1385 _("Busy"), TRUE, TRUE, FALSE, "message", _("Message"), |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1386 gaim_value_new(GAIM_TYPE_STRING), NULL); |
11360 | 1387 types = g_list_append(types, type); |
1388 | |
12007
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1389 type = gaim_status_type_new_with_attrs(GAIM_STATUS_HIDDEN, "blocked", |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1390 _("Blocked"), TRUE, TRUE, FALSE, "message", _("Message"), |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1391 gaim_value_new(GAIM_TYPE_STRING), NULL); |
11360 | 1392 types = g_list_append(types, type); |
1393 | |
1394 return types; | |
1395 } | |
1396 /* }}} */ | |
1397 | |
1398 /* static GList *ggp_blist_node_menu(GaimBlistNode *node) {{{ */ | |
1399 static GList *ggp_blist_node_menu(GaimBlistNode *node) | |
2393 | 1400 { |
11394 | 1401 GaimBlistNodeAction *act; |
2393 | 1402 GList *m = NULL; |
4333 | 1403 |
11360 | 1404 if (!GAIM_BLIST_NODE_IS_BUDDY(node)) |
1405 return NULL; | |
4333 | 1406 |
12007
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1407 act = gaim_blist_node_action_new(_("Add to chat"), |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1408 ggp_bmenu_add_to_chat, NULL, NULL); |
11410 | 1409 m = g_list_append(m, act); |
1410 | |
12007
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1411 if (gaim_blist_node_get_bool(node, "blocked")) { |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1412 act = gaim_blist_node_action_new(_("Unblock"), |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1413 ggp_bmenu_block, NULL, NULL); |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1414 } else { |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1415 act = gaim_blist_node_action_new(_("Block"), |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1416 ggp_bmenu_block, NULL, NULL); |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1417 } |
11394 | 1418 m = g_list_append(m, act); |
2393 | 1419 |
1420 return m; | |
1421 } | |
11360 | 1422 /* }}} */ |
2393 | 1423 |
11394 | 1424 /* static GList *ggp_chat_info(GaimConnection *gc) {{{ */ |
1425 static GList *ggp_chat_info(GaimConnection *gc) | |
1426 { | |
1427 GList *m = NULL; | |
1428 struct proto_chat_entry *pce; | |
1429 | |
1430 pce = g_new0(struct proto_chat_entry, 1); | |
1431 pce->label = _("Chat _name:"); | |
1432 pce->identifier = "name"; | |
1433 pce->required = TRUE; | |
1434 m = g_list_append(m, pce); | |
1435 | |
1436 return m; | |
1437 } | |
1438 /* }}} */ | |
1439 | |
12007
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1440 /* static void ggp_login(GaimAccount *account) {{{ */ |
11837 | 1441 static void ggp_login(GaimAccount *account) |
2393 | 1442 { |
11360 | 1443 GaimConnection *gc = gaim_account_get_connection(account); |
1444 struct gg_login_params *glp = g_new0(struct gg_login_params, 1); | |
1445 GGPInfo *info = g_new0(GGPInfo, 1); | |
1446 | |
12007
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1447 /* Probably this should be moved to *_new() function. */ |
11360 | 1448 info->session = NULL; |
1449 info->searchresults_window = NULL; | |
11394 | 1450 info->chats = NULL; |
1451 info->chats_count = 0; | |
12007
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1452 info->token = NULL; |
11360 | 1453 |
1454 gc->proto_data = info; | |
1455 | |
1456 glp->uin = ggp_get_uin(account); | |
1457 glp->password = (char *)gaim_account_get_password(account); | |
1458 | |
12007
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1459 glp->async = 1; |
11360 | 1460 glp->status = GG_STATUS_AVAIL; |
1461 glp->tls = 0; | |
1462 | |
1463 info->session = gg_login(glp); | |
1464 if (info->session == NULL) { | |
1465 gaim_connection_error(gc, _("Connection failed.")); | |
1466 g_free(glp); | |
1467 return; | |
1468 } | |
12007
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1469 gc->inpa = gaim_input_add(info->session->fd, GAIM_INPUT_READ, |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1470 ggp_async_login_handler, gc); |
11360 | 1471 } |
1472 /* }}} */ | |
1473 | |
1474 /* static void ggp_close(GaimConnection *gc) {{{ */ | |
1475 static void ggp_close(GaimConnection *gc) | |
1476 { | |
8997 | 1477 |
11360 | 1478 if (gc == NULL) { |
1479 gaim_debug_info("gg", "gc == NULL\n"); | |
1480 return; | |
1481 } | |
1482 | |
11538
5c6c2e893803
[gaim-migrate @ 13792]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11522
diff
changeset
|
1483 if (gc->proto_data) { |
5c6c2e893803
[gaim-migrate @ 13792]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11522
diff
changeset
|
1484 GGPInfo *info = gc->proto_data; |
5c6c2e893803
[gaim-migrate @ 13792]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11522
diff
changeset
|
1485 /* XXX: Any way to pass description here? */ |
5c6c2e893803
[gaim-migrate @ 13792]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11522
diff
changeset
|
1486 if (info->session != NULL) { |
5c6c2e893803
[gaim-migrate @ 13792]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11522
diff
changeset
|
1487 gg_change_status(info->session, GG_STATUS_NOT_AVAIL); |
5c6c2e893803
[gaim-migrate @ 13792]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11522
diff
changeset
|
1488 gg_logoff(info->session); |
5c6c2e893803
[gaim-migrate @ 13792]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11522
diff
changeset
|
1489 gg_free_session(info->session); |
5c6c2e893803
[gaim-migrate @ 13792]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11522
diff
changeset
|
1490 } |
11545
85abf1deac05
[gaim-migrate @ 13800]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11544
diff
changeset
|
1491 g_free(info); |
85abf1deac05
[gaim-migrate @ 13800]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11544
diff
changeset
|
1492 gc->proto_data = NULL; |
11538
5c6c2e893803
[gaim-migrate @ 13792]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11522
diff
changeset
|
1493 } |
11360 | 1494 |
1495 if (gc->inpa > 0) | |
1496 gaim_input_remove(gc->inpa); | |
1497 | |
1498 ggp_buddylist_offline(gc); | |
2393 | 1499 |
11360 | 1500 gaim_debug_info("gg", "Connection closed.\n"); |
1501 } | |
1502 /* }}} */ | |
1503 | |
12216 | 1504 /* static int ggp_send_im(GaimConnection *gc, const char *who, const char *msg, GaimMessageFlags flags) {{{ */ |
12007
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1505 static int ggp_send_im(GaimConnection *gc, const char *who, const char *msg, |
12216 | 1506 GaimMessageFlags flags) |
11360 | 1507 { |
1508 GGPInfo *info = gc->proto_data; | |
12216 | 1509 char *tmp, *plain; |
11360 | 1510 |
1511 if (strlen(msg) == 0) | |
1512 return 1; | |
1513 | |
12216 | 1514 plain = gaim_unescape_html(msg); |
11565 | 1515 gaim_debug_info("gg", "ggp_send_im: msg = %s\n", msg); |
12216 | 1516 tmp = charset_convert(plain, "UTF-8", "CP1250"); |
1517 g_free(plain); | |
2393 | 1518 |
11360 | 1519 if (tmp != NULL && strlen(tmp) > 0) { |
12007
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1520 if (gg_send_message(info->session, GG_CLASS_CHAT, |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1521 ggp_str_to_uin(who), (unsigned char *)tmp) < 0) { |
11360 | 1522 return -1; |
1523 } | |
1524 } | |
11565 | 1525 g_free(tmp); |
11360 | 1526 |
1527 return 1; | |
1528 } | |
1529 /* }}} */ | |
1530 | |
1531 /* static void ggp_get_info(GaimConnection *gc, const char *name) { {{{ */ | |
1532 static void ggp_get_info(GaimConnection *gc, const char *name) | |
1533 { | |
1534 GGPInfo *info = gc->proto_data; | |
1535 GGPSearchForm *form; | |
2393 | 1536 |
11414 | 1537 form = ggp_search_form_new(); |
11360 | 1538 info->search_form = form; |
1539 | |
1540 form->uin = g_strdup(name); | |
1541 form->offset = g_strdup("0"); | |
1542 form->last_uin = g_strdup("0"); | |
1543 | |
11414 | 1544 ggp_search_start(gc, form); |
11360 | 1545 } |
1546 /* }}} */ | |
1547 | |
1548 /* static void ggp_set_status(GaimAccount *account, GaimStatus *status) {{{ */ | |
1549 static void ggp_set_status(GaimAccount *account, GaimStatus *status) | |
1550 { | |
1551 GaimStatusPrimitive prim; | |
1552 GaimConnection *gc; | |
1553 GGPInfo *info; | |
11397 | 1554 const char *status_id, *msg; |
11360 | 1555 int new_status, new_status_descr; |
1556 | |
1557 prim = gaim_status_type_get_primitive(gaim_status_get_type(status)); | |
1558 | |
1559 if (!gaim_status_is_active(status)) | |
1560 return; | |
1561 | |
1562 gc = gaim_account_get_connection(account); | |
1563 info = gc->proto_data; | |
1564 | |
1565 status_id = gaim_status_get_id(status); | |
1566 | |
12007
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1567 gaim_debug_info("gg", "ggp_set_status: Requested status = %s\n", |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1568 status_id); |
2393 | 1569 |
11360 | 1570 if (strcmp(status_id, "available") == 0) { |
1571 new_status = GG_STATUS_AVAIL; | |
1572 new_status_descr = GG_STATUS_AVAIL_DESCR; | |
1573 } else if (strcmp(status_id, "away") == 0) { | |
1574 new_status = GG_STATUS_BUSY; | |
1575 new_status_descr = GG_STATUS_BUSY_DESCR; | |
1576 } else if (strcmp(status_id, "invisible") == 0) { | |
1577 new_status = GG_STATUS_INVISIBLE; | |
1578 new_status_descr = GG_STATUS_INVISIBLE_DESCR; | |
1579 } else { | |
1580 new_status = GG_STATUS_AVAIL; | |
1581 new_status_descr = GG_STATUS_AVAIL_DESCR; | |
12007
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1582 gaim_debug_info("gg", |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1583 "ggp_set_status: uknown status requested (status_id=%s)\n", |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1584 status_id); |
11360 | 1585 } |
4916 | 1586 |
11397 | 1587 msg = gaim_status_get_attr_string(status, "message"); |
11360 | 1588 |
1589 if (msg == NULL) { | |
1590 gaim_debug_info("gg", "ggp_set_status: msg == NULL\n"); | |
1591 gg_change_status(info->session, new_status); | |
1592 } else { | |
1593 char *tmp = charset_convert(msg, "UTF-8", "CP1250"); | |
12007
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1594 gaim_debug_info("gg", |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1595 "ggp_set_status: msg != NULL. msg = %s\n", tmp); |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1596 gaim_debug_info("gg", |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1597 "ggp_set_status: gg_change_status_descr() = %d\n", |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1598 gg_change_status_descr(info->session, new_status_descr, tmp)); |
11360 | 1599 g_free(tmp); |
1600 } | |
9944 | 1601 |
11360 | 1602 } |
1603 /* }}} */ | |
1604 | |
1605 /* static void ggp_add_buddy(GaimConnection *gc, GaimBuddy *buddy, GaimGroup *group) {{{ */ | |
1606 static void ggp_add_buddy(GaimConnection *gc, GaimBuddy *buddy, GaimGroup *group) | |
1607 { | |
1608 GGPInfo *info = gc->proto_data; | |
1609 | |
1610 gg_add_notify(info->session, ggp_str_to_uin(buddy->name)); | |
1611 } | |
1612 /* }}} */ | |
1613 | |
1614 /* static void ggp_remove_buddy(GaimConnection *gc, GaimBuddy *buddy, GaimGroup *group) {{{ */ | |
12007
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1615 static void ggp_remove_buddy(GaimConnection *gc, GaimBuddy *buddy, |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1616 GaimGroup *group) |
11360 | 1617 { |
1618 GGPInfo *info = gc->proto_data; | |
1619 | |
1620 gg_remove_notify(info->session, ggp_str_to_uin(buddy->name)); | |
1621 } | |
1622 /* }}} */ | |
1623 | |
11394 | 1624 /* static void ggp_join_chat(GaimConnection *gc, GHashTable *data) {{{ */ |
1625 static void ggp_join_chat(GaimConnection *gc, GHashTable *data) | |
1626 { | |
1627 GGPInfo *info = gc->proto_data; | |
1628 GGPChat *chat; | |
1629 char *chat_name; | |
1630 GList *l; | |
1631 | |
1632 chat_name = g_hash_table_lookup(data, "name"); | |
1633 | |
1634 if (chat_name == NULL) | |
1635 return; | |
1636 | |
1637 gaim_debug_info("gg", "joined %s chat\n", chat_name); | |
1638 | |
1639 for (l = info->chats; l != NULL; l = l->next) { | |
1640 chat = l->data; | |
1641 | |
1642 if (chat != NULL && g_utf8_collate(chat->name, chat_name) == 0) { | |
1643 gaim_notify_error(gc, _("Chat error"), | |
12007
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1644 _("This chat name is already in use"), NULL); |
11394 | 1645 return; |
1646 } | |
1647 } | |
1648 | |
11414 | 1649 ggp_confer_add_new(gc, chat_name); |
11394 | 1650 serv_got_joined_chat(gc, info->chats_count, chat_name); |
1651 } | |
1652 /* }}} */ | |
1653 | |
1654 /* static char *ggp_get_chat_name(GHashTable *data) { {{{ */ | |
1655 static char *ggp_get_chat_name(GHashTable *data) { | |
1656 return g_strdup(g_hash_table_lookup(data, "name")); | |
1657 } | |
1658 /* }}} */ | |
1659 | |
12216 | 1660 /* static int ggp_chat_send(GaimConnection *gc, int id, const char *message, GaimMessageFlags flags) {{{ */ |
1661 static int ggp_chat_send(GaimConnection *gc, int id, const char *message, GaimMessageFlags flags) | |
11394 | 1662 { |
1663 GaimConversation *conv; | |
1664 GGPInfo *info = gc->proto_data; | |
1665 GGPChat *chat = NULL; | |
1666 GList *l; | |
12216 | 1667 char *msg, *plain; |
11394 | 1668 uin_t *uins; |
1669 int count = 0; | |
1670 | |
1671 if ((conv = gaim_find_chat(gc, id)) == NULL) | |
1672 return -EINVAL; | |
1673 | |
1674 for (l = info->chats; l != NULL; l = l->next) { | |
1675 chat = l->data; | |
1676 | |
1677 if (g_utf8_collate(chat->name, conv->name) == 0) { | |
1678 gaim_debug_info("gg", "found conv!\n"); | |
1679 break; | |
1680 } | |
1681 | |
1682 chat = NULL; | |
1683 } | |
1684 | |
1685 if (chat == NULL) { | |
12007
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1686 gaim_debug_error("gg", |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1687 "ggp_chat_send: Hm... that's strange. No such chat?\n"); |
11394 | 1688 return -EINVAL; |
1689 } | |
1690 | |
1691 uins = g_new0(uin_t, g_list_length(chat->participants)); | |
1692 for (l = chat->participants; l != NULL; l = l->next) { | |
1693 gchar *name = l->data; | |
1694 uin_t uin; | |
1695 | |
1696 if ((uin = ggp_str_to_uin(name)) != 0) | |
1697 uins[count++] = uin; | |
1698 } | |
1699 | |
12216 | 1700 plain = gaim_unescape_html(message); |
1701 msg = charset_convert(plain, "UTF-8", "CP1250"); | |
1702 g_free(plain); | |
12007
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1703 gg_send_message_confer(info->session, GG_CLASS_CHAT, count, uins, |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1704 (unsigned char *)msg); |
11394 | 1705 g_free(msg); |
1706 g_free(uins); | |
1707 | |
12007
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1708 serv_got_chat_in(gc, id, |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1709 gaim_account_get_username(gaim_connection_get_account(gc)), |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1710 0, message, time(NULL)); |
11394 | 1711 |
1712 return 0; | |
1713 } | |
1714 /* }}} */ | |
1715 | |
11360 | 1716 /* static void ggp_keepalive(GaimConnection *gc) {{{ */ |
1717 static void ggp_keepalive(GaimConnection *gc) | |
1718 { | |
1719 GGPInfo *info = gc->proto_data; | |
1720 | |
1721 /* gaim_debug_info("gg", "Keeping connection alive....\n"); */ | |
1722 | |
1723 if (gg_ping(info->session) < 0) { | |
1724 gaim_debug_info("gg", "Not connected to the server " | |
1725 "or gg_session is not correct\n"); | |
1726 gaim_connection_error(gc, _("Not connected to the server.")); | |
4916 | 1727 } |
2393 | 1728 } |
11360 | 1729 /* }}} */ |
1730 | |
1731 /* static void ggp_register_user(GaimAccount *account) {{{ */ | |
1732 static void ggp_register_user(GaimAccount *account) | |
1733 { | |
11542
cda814bad7f8
[gaim-migrate @ 13797]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11541
diff
changeset
|
1734 GaimConnection *gc = gaim_account_get_connection(account); |
11360 | 1735 GGPInfo *info; |
1736 | |
12007
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1737 info = gc->proto_data = g_new0(GGPInfo, 1); |
11360 | 1738 |
12007
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1739 ggp_token_request(gc, ggp_register_user_dialog); |
2393 | 1740 } |
11360 | 1741 /* }}} */ |
2393 | 1742 |
11360 | 1743 /* static GList *ggp_actions(GaimPlugin *plugin, gpointer context) {{{ */ |
1744 static GList *ggp_actions(GaimPlugin *plugin, gpointer context) | |
8775 | 1745 { |
11360 | 1746 GList *m = NULL; |
1747 GaimPluginAction *act; | |
1748 | |
12007
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1749 act = gaim_plugin_action_new(_("Find buddies"), |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1750 ggp_find_buddies); |
11360 | 1751 m = g_list_append(m, act); |
1752 | |
1753 m = g_list_append(m, NULL); | |
1754 | |
12007
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1755 act = gaim_plugin_action_new(_("Change password"), |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1756 ggp_change_passwd); |
11360 | 1757 m = g_list_append(m, act); |
1758 | |
1759 m = g_list_append(m, NULL); | |
1760 | |
12007
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1761 act = gaim_plugin_action_new(_("Upload buddylist to Server"), |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1762 ggp_action_buddylist_put); |
11360 | 1763 m = g_list_append(m, act); |
8775 | 1764 |
12007
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1765 act = gaim_plugin_action_new(_("Download buddylist from Server"), |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1766 ggp_action_buddylist_get); |
11360 | 1767 m = g_list_append(m, act); |
1768 | |
12007
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1769 act = gaim_plugin_action_new(_("Delete buddylist from Server"), |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1770 ggp_action_buddylist_delete); |
11360 | 1771 m = g_list_append(m, act); |
1772 | |
12007
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1773 act = gaim_plugin_action_new(_("Save buddylist to file"), |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1774 ggp_action_buddylist_save); |
11360 | 1775 m = g_list_append(m, act); |
8775 | 1776 |
12007
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1777 act = gaim_plugin_action_new(_("Load buddylist from file"), |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1778 ggp_action_buddylist_load); |
11360 | 1779 m = g_list_append(m, act); |
1780 | |
1781 return m; | |
8775 | 1782 } |
11360 | 1783 /* }}} */ |
8775 | 1784 |
11360 | 1785 /* prpl_info setup {{{ */ |
5205
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5136
diff
changeset
|
1786 static GaimPluginProtocolInfo prpl_info = |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5136
diff
changeset
|
1787 { |
11360 | 1788 OPT_PROTO_REGISTER_NOSCREENNAME, |
12007
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1789 NULL, /* user_splits */ |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1790 NULL, /* protocol_options */ |
9950 | 1791 NO_BUDDY_ICONS, /* icon_spec */ |
11360 | 1792 ggp_list_icon, /* list_icon */ |
1793 ggp_list_emblems, /* list_emblems */ | |
1794 ggp_status_text, /* status_text */ | |
1795 ggp_tooltip_text, /* tooltip_text */ | |
1796 ggp_status_types, /* status_types */ | |
12007
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1797 ggp_blist_node_menu, /* blist_node_menu */ |
11394 | 1798 ggp_chat_info, /* chat_info */ |
12007
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1799 NULL, /* chat_info_defaults */ |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1800 ggp_login, /* login */ |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1801 ggp_close, /* close */ |
11360 | 1802 ggp_send_im, /* send_im */ |
12007
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1803 NULL, /* set_info */ |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1804 NULL, /* send_typing */ |
11360 | 1805 ggp_get_info, /* get_info */ |
1806 ggp_set_status, /* set_away */ | |
12007
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1807 NULL, /* set_idle */ |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1808 NULL, /* change_passwd */ |
11360 | 1809 ggp_add_buddy, /* add_buddy */ |
12007
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1810 NULL, /* add_buddies */ |
11360 | 1811 ggp_remove_buddy, /* remove_buddy */ |
12007
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1812 NULL, /* remove_buddies */ |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1813 NULL, /* add_permit */ |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1814 NULL, /* add_deny */ |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1815 NULL, /* rem_permit */ |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1816 NULL, /* rem_deny */ |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1817 NULL, /* set_permit_deny */ |
11394 | 1818 ggp_join_chat, /* join_chat */ |
12007
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1819 NULL, /* reject_chat */ |
11394 | 1820 ggp_get_chat_name, /* get_chat_name */ |
12007
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1821 NULL, /* chat_invite */ |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1822 NULL, /* chat_leave */ |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1823 NULL, /* chat_whisper */ |
11394 | 1824 ggp_chat_send, /* chat_send */ |
11360 | 1825 ggp_keepalive, /* keepalive */ |
1826 ggp_register_user, /* register_user */ | |
12007
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1827 NULL, /* get_cb_info */ |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1828 NULL, /* get_cb_away */ |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1829 NULL, /* alias_buddy */ |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1830 NULL, /* group_buddy */ |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1831 NULL, /* rename_group */ |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1832 NULL, /* buddy_free */ |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1833 NULL, /* convo_closed */ |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1834 NULL, /* normalize */ |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1835 NULL, /* set_buddy_icon */ |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1836 NULL, /* remove_group */ |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1837 NULL, /* get_cb_real_name */ |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1838 NULL, /* set_chat_topic */ |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1839 NULL, /* find_blist_chat */ |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1840 NULL, /* roomlist_get_list */ |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1841 NULL, /* roomlist_cancel */ |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1842 NULL, /* roomlist_expand_category */ |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1843 NULL, /* can_receive_file */ |
12143
cbebda5f019c
[gaim-migrate @ 14444]
Richard Laager <rlaager@wiktel.com>
parents:
12007
diff
changeset
|
1844 NULL, /* send_file */ |
cbebda5f019c
[gaim-migrate @ 14444]
Richard Laager <rlaager@wiktel.com>
parents:
12007
diff
changeset
|
1845 NULL /* new_xfer */ |
5205
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5136
diff
changeset
|
1846 }; |
11360 | 1847 /* }}} */ |
5205
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5136
diff
changeset
|
1848 |
11360 | 1849 /* GaimPluginInfo setup {{{ */ |
1850 static GaimPluginInfo info = { | |
1851 GAIM_PLUGIN_MAGIC, /* magic */ | |
1852 GAIM_MAJOR_VERSION, /* major_version */ | |
1853 GAIM_MINOR_VERSION, /* minor_version */ | |
1854 GAIM_PLUGIN_PROTOCOL, /* plugin type */ | |
1855 NULL, /* ui_requirement */ | |
1856 0, /* flags */ | |
1857 NULL, /* dependencies */ | |
1858 GAIM_PRIORITY_DEFAULT, /* priority */ | |
1859 | |
1860 "prpl-gg", /* id */ | |
1861 "Gadu-Gadu", /* name */ | |
1862 VERSION, /* version */ | |
5205
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5136
diff
changeset
|
1863 |
11360 | 1864 N_("Gadu-Gadu Protocol Plugin"), /* summary */ |
1865 N_("Polish popular IM"), /* description */ | |
1866 "boler@sourceforge.net", /* author */ | |
1867 GAIM_WEBSITE, /* homepage */ | |
1868 | |
1869 NULL, /* load */ | |
1870 NULL, /* unload */ | |
1871 NULL, /* destroy */ | |
5205
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5136
diff
changeset
|
1872 |
11360 | 1873 NULL, /* ui_info */ |
1874 &prpl_info, /* extra_info */ | |
1875 NULL, /* prefs_info */ | |
1876 ggp_actions /* actions */ | |
1877 }; | |
1878 /* }}} */ | |
5205
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5136
diff
changeset
|
1879 |
11565 | 1880 /* static void gaim_gg_debug_handler(int level, const char * format, va_list args) {{{ */ |
11541
5fc015909164
[gaim-migrate @ 13796]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11538
diff
changeset
|
1881 static void gaim_gg_debug_handler(int level, const char * format, va_list args) { |
5fc015909164
[gaim-migrate @ 13796]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11538
diff
changeset
|
1882 GaimDebugLevel gaim_level; |
5fc015909164
[gaim-migrate @ 13796]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11538
diff
changeset
|
1883 char *msg = g_strdup_vprintf(format, args); |
5fc015909164
[gaim-migrate @ 13796]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11538
diff
changeset
|
1884 |
5fc015909164
[gaim-migrate @ 13796]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11538
diff
changeset
|
1885 /* This is pretty pointless since the GG_DEBUG levels don't correspond to |
5fc015909164
[gaim-migrate @ 13796]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11538
diff
changeset
|
1886 * the gaim ones */ |
5fc015909164
[gaim-migrate @ 13796]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11538
diff
changeset
|
1887 switch (level) { |
5fc015909164
[gaim-migrate @ 13796]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11538
diff
changeset
|
1888 case GG_DEBUG_FUNCTION: |
5fc015909164
[gaim-migrate @ 13796]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11538
diff
changeset
|
1889 gaim_level = GAIM_DEBUG_INFO; |
5fc015909164
[gaim-migrate @ 13796]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11538
diff
changeset
|
1890 break; |
5fc015909164
[gaim-migrate @ 13796]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11538
diff
changeset
|
1891 case GG_DEBUG_MISC: |
5fc015909164
[gaim-migrate @ 13796]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11538
diff
changeset
|
1892 case GG_DEBUG_NET: |
5fc015909164
[gaim-migrate @ 13796]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11538
diff
changeset
|
1893 case GG_DEBUG_DUMP: |
5fc015909164
[gaim-migrate @ 13796]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11538
diff
changeset
|
1894 case GG_DEBUG_TRAFFIC: |
5fc015909164
[gaim-migrate @ 13796]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11538
diff
changeset
|
1895 default: |
5fc015909164
[gaim-migrate @ 13796]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11538
diff
changeset
|
1896 gaim_level = GAIM_DEBUG_MISC; |
5fc015909164
[gaim-migrate @ 13796]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11538
diff
changeset
|
1897 break; |
5fc015909164
[gaim-migrate @ 13796]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11538
diff
changeset
|
1898 } |
5fc015909164
[gaim-migrate @ 13796]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11538
diff
changeset
|
1899 |
5fc015909164
[gaim-migrate @ 13796]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11538
diff
changeset
|
1900 gaim_debug(gaim_level, "gg", msg); |
5fc015909164
[gaim-migrate @ 13796]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11538
diff
changeset
|
1901 g_free(msg); |
5fc015909164
[gaim-migrate @ 13796]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11538
diff
changeset
|
1902 } |
11565 | 1903 /* }}} */ |
11541
5fc015909164
[gaim-migrate @ 13796]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11538
diff
changeset
|
1904 |
11360 | 1905 /* |
1906 */ | |
1907 /* static void init_plugin(GaimPlugin *plugin) {{{ */ | |
1908 static void init_plugin(GaimPlugin *plugin) | |
2393 | 1909 { |
5638
0bdfa28c678e
[gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents:
5618
diff
changeset
|
1910 GaimAccountOption *option; |
5205
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5136
diff
changeset
|
1911 |
12007
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1912 option = gaim_account_option_string_new(_("Nickname"), |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1913 "nick", _("Gadu-Gadu User")); |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1914 prpl_info.protocol_options = g_list_append(prpl_info.protocol_options, |
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1915 option); |
3572 | 1916 |
5205
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5136
diff
changeset
|
1917 my_protocol = plugin; |
11541
5fc015909164
[gaim-migrate @ 13796]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11538
diff
changeset
|
1918 |
5fc015909164
[gaim-migrate @ 13796]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11538
diff
changeset
|
1919 gg_debug_handler = gaim_gg_debug_handler; |
2393 | 1920 } |
11360 | 1921 /* }}} */ |
2393 | 1922 |
11909
1b029c5898af
[gaim-migrate @ 14200]
Richard Laager <rlaager@wiktel.com>
parents:
11837
diff
changeset
|
1923 GAIM_INIT_PLUGIN(gg, init_plugin, info); |
11360 | 1924 |
12007
8724718d387f
[gaim-migrate @ 14300]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11920
diff
changeset
|
1925 /* vim: set ts=8 sts=0 sw=8 noet: */ |