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 {