# HG changeset patch # User Sean Egan # Date 1066448054 0 # Node ID ceda503e55a6b23adfa7607fc18505993945e0b5 # Parent 3bc7bd545a0baab589ca9cacf19346f578bc7833 [gaim-migrate @ 7881] This is AIM Alerts and Reminders (alerts.aol.com). I think this is kinda a cool thing. And it was totally easy to do. Unfortunately, though, it seems that AOL won't give your browser the alert unless you send an X-Aim header in your HTML request. I could parse the HTML myself, but it has, like forms and stuff in it... and some alerts have images... it wouldn't be worth it. So this just prints stuff to the debug window. Maybe someday someone will be able to do something with it. Mark's going to make sure I didn't screw anything up. committer: Tailor Script diff -r 3bc7bd545a0b -r ceda503e55a6 src/protocols/oscar/email.c --- a/src/protocols/oscar/email.c Sat Oct 18 02:43:41 2003 +0000 +++ b/src/protocols/oscar/email.c Sat Oct 18 03:34:14 2003 +0000 @@ -82,6 +82,8 @@ fu8_t *cookie8, *cookie16; int tmp, havenewmail = 0; /* Used to tell the client we have _new_ mail */ + char *alertitle = NULL, *alerturl = NULL; + cookie8 = aimbs_getraw(bs, 8); /* Possibly the code used to log you in to mail? */ cookie16 = aimbs_getraw(bs, 16); /* Mail cookie sent above */ @@ -126,8 +128,11 @@ new->domain = aim_tlv_getstr(tlvlist, 0x0082, 1); new->flag = aim_tlv_get16(tlvlist, 0x0084, 1); + alertitle = aim_tlv_getstr(tlvlist, 0x0005, 1); + alerturl = aim_tlv_getstr(tlvlist, 0x000d, 1); + if ((userfunc = aim_callhandler(sess, rx->conn, snac->family, snac->subtype))) - ret = userfunc(sess, rx, new, havenewmail); + ret = userfunc(sess, rx, new, havenewmail, alertitle, alerturl + 2); aim_tlvlist_free(&tlvlist); diff -r 3bc7bd545a0b -r ceda503e55a6 src/protocols/oscar/oscar.c --- a/src/protocols/oscar/oscar.c Sat Oct 18 02:43:41 2003 +0000 +++ b/src/protocols/oscar/oscar.c Sat Oct 18 03:34:14 2003 +0000 @@ -3394,10 +3394,13 @@ GaimConnection *gc = sess->aux_data; struct aim_emailinfo *emailinfo; int havenewmail; + char *alertitle, *alerturl; va_start(ap, fr); emailinfo = va_arg(ap, struct aim_emailinfo *); havenewmail = va_arg(ap, int); + alertitle = va_arg(ap, char*); + alerturl = va_arg(ap, char*); va_end(ap); if (emailinfo && gaim_account_get_check_mail(gc->account)) { @@ -3406,6 +3409,14 @@ gaim_notify_emails(gc, emailinfo->nummsgs, FALSE, NULL, NULL, (const char **)&to, (const char **)&emailinfo->url, NULL, NULL); g_free(to); } + + if (alertitle) { + gaim_debug(GAIM_DEBUG_MISC, "oscar", "Got an alert '%s' %s\n", alertitle, alerturl); + g_free(alertitle); + } + if (alerturl) + g_free(alerturl); + return 1; }