From: Bleeter Y. <bl...@us...> - 2005-07-24 22:58:56
|
Update of /cvsroot/gaim-vv/gaim/src/protocols/yahoo In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv5722/src/protocols/yahoo Modified Files: Makefile.am yahoo.c yahoo.h yahoo_profile.c yahoo_webcam.c Log Message: My first attempt at a gaim-vv-1.4.0cvs Index: Makefile.am =================================================================== RCS file: /cvsroot/gaim-vv/gaim/src/protocols/yahoo/Makefile.am,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -p -r1.6 -r1.7 --- Makefile.am 29 Jan 2005 23:23:05 -0000 1.6 +++ Makefile.am 24 Jul 2005 22:58:41 -0000 1.7 @@ -9,10 +9,8 @@ YAHOOSOURCES = \ yahoo_auth.c \ yahoo_auth.h \ yahoochat.h \ - yahoo_webcam.h \ yahoo.c \ yahoochat.c \ - yahoo_webcam.c \ util.c \ yahoo_filexfer.h \ yahoo_filexfer.c \ @@ -24,10 +22,14 @@ YAHOOSOURCES = \ ycht.c \ ycht.h +if HAVE_GST + YAHOOSOURCES += yahoo_webcam.h + YAHOOSOURCES += yahoo_webcam.c +endif AM_CFLAGS = $(st) -libyahoo_la_LDFLAGS = -module -avoid-version +libyahoo_la_LDFLAGS = -module -avoid-version $(GLIB_LIBS) if STATIC_YAHOO @@ -44,7 +46,6 @@ libyahoo_la_SOURCES = $(YAHOOSOURCES) endif - AM_CPPFLAGS = \ -I$(top_srcdir)/src \ $(GLIB_CFLAGS) \ Index: yahoo.c =================================================================== RCS file: /cvsroot/gaim-vv/gaim/src/protocols/yahoo/yahoo.c,v retrieving revision 1.8 retrieving revision 1.9 diff -u -d -p -r1.8 -r1.9 --- yahoo.c 4 Apr 2005 19:51:40 -0000 1.8 +++ yahoo.c 24 Jul 2005 22:58:41 -0000 1.9 @@ -28,7 +28,6 @@ #include "blist.h" #include "cmds.h" #include "debug.h" -#include "media.h" #include "notify.h" #include "privacy.h" #include "prpl.h" @@ -36,7 +35,6 @@ #include "request.h" #include "server.h" #include "util.h" -#include "media.h" #include "version.h" #include "sha.h" @@ -47,8 +45,10 @@ #include "yahoo_auth.h" #include "yahoo_filexfer.h" #include "yahoo_picture.h" -#include "yahoo_webcam.h" #include "md5.h" +#ifdef HAVE_GST +#include "yahoo_webcam.h" +#endif extern char *yahoo_crypt(const char *, const char *); @@ -74,26 +74,23 @@ yahoo_rem_permit(GaimConnection *gc, con gaim_privacy_permit_remove(gc->account,who,TRUE); } -gboolean yahoo_check_privacy(GaimConnection *gc, const char *who) +gboolean yahoo_privacy_check(GaimConnection *gc, const char *who) { /* returns TRUE if allowed through, FALSE otherwise */ GSList *list; gboolean permitted=FALSE; switch (gc->account->perm_deny) { - /* it would appear somewhere inside gaim, GAIM_PRIVACY can end up - * being set to 0 */ - case 0: - permitted = TRUE; - break; case GAIM_PRIVACY_ALLOW_ALL: permitted = TRUE; break; + case GAIM_PRIVACY_DENY_ALL: gaim_debug_info("yahoo", "%s blocked data received from %s (GAIM_PRIVACY_DENY_ALL)\n", gc->account->username,who); break; + case GAIM_PRIVACY_ALLOW_USERS: for( list=gc->account->permit; list!=NULL; list=list->next ) { if ( !gaim_utf8_strcasecmp(who, gaim_normalize(gc->account, (char *)list->data)) ) { @@ -105,6 +102,7 @@ gboolean yahoo_check_privacy(GaimConnect } } break; + case GAIM_PRIVACY_DENY_USERS: /* seeing we're letting everyone through, except the deny list*/ permitted=TRUE; @@ -114,10 +112,11 @@ gboolean yahoo_check_privacy(GaimConnect gaim_debug_info("yahoo", "%s blocked data received from %s (GAIM_PRIVACY_DENY_USERS)\n", gc->account->username,who); - } - break; + break; + } } break; + case GAIM_PRIVACY_ALLOW_BUDDYLIST: if ( gaim_find_buddy(gc->account,who) != NULL ) { permitted = TRUE; @@ -127,13 +126,15 @@ gboolean yahoo_check_privacy(GaimConnect gc->account->username,who); } break; - default: - gaim_debug(GAIM_DEBUG_INFO, "yahoo", - "Default privacy dropthrough - we should never see this. Please report yahoo privacy bug to http://gaim.sf.net\n"); - permitted = FALSE; - break; + + default: + gaim_debug_warning("yahoo", "Privacy setting was unknown. If you can " + "reproduce this, please file a bug report.\n"); + permitted = FALSE; + break; } -return permitted; + + return permitted; } struct yahoo_packet *yahoo_packet_new(enum yahoo_service service, enum yahoo_status status, int id) @@ -805,10 +806,15 @@ static void yahoo_process_list(GaimConne yd->tmp_serv_ilist = NULL; } - if (got_serv_list) { - gc->account->perm_deny = 4; - serv_set_permit_deny(gc); + if (got_serv_list && + ((gc->account->perm_deny != GAIM_PRIVACY_ALLOW_BUDDYLIST) && + (gc->account->perm_deny != GAIM_PRIVACY_DENY_ALL) && + (gc->account->perm_deny != GAIM_PRIVACY_ALLOW_USERS))) + { + gc->account->perm_deny = GAIM_PRIVACY_DENY_USERS; + gaim_debug_info("yahoo", "Privacy defaulting to GAIM_PRIVACY_DENY_USERS.\n", gc->account->username); } + } static void yahoo_process_notify(GaimConnection *gc, struct yahoo_packet *pkt) @@ -819,7 +825,9 @@ static void yahoo_process_notify(GaimCon char *game = NULL; YahooFriend *f = NULL; GSList *l = pkt->hash; +#ifdef HAVE_GST int accept; +#endif while (l) { struct yahoo_pair *pair = l->data; @@ -831,14 +839,14 @@ static void yahoo_process_notify(GaimCon stat = pair->value; if (pair->key == 14) game = pair->value; - l = l->next; } if (!from || !msg) return; - if (!g_ascii_strncasecmp(msg, "TYPING", strlen("TYPING"))) { + if (!g_ascii_strncasecmp(msg, "TYPING", strlen("TYPING")) + && (yahoo_privacy_check(gc, from))) { if (*stat == '1') serv_got_typing(gc, from, 0, GAIM_TYPING); else @@ -863,7 +871,9 @@ static void yahoo_process_notify(GaimCon if (bud) yahoo_update_status(gc, from, f); } - } else if (!g_ascii_strncasecmp(msg, "WEBCAMINVITE", strlen("WEBCAMINVITE"))) { + } +#ifdef HAVE_GST + else if (!g_ascii_strncasecmp(msg, "WEBCAMINVITE", strlen("WEBCAMINVITE"))) { if (!strcmp(game, " ")) { gaim_media_got_invite(gc, from); } else { @@ -874,9 +884,9 @@ static void yahoo_process_notify(GaimCon gaim_media_got_invite_decline(gc, from); } } +#endif } - struct _yahoo_im { char *from; int time; @@ -930,9 +940,9 @@ static void yahoo_process_message(GaimCo continue; } - if (!yahoo_check_privacy(gc, im->from)) { + if (!yahoo_privacy_check(gc, im->from)) { gaim_debug_info("yahoo", "Message from %s dropped.\n", im->from); - continue; + return; } m = yahoo_string_decode(gc, im->msg, im->utf8); @@ -2122,7 +2132,10 @@ static void yahoo_process_audible(GaimCo gaim_debug_misc("yahoo", "Warning, nonutf8 audible, ignoring!\n"); return; } - + if (!yahoo_privacy_check(gc, who)) { + gaim_debug_misc("yahoo", "Audible message from %s for %s dropped!\n", gc->account->username, who); + return; + } serv_got_im(gc, who, msg, 0, time(NULL)); } @@ -2158,7 +2171,9 @@ static void yahoo_packet_process(GaimCon yahoo_process_contact(gc, pkt); break; case YAHOO_SERVICE_WEBCAM: +#ifdef HAVE_GST yahoo_process_webcam_key(gc, pkt); +#endif break; case YAHOO_SERVICE_AUTHRESP: yahoo_process_authresp(gc, pkt); @@ -2596,8 +2611,6 @@ static void yahoo_login(GaimAccount *acc return; } } - - } static void yahoo_close(GaimConnection *gc) { @@ -2861,6 +2874,7 @@ static void yahoo_chat_goto_menu(GaimBli yahoo_chat_goto(gc, buddy->name); } +#ifdef HAVE_GST static void yahoo_webcam_get_feed_blist_node(GaimBlistNode *node, gpointer data) { GaimBuddy *b = (GaimBuddy *)node; @@ -2868,6 +2882,7 @@ static void yahoo_webcam_get_feed_blist_ yahoo_webcam_get_feed(gc, b->name); } +#endif static GList *yahoo_buddy_menu(GaimBuddy *buddy) { @@ -2902,11 +2917,6 @@ static GList *yahoo_buddy_menu(GaimBuddy yahoo_initiate_conference, NULL); m = g_list_append(m, act); - - act = gaim_blist_node_action_new(_("View Webcam"), yahoo_webcam_get_feed_blist_node, NULL); - m = g_list_append(m, act); - - if (yahoo_friend_get_game(f)) { const char *game = yahoo_friend_get_game(f); char *room; @@ -2925,7 +2935,10 @@ static GList *yahoo_buddy_menu(GaimBuddy act = gaim_blist_node_action_new(buf2, yahoo_game, NULL); m = g_list_append(m, act); } - +#ifdef HAVE_GST + act = gaim_blist_node_action_new(_("View Webcam"), yahoo_webcam_get_feed_blist_node, NULL); + m = g_list_append(m, act); +#endif return m; } @@ -3229,6 +3242,9 @@ static void yahoo_add_buddy(GaimConnecti if (!yd->logged_in) return; + if (!yahoo_privacy_check(gc, buddy->name)) + return; + if (foo) group = foo->name; if (!group) { @@ -3398,6 +3414,7 @@ static void yahoo_change_buddys_group(Ga yahoo_send_packet(yd, pkt); yahoo_packet_free(pkt); +#if 0 /* Step 2: Remove buddy from old group */ pkt = yahoo_packet_new(YAHOO_SERVICE_REMBUDDY, YAHOO_STATUS_AVAILABLE, 0); yahoo_packet_hash(pkt, 1, gaim_connection_get_display_name(gc)); @@ -3405,6 +3422,7 @@ static void yahoo_change_buddys_group(Ga yahoo_packet_hash(pkt, 65, gpo); yahoo_send_packet(yd, pkt); yahoo_packet_free(pkt); +#endif g_free(gpn); g_free(gpo); } @@ -3434,6 +3452,58 @@ static void yahoo_rename_group(GaimConne g_free(gpo); } +static GaimPlugin *my_protocol = NULL; + +/********************************* Commands **********************************/ + +static GaimCmdRet +yahoogaim_cmd_buzz(GaimConversation *c, const gchar *cmd, gchar **args, + gchar **error, void *data) { + + GaimAccount *account = gaim_conversation_get_account(c); + const char *username = gaim_account_get_username(account); + + if (*args && args[0]) + return GAIM_CMD_RET_FAILED; + + gaim_debug(GAIM_DEBUG_INFO, "yahoo", + "Sending <ding> on account %s to buddy %s.\n", username, c->name); + gaim_conv_im_send(GAIM_CONV_IM(c), "<ding>"); + gaim_conv_im_write(GAIM_CONV_IM(c), "", _("Buzz!!"), + GAIM_MESSAGE_NICK|GAIM_MESSAGE_RECV, time(NULL)); + return GAIM_CMD_RET_OK; +} + +static GaimCmdRet +yahoogaim_cmd_chat_join(GaimConversation *conv, const char *cmd, + char **args, char **error, void *data) +{ + GHashTable *comp; + GaimConnection *gc; + struct yahoo_data *yd; + int id; + + if (!args || !args[0]) + return GAIM_CMD_RET_FAILED; + + gc = gaim_conversation_get_gc(conv); + yd = gc->proto_data; + id = yd->conf_id; + gaim_debug(GAIM_DEBUG_INFO, "yahoo", + "Trying to join %s \n", args[0]); + + comp = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, g_free); + g_hash_table_replace(comp, g_strdup("room"), + g_strdup_printf("%s", g_ascii_strdown(args[0], strlen(args[0])))); + g_hash_table_replace(comp, g_strdup("type"), g_strdup("Chat")); + + yahoo_c_join(gc, comp); + + g_hash_table_destroy(comp); + return GAIM_CMD_RET_OK; +} + +#ifdef HAVE_GST static GaimCmdRet yahoogaim_cmd_viewcam(GaimConversation *conv, const char *cmd, char **args, char **error, void *data) @@ -3474,34 +3544,35 @@ yahoogaim_cmd_viewcam(GaimConversation * yahoo_webcam_get_feed(gaim_conversation_get_gc(conv), username); return GAIM_CMD_RET_OK; } - -#if 0 -static GaimCmdRet -yahoogaim_cmd_broadcast(GaimConversation *conv, const char *cmd, - char **args, char **error, void *data) -{ - *error = g_strdup("Broadcasting not supported. Please don't report as bug."); - return GAIM_CMD_RET_FAILED; -} #endif -static GaimPlugin *my_protocol = NULL; - +/************************** Plugin Initialization ****************************/ static void yahoogaim_register_commands(void) { + gaim_cmd_register("join", "s", GAIM_CMD_P_PRPL, + GAIM_CMD_FLAG_IM | GAIM_CMD_FLAG_CHAT | + GAIM_CMD_FLAG_PRPL_ONLY, + "prpl-yahoo", yahoogaim_cmd_chat_join, + _("join <room>: Join a chat room on the Yahoo network"), NULL); + gaim_cmd_register("buzz", "", GAIM_CMD_P_PRPL, + GAIM_CMD_FLAG_IM | GAIM_CMD_FLAG_PRPL_ONLY, + "prpl-yahoo", yahoogaim_cmd_buzz, + _("buzz: Buzz a contact to get their attention"), NULL); +#ifdef HAVE_GST gaim_cmd_register("viewcam", "w", GAIM_CMD_P_PRPL, - GAIM_CMD_FLAG_IM | GAIM_CMD_FLAG_CHAT | - GAIM_CMD_FLAG_PRPL_ONLY | GAIM_CMD_FLAG_ALLOW_WRONG_ARGS, - "prpl-yahoo", yahoogaim_cmd_viewcam, - _("viewcam <broadcaster>: View a webcam. " - "<broadcaster> must be specified in chats"), NULL); + GAIM_CMD_FLAG_IM | GAIM_CMD_FLAG_CHAT | + GAIM_CMD_FLAG_PRPL_ONLY | GAIM_CMD_FLAG_ALLOW_WRONG_ARGS, + "prpl-yahoo", yahoogaim_cmd_viewcam, + _("viewcam <broadcaster>: View a webcam. " + "<broadcaster> must be specified in chats"), NULL); +#endif #if 0 gaim_cmd_register("broadcast", "", GAIM_CMD_P_PRPL, - GAIM_CMD_FLAG_IM | GAIM_CMD_FLAG_CHAT | - GAIM_CMD_FLAG_PRPL_ONLY , - "prpl-yahoo", yahoogaim_cmd_broadcastcam, - _("broadcast <size>: Broadcast cam. " - "<size> may be small or large"), NULL); + GAIM_CMD_FLAG_IM | GAIM_CMD_FLAG_CHAT | + GAIM_CMD_FLAG_PRPL_ONLY , + "prpl-yahoo", yahoogaim_cmd_broadcastcam, + _("broadcast <size>: Broadcast cam. " + "<size> may be small or large"), NULL); #endif } @@ -3564,8 +3635,12 @@ static GaimPluginProtocolInfo prpl_info yahoo_roomlist_cancel, yahoo_roomlist_expand_category, NULL, /* can_receive_file */ +#ifdef HAVE_GST yahoo_send_file, - &yahoo_webcam_cbs, + &yahoo_webcam_cbs +#else + yahoo_send_file +#endif }; static GaimPluginInfo info = @@ -3625,38 +3700,19 @@ init_plugin(GaimPlugin *plugin) option = gaim_account_option_int_new(_("File transfer port"), "xfer_port", YAHOO_XFER_PORT); prpl_info.protocol_options = g_list_append(prpl_info.protocol_options, option); - option = gaim_account_option_string_new(_("Chat Room List Url"), "room_list", YAHOO_ROOMLIST_URL); - prpl_info.protocol_options = g_list_append(prpl_info.protocol_options, option); - - option = gaim_account_option_string_new(_("Webcam host"), "webcam_host", YAHOO_WEBCAM_HOST); + option = gaim_account_option_string_new(_("Chat Room Locale"), "room_list_locale", YAHOO_ROOMLIST_LOCALE); prpl_info.protocol_options = g_list_append(prpl_info.protocol_options, option); - - option = gaim_account_option_int_new(_("Webcam port"), "webcam_port", YAHOO_WEBCAM_PORT); +#if 0 + option = gaim_account_option_string_new(_("Chat Room List Url"), "room_list", YAHOO_ROOMLIST_URL); prpl_info.protocol_options = g_list_append(prpl_info.protocol_options, option); -#if 0 option = gaim_account_option_string_new(_("YCHT Host"), "ycht-server", YAHOO_YCHT_HOST); prpl_info.protocol_options = g_list_append(prpl_info.protocol_options, option); option = gaim_account_option_int_new(_("YCHT Port"), "ycht-port", YAHOO_YCHT_PORT); prpl_info.protocol_options = g_list_append(prpl_info.protocol_options, option); -/*still debating whether these prefences should be global, prpl or account specific*/ - gaim_prefs_add_none("/plugins/prpl/yahoo"); - gaim_prefs_add_none("/plugins/prpl/yahoo/media"); - gaim_prefs_add_none("/plugins/prpl/yahoo/media/audio"); - gaim_prefs_add_none("/plugins/prpl/yahoo/media/audio/input"); - gaim_prefs_add_none("/plugins/prpl/yahoo/media/audio/input/device"); - gaim_prefs_add_none("/plugins/prpl/yahoo/media/audio/input/level"); - gaim_prefs_add_none("/plugins/prpl/yahoo/media/audio/output"); - gaim_prefs_add_none("/plugins/prpl/yahoo/media/audio/output/device"); - gaim_prefs_add_none("/plugins/prpl/yahoo/media/audio/output/level"); - gaim_prefs_add_none("/plugins/prpl/yahoo/media/video"); - gaim_prefs_add_none("/plugins/prpl/yahoo/media/video/broadcast"); - gaim_prefs_add_none("/plugins/prpl/yahoo/media/video/broadcast/source"); - gaim_prefs_add_none("/plugins/prpl/yahoo/media/video/broadcast/dimensions"); #endif - my_protocol = plugin; yahoogaim_register_commands(); yahoo_init_colorht(); Index: yahoo.h =================================================================== RCS file: /cvsroot/gaim-vv/gaim/src/protocols/yahoo/yahoo.h,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -p -r1.5 -r1.6 --- yahoo.h 19 Mar 2005 19:23:08 -0000 1.5 +++ yahoo.h 24 Jul 2005 22:58:41 -0000 1.6 @@ -34,7 +34,7 @@ #define YAHOO_XFER_HOST "filetransfer.msg.yahoo.com" #define YAHOO_XFER_PORT 80 #define YAHOO_ROOMLIST_URL "http://insider.msg.yahoo.com/ycontent/" - +#define YAHOO_ROOMLIST_LOCALE "" /* really we should get the list of servers from http://update.messenger.yahoo.co.jp/servers.html */ #define YAHOOJP_PAGER_HOST "cs.yahoo.co.jp" @@ -274,9 +274,8 @@ void yahoo_get_info(GaimConnection *gc, * * @param gc The gc handle. * @param who The sender of the packet to check - * @param need_reply TRUE if a reply may be required, otherwise FALSE */ -gboolean yahoo_check_privacy +gboolean yahoo_privacy_check (GaimConnection *gc, const char *who); #endif /* _YAHOO_H_ */ Index: yahoo_profile.c =================================================================== RCS file: /cvsroot/gaim-vv/gaim/src/protocols/yahoo/yahoo_profile.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -p -r1.3 -r1.4 --- yahoo_profile.c 19 Mar 2005 19:23:08 -0000 1.3 +++ yahoo_profile.c 24 Jul 2005 22:58:41 -0000 1.4 @@ -116,9 +116,9 @@ static const profile_lang_node_t profile { DA, "Opdateret sidste gang ", NULL }, { DE, "Letzter Update ", NULL }, { EL, "Last Updated:", "http://gr.profiles.yahoo.com" }, - { EN_GB, "Last Updated ", "Favourite Quote" }, - { EN, "Last Updated:", NULL }, - { EN, "Last Updated ", NULL }, + { EN_GB, "Last Update ", "Favourite Quote" }, + { EN, "Last Update:", NULL }, + { EN, "Last Update ", NULL }, { ES_AR, "\332ltima actualizaci\363n ", NULL }, { ES_ES, "Actualizada el ", "http://es.profiles.yahoo.com" }, { ES_MX, "Actualizada el ", "http://mx.profiles.yahoo.com" }, @@ -213,46 +213,46 @@ static const profile_strings_node_t prof "Yahoo! ID:", "Private", "No Answer", - "My Email", + "My Email:", "Real Name:", "Location:", "Age:", "Marital Status:", "Gender:", "Occupation:", - "Hobbies:", + "Hobbies", "Latest News", "Favorite Quote", "Links", "No home page specified", "Home Page:", "No cool link specified", - "Cool Link 1:", - "Cool Link 2:", - "Cool Link 3:", + "Cool Link 1", + "Cool Link 2", + "Cool Link 3", NULL }, { EN_GB, "en_GB", "ISO-8859-1", /* Same as EN except spelling of "Favourite" */ "Yahoo! ID:", "Private", "No Answer", - "My Email", + "My Email:", "Real Name:", "Location:", "Age:", "Marital Status:", "Gender:", "Occupation:", - "Hobbies:", + "Hobbies", "Latest News", "Favourite Quote", "Links", "No home page specified", "Home Page:", "No cool link specified", - "Cool Link 1:", - "Cool Link 2:", - "Cool Link 3:", + "Cool Link 1", + "Cool Link 2", + "Cool Link 3", NULL }, { ES_AR, "es_AR", "ISO-8859-1", @@ -674,9 +674,7 @@ static char *yahoo_tooltip_info_text(Yah if ((ip = yahoo_friend_get_ip(f))) g_string_append_printf(s, _("<b>IP Address:</b> %s<br>"), ip); } - } - return g_string_free(s, FALSE); } @@ -687,16 +685,20 @@ static char *yahoo_get_photo_url(const c char *p; char *it = NULL; - g_string_printf(s, " alt=\"%s\">", name); + /*g_string_printf(s, " alt=\"%s\">", name);*/ + /* Y! newformat */ + g_string_printf(s, " alt=%s>", name); p = strstr(url_text, s->str); if (p) { /* Search backwards for "http://". This is stupid, but it works. */ for (; !it && p > url_text; p -= 1) { - if (strncmp(p, "\"http://", 8) == 0) { + /*if (strncmp(p, "\"http://", 8) == 0) {*/ + /* Y! newformat*/ + if (strncmp(p, "=http://", 8) == 0) { char *q; - p += 1; /* skip only the " */ - q = strchr(p, '"'); + p += 1; /* skip only the ' ' */ + q = strchr(p, ' '); if (q) { it = g_strndup(p, q - p); } @@ -830,7 +832,8 @@ static void yahoo_got_info(void *data, c * profile. We try to support all languages, but nothing is guaranteed. * If we cannot determine the language, it means either (1) the profile * is written in an unsupported language, (2) our language support is - * out of date, or (3) the user is not found. + * out of date, or (3) the user is not found, or (4) Y! have changed their + * webpage layout */ if (!p || strings->lang == XX) { if (!strstr(url_text, "Yahoo! Member Directory - User not found") @@ -864,7 +867,6 @@ static void yahoo_got_info(void *data, c gaim_str_strip_cr(url_buffer); #if PHOTO_SUPPORT - /* Marshall the existing state */ info2_data = g_malloc(sizeof(YahooGetInfoStepTwoData)); info2_data->info_data = info_data; @@ -919,8 +921,13 @@ static void yahoo_got_photo(void *data, /* We continue here from yahoo_got_info, as if nothing has happened */ #endif /* PHOTO_SUPPORT */ + /* Jun 29 05 Bleeter: Y! changed their profile pages. Terminators now seem to be */ + /* </dd> and not \n. The prpl's need to be audited before it can be moved */ + /* in to gaim_markup_strip_html*/ + char *fudged_buffer; + fudged_buffer = gaim_strcasereplace(url_buffer, "</dd>", "</dd><br>"); /* nuke the html, it's easier than trying to parse the horrid stuff */ - stripped = gaim_markup_strip_html(url_buffer); + stripped = gaim_markup_strip_html(fudged_buffer); stripped_len = strlen(stripped); gaim_debug_misc("yahoo", "stripped = %p\n", stripped); @@ -965,7 +972,7 @@ static void yahoo_got_photo(void *data, /* extract their Yahoo! ID and put it in. Don't bother marking has_info as * true, since the Yahoo! ID will always be there */ if (!gaim_markup_extract_info_field(stripped, stripped_len, s, - strings->yahoo_id_string, 2, "\n", 0, + strings->yahoo_id_string, 10, "\n", 0, NULL, _("Yahoo! ID"), 0, NULL)) ; #endif @@ -991,7 +998,7 @@ static void yahoo_got_photo(void *data, /* extract their Email address and put it in */ found |= gaim_markup_extract_info_field(stripped, stripped_len, s, - strings->my_email_string, 5, "\n", 0, + strings->my_email_string, 1, " ", 0, strings->private_string, _("Email"), 0, NULL); /* extract the Nickname if it exists */ @@ -1040,15 +1047,15 @@ static void yahoo_got_photo(void *data, if (!gaim_markup_extract_info_field(stripped, stripped_len, s, strings->hobbies_string, 1, strings->latest_news_string, - '\n', NULL, _("Hobbies"), 0, NULL)) + '\n', "\n", _("Hobbies"), 0, NULL)) { if (!gaim_markup_extract_info_field(stripped, stripped_len, s, strings->hobbies_string, 1, strings->favorite_quote_string, - '\n', NULL, _("Hobbies"), 0, NULL)) + '\n', "\n", _("Hobbies"), 0, NULL)) { found |= gaim_markup_extract_info_field(stripped, stripped_len, s, strings->hobbies_string, 1, strings->links_string, - '\n', NULL, _("Hobbies"), 0, NULL); + '\n', "\n", _("Hobbies"), 0, NULL); } else found = TRUE; @@ -1058,18 +1065,18 @@ static void yahoo_got_photo(void *data, if (!gaim_markup_extract_info_field(stripped, stripped_len, s, strings->latest_news_string, 1, strings->favorite_quote_string, - '\n', NULL, _("Latest News"), 0, NULL)) + '\n', "\n", _("Latest News"), 0, NULL)) { found |= gaim_markup_extract_info_field(stripped, stripped_len, s, strings->latest_news_string, 1, strings->links_string, - '\n', NULL, _("Latest News"), 0, NULL); + '\n', "\n", _("Latest News"), 0, NULL); } else found = TRUE; found |= gaim_markup_extract_info_field(stripped, stripped_len, s, strings->favorite_quote_string, 1, strings->links_string, - '\n', NULL, _("Favorite Quote"), 0, NULL); + '\n', "\n", _("Favorite Quote"), 0, NULL); /* Home Page will either be "No home page specified", * or "Home Page: " and a link. @@ -1119,9 +1126,8 @@ static void yahoo_got_photo(void *data, /* extract the Last Updated date and put it in */ found |= gaim_markup_extract_info_field(stripped, stripped_len, s, - last_updated_utf8_string, 0, "\n", '\n', NULL, - _("Last Updated"), 0, NULL); - + last_updated_utf8_string, 1, " ", '\n', NULL, + _("Last Update"), 0, NULL); } /* if (profile_state == PROFILE_STATE_DEFAULT) */ if(!found) @@ -1185,6 +1191,7 @@ static void yahoo_got_photo(void *data, g_free(last_updated_utf8_string); g_free(url_buffer); + g_free(fudged_buffer); g_string_free(s, TRUE); g_free(profile_url_text); g_free(tooltip_text); Index: yahoo_webcam.c =================================================================== RCS file: /cvsroot/gaim-vv/gaim/src/protocols/yahoo/yahoo_webcam.c,v retrieving revision 1.13 retrieving revision 1.14 diff -u -d -p -r1.13 -r1.14 --- yahoo_webcam.c 13 Jul 2005 12:43:34 -0000 1.13 +++ yahoo_webcam.c 24 Jul 2005 22:58:41 -0000 1.14 @@ -632,7 +632,7 @@ void yahoo_process_webcam_key(GaimConnec who = j->data; yd->webcam_queue = g_list_remove_link(yd->webcam_queue, yd->webcam_queue); - if (!yahoo_check_privacy(gc, who)) { + if (!yahoo_privacy_check(gc, who)) { gaim_debug_misc("yahoo", "Webcam invite for account %s from %s dropped !\n", gc->account->username, who); return; } |