comparison libpurple/protocols/yahoo/yahoo_aliases.c @ 32672:3828a61c44da

A boring and large patch so I can merge heads.
author Elliott Sales de Andrade <qulogic@pidgin.im>
date Fri, 23 Dec 2011 08:21:58 +0000
parents 7df08e88d9bb
children
comparison
equal deleted inserted replaced
32671:0e69949b3e61 32672:3828a61c44da
72 72
73 static void 73 static void
74 yahoo_fetch_aliases_cb(PurpleUtilFetchUrlData *url_data, gpointer user_data, const gchar *url_text, size_t len, const gchar *error_message) 74 yahoo_fetch_aliases_cb(PurpleUtilFetchUrlData *url_data, gpointer user_data, const gchar *url_text, size_t len, const gchar *error_message)
75 { 75 {
76 PurpleConnection *gc = user_data; 76 PurpleConnection *gc = user_data;
77 YahooData *yd = gc->proto_data; 77 YahooData *yd = purple_connection_get_protocol_data(gc);
78 78
79 yd->url_datas = g_slist_remove(yd->url_datas, url_data); 79 yd->url_datas = g_slist_remove(yd->url_datas, url_data);
80 80
81 if (len == 0) { 81 if (len == 0) {
82 purple_debug_info("yahoo", "No Aliases to process.%s%s\n", 82 purple_debug_info("yahoo", "No Aliases to process.%s%s\n",
184 } 184 }
185 185
186 void 186 void
187 yahoo_fetch_aliases(PurpleConnection *gc) 187 yahoo_fetch_aliases(PurpleConnection *gc)
188 { 188 {
189 YahooData *yd = gc->proto_data; 189 YahooData *yd = purple_connection_get_protocol_data(gc);
190 const char *url; 190 const char *url;
191 gchar *request, *webpage, *webaddress; 191 gchar *request, *webpage, *webaddress;
192 PurpleUtilFetchUrlData *url_data; 192 PurpleUtilFetchUrlData *url_data;
193 193
194 /* use whole URL if using HTTP Proxy */ 194 /* use whole URL if using HTTP Proxy */
205 use_whole_url ? "http://" : "", use_whole_url ? webaddress : "", webpage, 205 use_whole_url ? "http://" : "", use_whole_url ? webaddress : "", webpage,
206 yd->cookie_t, yd->cookie_y, 206 yd->cookie_t, yd->cookie_y,
207 webaddress); 207 webaddress);
208 208
209 /* We have a URL and some header information, let's connect and get some aliases */ 209 /* We have a URL and some header information, let's connect and get some aliases */
210 url_data = purple_util_fetch_url_request_len(purple_connection_get_account(gc), 210 url_data = purple_util_fetch_url_request(purple_connection_get_account(gc),
211 url, use_whole_url, NULL, TRUE, request, FALSE, -1, 211 url, use_whole_url, NULL, TRUE, request, FALSE, -1,
212 yahoo_fetch_aliases_cb, gc); 212 yahoo_fetch_aliases_cb, gc);
213 if (url_data != NULL) 213 if (url_data != NULL)
214 yd->url_datas = g_slist_prepend(yd->url_datas, url_data); 214 yd->url_datas = g_slist_prepend(yd->url_datas, url_data);
215 215
228 xmlnode *node, *result; 228 xmlnode *node, *result;
229 struct callback_data *cb = user_data; 229 struct callback_data *cb = user_data;
230 PurpleConnection *gc = cb->gc; 230 PurpleConnection *gc = cb->gc;
231 YahooData *yd; 231 YahooData *yd;
232 232
233 yd = gc->proto_data; 233 yd = purple_connection_get_protocol_data(gc);
234 yd->url_datas = g_slist_remove(yd->url_datas, url_data); 234 yd->url_datas = g_slist_remove(yd->url_datas, url_data);
235 235
236 if (len == 0 || error_message != NULL) { 236 if (len == 0 || error_message != NULL) {
237 purple_debug_info("yahoo", "Error updating alias for %s: %s\n", 237 purple_debug_info("yahoo", "Error updating alias for %s: %s\n",
238 cb->who, 238 cb->who,
308 if (f == NULL) { 308 if (f == NULL) {
309 purple_debug_error("yahoo", "Missing YahooFriend. Unable to set server alias.\n"); 309 purple_debug_error("yahoo", "Missing YahooFriend. Unable to set server alias.\n");
310 return; 310 return;
311 } 311 }
312 312
313 yd = gc->proto_data; 313 yd = purple_connection_get_protocol_data(gc);
314 314
315 /* Using callback_data so I have access to gc in the callback function */ 315 /* Using callback_data so I have access to gc in the callback function */
316 cb = g_new0(struct callback_data, 1); 316 cb = g_new0(struct callback_data, 1);
317 cb->who = g_strdup(who); 317 cb->who = g_strdup(who);
318 cb->id = g_strdup(yahoo_friend_get_alias_id(f)); 318 cb->id = g_strdup(yahoo_friend_get_alias_id(f));
329 if (yd->jp) { 329 if (yd->jp) {
330 gchar *alias_jp = g_convert(alias, -1, "EUC-JP", "UTF-8", NULL, NULL, NULL); 330 gchar *alias_jp = g_convert(alias, -1, "EUC-JP", "UTF-8", NULL, NULL, NULL);
331 gchar *converted_alias_jp = yahoo_convert_to_numeric(alias_jp); 331 gchar *converted_alias_jp = yahoo_convert_to_numeric(alias_jp);
332 content = g_strdup_printf("<ab k=\"%s\" cc=\"9\">\n" 332 content = g_strdup_printf("<ab k=\"%s\" cc=\"9\">\n"
333 "<ct a=\"1\" yi='%s' nn='%s' />\n</ab>\r\n", 333 "<ct a=\"1\" yi='%s' nn='%s' />\n</ab>\r\n",
334 purple_account_get_username(gc->account), 334 purple_account_get_username(purple_connection_get_account(gc)),
335 who, converted_alias_jp); 335 who, converted_alias_jp);
336 g_free(converted_alias_jp); 336 g_free(converted_alias_jp);
337 g_free(alias_jp); 337 g_free(alias_jp);
338 } else { 338 } else {
339 gchar *escaped_alias = g_markup_escape_text(alias, -1); 339 gchar *escaped_alias = g_markup_escape_text(alias, -1);
340 content = g_strdup_printf("<?xml version=\"1.0\" encoding=\"utf-8\"?><ab k=\"%s\" cc=\"9\">\n" 340 content = g_strdup_printf("<?xml version=\"1.0\" encoding=\"utf-8\"?><ab k=\"%s\" cc=\"9\">\n"
341 "<ct a=\"1\" yi='%s' nn='%s' />\n</ab>\r\n", 341 "<ct a=\"1\" yi='%s' nn='%s' />\n</ab>\r\n",
342 purple_account_get_username(gc->account), 342 purple_account_get_username(purple_connection_get_account(gc)),
343 who, escaped_alias); 343 who, escaped_alias);
344 g_free(escaped_alias); 344 g_free(escaped_alias);
345 } 345 }
346 } else { 346 } else {
347 purple_debug_info("yahoo", "Updating '%s' as new alias for user '%s'\n", alias, who); 347 purple_debug_info("yahoo", "Updating '%s' as new alias for user '%s'\n", alias, who);
349 if (yd->jp) { 349 if (yd->jp) {
350 gchar *alias_jp = g_convert(alias, -1, "EUC-JP", "UTF-8", NULL, NULL, NULL); 350 gchar *alias_jp = g_convert(alias, -1, "EUC-JP", "UTF-8", NULL, NULL, NULL);
351 gchar *converted_alias_jp = yahoo_convert_to_numeric(alias_jp); 351 gchar *converted_alias_jp = yahoo_convert_to_numeric(alias_jp);
352 content = g_strdup_printf("<ab k=\"%s\" cc=\"1\">\n" 352 content = g_strdup_printf("<ab k=\"%s\" cc=\"1\">\n"
353 "<ct e=\"1\" yi='%s' id='%s' nn='%s' pr='0' />\n</ab>\r\n", 353 "<ct e=\"1\" yi='%s' id='%s' nn='%s' pr='0' />\n</ab>\r\n",
354 purple_account_get_username(gc->account), 354 purple_account_get_username(purple_connection_get_account(gc)),
355 who, cb->id, converted_alias_jp); 355 who, cb->id, converted_alias_jp);
356 g_free(converted_alias_jp); 356 g_free(converted_alias_jp);
357 g_free(alias_jp); 357 g_free(alias_jp);
358 } else { 358 } else {
359 gchar *escaped_alias = g_markup_escape_text(alias, -1); 359 gchar *escaped_alias = g_markup_escape_text(alias, -1);
360 content = g_strdup_printf("<?xml version=\"1.0\" encoding=\"utf-8\"?><ab k=\"%s\" cc=\"1\">\n" 360 content = g_strdup_printf("<?xml version=\"1.0\" encoding=\"utf-8\"?><ab k=\"%s\" cc=\"1\">\n"
361 "<ct e=\"1\" yi='%s' id='%s' nn='%s' pr='0' />\n</ab>\r\n", 361 "<ct e=\"1\" yi='%s' id='%s' nn='%s' pr='0' />\n</ab>\r\n",
362 purple_account_get_username(gc->account), 362 purple_account_get_username(purple_connection_get_account(gc)),
363 who, cb->id, escaped_alias); 363 who, cb->id, escaped_alias);
364 g_free(escaped_alias); 364 g_free(escaped_alias);
365 } 365 }
366 } 366 }
367 367
377 webaddress, 377 webaddress,
378 strlen(content), 378 strlen(content),
379 content); 379 content);
380 380
381 /* We have a URL and some header information, let's connect and update the alias */ 381 /* We have a URL and some header information, let's connect and update the alias */
382 url_data = purple_util_fetch_url_request_len( 382 url_data = purple_util_fetch_url_request(
383 purple_connection_get_account(gc), url, use_whole_url, NULL, TRUE, 383 purple_connection_get_account(gc), url, use_whole_url, NULL, TRUE,
384 request, FALSE, -1, yahoo_update_alias_cb, cb); 384 request, FALSE, -1, yahoo_update_alias_cb, cb);
385 if (url_data != NULL) 385 if (url_data != NULL)
386 yd->url_datas = g_slist_prepend(yd->url_datas, url_data); 386 yd->url_datas = g_slist_prepend(yd->url_datas, url_data);
387 387
515 ui->xml = xmlnode_to_str(node, NULL); 515 ui->xml = xmlnode_to_str(node, NULL);
516 xmlnode_free(node); 516 xmlnode_free(node);
517 } 517 }
518 #endif 518 #endif
519 519
520 url_data = purple_util_fetch_url_request_len(account, webaddress, FALSE, 520 url_data = purple_util_fetch_url_request(account, webaddress, FALSE,
521 YAHOO_CLIENT_USERAGENT, TRUE, request, FALSE, -1, 521 YAHOO_CLIENT_USERAGENT, TRUE, request, FALSE, -1,
522 yahoo_fetch_aliases_cb, gc); 522 yahoo_fetch_aliases_cb, gc);
523 if (url_data != NULL) 523 if (url_data != NULL)
524 yd->url_datas = g_slist_prepend(yd->url_datas, url_data); 524 yd->url_datas = g_slist_prepend(yd->url_datas, url_data);
525 525