# HG changeset patch # User Tim Ringenbach # Date 1090905783 0 # Node ID 8e97279196337c5dfdd6203cedf67979c040a00e # Parent 10939dc36eac6e0ab553eea9fa37f6a2bd343a64 [gaim-migrate @ 10447] Yahoo audibles (text only). (23:58:51) Kevin M Stange: Seriously - do us all a favor and unplug your computer now! committer: Tailor Script diff -r 10939dc36eac -r 8e9727919633 ChangeLog --- a/ChangeLog Tue Jul 27 04:31:24 2004 +0000 +++ b/ChangeLog Tue Jul 27 05:23:03 2004 +0000 @@ -5,6 +5,8 @@ * The autorecon plugin will somewhat remember state information(Yosef Radchenko) * Visual display of ops/voice/halfops/so on in Chats (Stu Tomlinson) + * The text messages of Yahoo Audibles are now displayed, although + the audio and graphics are not. Bug Fixes: * Use ISO date format for the system log (Eduardo Pérez) diff -r 10939dc36eac -r 8e9727919633 src/protocols/yahoo/yahoo.c --- a/src/protocols/yahoo/yahoo.c Tue Jul 27 04:31:24 2004 +0000 +++ b/src/protocols/yahoo/yahoo.c Tue Jul 27 05:23:03 2004 +0000 @@ -1964,6 +1964,46 @@ } } +static void yahoo_process_audible(GaimConnection *gc, struct yahoo_packet *pkt) +{ + char *who = NULL, *msg = NULL; + GSList *l = pkt->hash; + + while (l) { + struct yahoo_pair *pair = l->data; + + switch (pair->key) { + case 4: + who = pair->value; + break; + case 5: + /* us */ + break; + case 230: + /* the audible, in foo.bar.baz format */ + break; + case 231: + /* the text of the audible */ + msg = pair->value; + break; + case 232: + /* weird number (md5 hash?), like 8ebab9094156135f5dcbaccbeee662a5c5fd1420 */ + break; + } + + l = l->next; + } + + if (!who || !msg) + return; + if (!g_utf8_validate(msg, -1, NULL)) { + gaim_debug_misc("yahoo", "Warning, nonutf8 audible, ignoring!\n"); + return; + } + + serv_got_im(gc, who, msg, 0, time(NULL)); +} + static void yahoo_packet_process(GaimConnection *gc, struct yahoo_packet *pkt) { switch (pkt->service) { @@ -2068,6 +2108,8 @@ case YAHOO_SERVICE_PICTURE_UPLOAD: yahoo_process_picture_upload(gc, pkt); break; + case YAHOO_SERVICE_AUDIBLE: + yahoo_process_audible(gc, pkt); default: gaim_debug(GAIM_DEBUG_ERROR, "yahoo", "Unhandled service 0x%02x\n", pkt->service); diff -r 10939dc36eac -r 8e9727919633 src/protocols/yahoo/yahoo.h --- a/src/protocols/yahoo/yahoo.h Tue Jul 27 04:31:24 2004 +0000 +++ b/src/protocols/yahoo/yahoo.h Tue Jul 27 05:23:03 2004 +0000 @@ -117,6 +117,7 @@ YAHOO_SERVICE_PICTURE_UPLOAD = 0xc2, YAHOO_SERVICE_YAHOO6_STATUS_UPDATE = 0xc6, YAHOO_SERVICE_AVATAR_UPDATE = 0xc7, + YAHOO_SERVICE_AUDIBLE = 0xd0, YAHOO_SERVICE_WEBLOGIN = 0x0226, YAHOO_SERVICE_SMS_MSG = 0x02ea };