Mercurial > pidgin
diff libpurple/protocols/myspace/myspace.c @ 17950:2bf10f37fa37
Use the much nicer purple_notify_emails() API to notify of new inbox messages,
instead of purple_notify_formatted().
author | Jeffrey Connelly <jaconnel@calpoly.edu> |
---|---|
date | Sun, 15 Jul 2007 23:46:12 +0000 |
parents | c23122e0af91 |
children | c0758f8dff33 |
line wrap: on
line diff
--- a/libpurple/protocols/myspace/myspace.c Sun Jul 15 23:44:37 2007 +0000 +++ b/libpurple/protocols/myspace/myspace.c Sun Jul 15 23:46:12 2007 +0000 @@ -1739,7 +1739,8 @@ gchar *body_str; GString *notification; guint old_inbox_status; - guint i; + guint i, n; + const gchar *froms[5], *tos[5], *urls[5], *subjects[5]; /* Three parallel arrays for each new inbox message type. */ static const gchar *inbox_keys[] = @@ -1792,6 +1793,8 @@ old_inbox_status = session->inbox_status; + n = 0; + for (i = 0; i < sizeof(inbox_keys) / sizeof(inbox_keys[0]); ++i) { const gchar *key; @@ -1806,35 +1809,36 @@ * (edge triggered) */ if (!(session->inbox_status & bit)) { - gchar *str; - - str = g_strdup_printf( - "<p><a href=\"%s\">%s</a><br>\n", - inbox_urls[i], inbox_text[i]); - - g_string_append(notification, str); - - g_free(str); + purple_debug_info("msim", "msim_check_inbox_cb: got %s, at %d\n", + key, n); + + subjects[n] = inbox_text[i]; + froms[n] = _("MySpace"); + tos[n] = session->username; + /* TODO: append token, web challenge, so automatically logs in. + * Would also need to free strings because they won't be static + */ + urls[n] = inbox_urls[i]; + + ++n; } else { purple_debug_info("msim", "msim_check_inbox_cb: already notified of %s\n", key); - /* TODO: some kind of non-intrusitive notification? */ } session->inbox_status |= bit; } } - if (notification->len) + if (n) { purple_debug_info("msim", - "msim_check_inbox_cb: notifying %s\n", notification->str); - - purple_notify_formatted(session->account, - _("New Inbox Messages"), _("New Inbox Messages"), NULL, - notification->str, - NULL, NULL); + "msim_check_inbox_cb: notifying of %d\n", n); + + /* TODO: free strings with callback _if_ change to dynamic (w/ token) */ + purple_notify_emails(session->account, + n, TRUE, subjects, froms, tos, urls, NULL, NULL); }