Mercurial > pidgin.yaz
comparison libpurple/protocols/msn/notification.c @ 31139:c5a7516418c7
propagate from branch 'im.pidgin.pidgin' (head 624bba8bd37445c496620c94bfe6da7da8af2ee4)
to branch 'im.pidgin.cpw.qulogic.msnp16' (head 44494e162429137be1f175f40827c1d31655e7d3)
author | masca@cpw.pidgin.im |
---|---|
date | Thu, 18 Feb 2010 16:59:04 +0000 |
parents | 33b4ae796648 f549ad844d54 |
children | 4d7dfeae29c6 |
comparison
equal
deleted
inserted
replaced
31138:cc6d733a192a | 31139:c5a7516418c7 |
---|---|
366 trans = msn_transaction_new(cmdproc, "UUM", "%s 32 %d %" G_GSIZE_FORMAT, | 366 trans = msn_transaction_new(cmdproc, "UUM", "%s 32 %d %" G_GSIZE_FORMAT, |
367 msg->remote_user, type, payload_len); | 367 msg->remote_user, type, payload_len); |
368 msn_transaction_set_payload(trans, payload, strlen(payload)); | 368 msn_transaction_set_payload(trans, payload, strlen(payload)); |
369 msn_cmdproc_send_trans(cmdproc, trans); | 369 msn_cmdproc_send_trans(cmdproc, trans); |
370 } | 370 } |
371 | |
372 #if 0 | |
373 static void | |
374 ubm_cmd_post(MsnCmdProc *cmdproc, MsnCommand *cmd, char *payload, | |
375 size_t len) | |
376 { | |
377 MsnMessage *msg; | |
378 PurpleConnection *gc; | |
379 const char *passport; | |
380 const char *content_type; | |
381 | |
382 purple_debug_info("msn", "Process UBM payload:%.*s\n", (guint)len, payload); | |
383 msg = msn_message_new_from_cmd(cmdproc->session, cmd); | |
384 | |
385 msn_message_parse_payload(msg, payload, len,MSG_LINE_DEM,MSG_BODY_DEM); | |
386 if (purple_debug_is_verbose()) | |
387 msn_message_show_readable(msg, "Notification", TRUE); | |
388 | |
389 gc = cmdproc->session->account->gc; | |
390 passport = msg->remote_user; | |
391 | |
392 content_type = msn_message_get_content_type(msg); | |
393 purple_debug_info("msn", "type:%s\n", content_type); | |
394 if(!strcmp(content_type,"text/plain")){ | |
395 const char *value; | |
396 const char *body; | |
397 char *body_enc; | |
398 char *body_final = NULL; | |
399 size_t body_len; | |
400 | |
401 body = msn_message_get_bin_data(msg, &body_len); | |
402 body_enc = g_markup_escape_text(body, body_len); | |
403 | |
404 if ((value = msn_message_get_header_value(msg, "X-MMS-IM-Format")) != NULL) { | |
405 char *pre, *post; | |
406 | |
407 msn_parse_format(value, &pre, &post); | |
408 body_final = g_strdup_printf("%s%s%s", pre ? pre : "", | |
409 body_enc ? body_enc : "", post ? post : ""); | |
410 g_free(pre); | |
411 g_free(post); | |
412 } | |
413 g_free(body_enc); | |
414 serv_got_im(gc, passport, body_final, 0, time(NULL)); | |
415 g_free(body_final); | |
416 } | |
417 if(!strcmp(content_type,"text/x-msmsgscontrol")){ | |
418 if(msn_message_get_header_value(msg, "TypingUser") != NULL){ | |
419 serv_got_typing(gc, passport, MSN_TYPING_RECV_TIMEOUT, | |
420 PURPLE_TYPING); | |
421 } | |
422 } | |
423 if(!strcmp(content_type,"text/x-msnmsgr-datacast")){ | |
424 char *username, *str; | |
425 PurpleAccount *account; | |
426 PurpleBuddy *buddy; | |
427 const char *user; | |
428 | |
429 account = cmdproc->session->account; | |
430 user = msg->remote_user; | |
431 | |
432 if ((buddy = purple_find_buddy(account, user)) != NULL){ | |
433 username = g_markup_escape_text(purple_buddy_get_alias(buddy), -1); | |
434 }else{ | |
435 username = g_markup_escape_text(user, -1); | |
436 } | |
437 | |
438 str = g_strdup_printf(_("%s just sent you a Nudge!"), username); | |
439 g_free(username); | |
440 msn_session_report_user(cmdproc->session,user,str,PURPLE_MESSAGE_SYSTEM); | |
441 g_free(str); | |
442 } | |
443 msn_message_destroy(msg); | |
444 } | |
445 #endif | |
446 | 371 |
447 /*Yahoo msg process*/ | 372 /*Yahoo msg process*/ |
448 static void | 373 static void |
449 ubm_cmd(MsnCmdProc *cmdproc, MsnCommand *cmd) | 374 ubm_cmd(MsnCmdProc *cmdproc, MsnCommand *cmd) |
450 { | 375 { |
1733 * If 'Music': | 1658 * If 'Music': |
1734 * 5: Artist | 1659 * 5: Artist |
1735 * 6: Album | 1660 * 6: Album |
1736 * 7: ? | 1661 * 7: ? |
1737 */ | 1662 */ |
1738 #if GLIB_CHECK_VERSION(2,6,0) | |
1739 strings = g_strv_length(cmedia_array); | 1663 strings = g_strv_length(cmedia_array); |
1740 #else | |
1741 while (cmedia_array[++strings] != NULL); | |
1742 #endif | |
1743 | 1664 |
1744 if (strings >= 4 && !strcmp(cmedia_array[2], "1")) { | 1665 if (strings >= 4 && !strcmp(cmedia_array[2], "1")) { |
1745 if (user->extinfo == NULL) | 1666 if (user->extinfo == NULL) |
1746 user->extinfo = g_new0(MsnUserExtendedInfo, 1); | 1667 user->extinfo = g_new0(MsnUserExtendedInfo, 1); |
1747 else { | 1668 else { |