comparison libpurple/protocols/qq/buddy_opt.c @ 24073:df699d739b8f

2008.10.03 - ccpaging <ccpaging(at)gmail.com> * 2007 protocol: 1. fixed 'get room info' 2. fixed 'get buddy level'
author SHiNE CsyFeK <csyfek@gmail.com>
date Wed, 22 Oct 2008 14:46:44 +0000
parents dc112387190f
children a95c7e71064c
comparison
equal deleted inserted replaced
24072:efd4a0e6dd86 24073:df699d739b8f
544 q_bud->uid = uid; 544 q_bud->uid = uid;
545 buddy->proto_data = q_bud; 545 buddy->proto_data = q_bud;
546 qd->buddies = g_list_append(qd->buddies, q_bud); 546 qd->buddies = g_list_append(qd->buddies, q_bud);
547 qq_request_buddy_info(gc, qd->uid, 0, 0); 547 qq_request_buddy_info(gc, qd->uid, 0, 0);
548 qq_request_get_buddies_online(gc, 0, 0); 548 qq_request_get_buddies_online(gc, 0, 0);
549 qq_request_get_level(gc, qd->uid); 549 if (qd->client_version >= 2007) {
550 qq_request_get_level_2007(gc, q_bud->uid);
551 } else {
552 qq_request_get_level(gc, q_bud->uid);
553 }
550 } 554 }
551 555
552 purple_blist_add_buddy(buddy, NULL, group, NULL); 556 purple_blist_add_buddy(buddy, NULL, group, NULL);
553 purple_debug_warning("QQ", "Add new buddy: [%s]\n", buddy_name); 557 purple_debug_warning("QQ", "Add new buddy: [%s]\n", buddy_name);
554 558
555 g_free(buddy_name); 559 g_free(buddy_name);
556 g_free(group_name); 560 g_free(group_name);
557 561
558 return buddy; 562 return buddy;
563 }
564
565 qq_buddy *qq_get_buddy(PurpleConnection *gc, guint32 uid)
566 {
567 gchar *purple_name;
568 PurpleBuddy *purple_buddy;
569
570 g_return_val_if_fail(gc != NULL, NULL);
571 purple_name = uid_to_purple_name(uid);
572 if (purple_name == NULL) return NULL;
573
574 purple_buddy = purple_find_buddy(purple_connection_get_account(gc), purple_name);
575 g_free(purple_name);
576 if (purple_buddy == NULL) return NULL;
577
578 if (purple_buddy->proto_data == NULL) {
579 purple_debug_error("QQ", "Null data of buddy %d\n", uid);
580 return NULL;
581 }
582 return (qq_buddy *) purple_buddy->proto_data;
559 } 583 }
560 584
561 /* remove a buddy and send packet to QQ server accordingly */ 585 /* remove a buddy and send packet to QQ server accordingly */
562 void qq_remove_buddy(PurpleConnection *gc, PurpleBuddy *buddy, PurpleGroup *group) 586 void qq_remove_buddy(PurpleConnection *gc, PurpleBuddy *buddy, PurpleGroup *group)
563 { 587 {