Mercurial > pidgin.yaz
comparison libpurple/protocols/qq/buddy_opt.c @ 24077:ce94189f15ad
Flos Lonicerae <lonicerae(at)gmail.com>
* Merge lonicerae and ccpaging into trunk
author | SHiNE CsyFeK <csyfek@gmail.com> |
---|---|
date | Wed, 22 Oct 2008 14:52:26 +0000 |
parents | ec3f7d3e0445 |
children | 1bdf7b602684 |
comparison
equal
deleted
inserted
replaced
24076:ec3f7d3e0445 | 24077:ce94189f15ad |
---|---|
344 who = buddy->name; | 344 who = buddy->name; |
345 g_return_if_fail(who != NULL); | 345 g_return_if_fail(who != NULL); |
346 | 346 |
347 uid = purple_name_to_uid(who); | 347 uid = purple_name_to_uid(who); |
348 g_return_if_fail(uid > 0); | 348 g_return_if_fail(uid > 0); |
349 | 349 |
350 if (uid == qd->uid) { | 350 if (uid == qd->uid) { |
351 return; | 351 return; |
352 } | 352 } |
353 | 353 |
354 add_req = g_new0(qq_add_request, 1); | 354 add_req = g_new0(qq_add_request, 1); |
499 return g; | 499 return g; |
500 } | 500 } |
501 | 501 |
502 /* we add new buddy, if the received packet is from someone not in my list | 502 /* we add new buddy, if the received packet is from someone not in my list |
503 * return the PurpleBuddy that is just created */ | 503 * return the PurpleBuddy that is just created */ |
504 PurpleBuddy *qq_create_buddy(PurpleConnection *gc, guint32 uid, gboolean is_known, gboolean create) | 504 PurpleBuddy *qq_create_buddy(PurpleConnection *gc, guint32 uid, |
505 { | 505 gboolean is_known, gboolean is_create_data) |
506 PurpleBuddy *buddy; | 506 { |
507 PurpleBuddy *purple_buddy; | |
507 PurpleGroup *group; | 508 PurpleGroup *group; |
508 qq_data *qd; | 509 qq_data *qd; |
509 qq_buddy *q_bud; | 510 qq_buddy *buddy; |
510 gchar *buddy_name, *group_name; | 511 gchar *buddy_name, *group_name; |
511 | 512 |
512 g_return_val_if_fail(gc->account != NULL && uid != 0, NULL); | 513 g_return_val_if_fail(gc->account != NULL && uid != 0, NULL); |
513 qd = (qq_data *) gc->proto_data; | 514 qd = (qq_data *) gc->proto_data; |
514 | 515 |
520 } | 521 } |
521 | 522 |
522 group = qq_create_group(group_name); | 523 group = qq_create_group(group_name); |
523 | 524 |
524 buddy_name = uid_to_purple_name(uid); | 525 buddy_name = uid_to_purple_name(uid); |
525 buddy = purple_find_buddy(gc->account, buddy_name); | 526 purple_buddy = purple_find_buddy(gc->account, buddy_name); |
526 /* remove old, we can not simply return here | 527 /* remove old, we can not simply return here |
527 * because there might be old local copy of this buddy */ | 528 * because there might be old local copy of this buddy */ |
528 if (buddy != NULL) | 529 if (purple_buddy != NULL) |
529 purple_blist_remove_buddy(buddy); | 530 purple_blist_remove_buddy(purple_buddy); |
530 | 531 |
531 buddy = purple_buddy_new(gc->account, buddy_name, NULL); | 532 purple_buddy = purple_buddy_new(gc->account, buddy_name, NULL); |
532 if ( !is_known) { | 533 if ( !is_known) { |
533 if (purple_privacy_check(gc->account, buddy_name)) { | 534 if (purple_privacy_check(gc->account, buddy_name)) { |
534 purple_privacy_deny(gc->account, buddy_name, TRUE, FALSE); | 535 purple_privacy_deny(gc->account, buddy_name, TRUE, FALSE); |
535 } else { | 536 } else { |
536 purple_privacy_deny_add(gc->account, buddy_name, TRUE); | 537 purple_privacy_deny_add(gc->account, buddy_name, TRUE); |
537 } | 538 } |
538 } | 539 } |
539 | 540 |
540 if (!create) | 541 if (!is_create_data) |
541 buddy->proto_data = NULL; | 542 purple_buddy->proto_data = NULL; |
542 else { | 543 else { |
543 q_bud = g_new0(qq_buddy, 1); | 544 buddy = g_new0(qq_buddy, 1); |
544 q_bud->uid = uid; | 545 buddy->uid = uid; |
545 buddy->proto_data = q_bud; | 546 purple_buddy->proto_data = buddy; |
546 qd->buddies = g_list_append(qd->buddies, q_bud); | 547 qd->buddies = g_list_append(qd->buddies, buddy); |
547 qq_request_buddy_info(gc, qd->uid, 0, 0); | 548 qq_request_buddy_info(gc, uid, 0, 0); |
548 qq_request_get_buddies_online(gc, 0, 0); | 549 qq_request_get_buddies_online(gc, 0, 0); |
549 if (qd->client_version >= 2007) { | 550 if (qd->client_version >= 2007) { |
550 qq_request_get_level_2007(gc, q_bud->uid); | 551 qq_request_get_level_2007(gc, uid); |
551 } else { | 552 } else { |
552 qq_request_get_level(gc, q_bud->uid); | 553 qq_request_get_level(gc, uid); |
553 } | 554 } |
554 } | 555 } |
555 | 556 |
556 purple_blist_add_buddy(buddy, NULL, group, NULL); | 557 purple_blist_add_buddy(purple_buddy, NULL, group, NULL); |
557 purple_debug_warning("QQ", "Add new buddy: [%s]\n", buddy_name); | 558 purple_debug_warning("QQ", "Add new buddy: [%s]\n", buddy_name); |
558 | 559 |
559 g_free(buddy_name); | 560 g_free(buddy_name); |
560 g_free(group_name); | 561 g_free(group_name); |
561 | 562 |
562 return buddy; | 563 return purple_buddy; |
563 } | 564 } |
564 | 565 |
565 qq_buddy *qq_get_buddy(PurpleConnection *gc, guint32 uid) | 566 qq_buddy *qq_get_buddy(PurpleConnection *gc, guint32 uid) |
566 { | 567 { |
567 gchar *purple_name; | 568 gchar *purple_name; |
572 if (purple_name == NULL) return NULL; | 573 if (purple_name == NULL) return NULL; |
573 | 574 |
574 purple_buddy = purple_find_buddy(purple_connection_get_account(gc), purple_name); | 575 purple_buddy = purple_find_buddy(purple_connection_get_account(gc), purple_name); |
575 g_free(purple_name); | 576 g_free(purple_name); |
576 if (purple_buddy == NULL) return NULL; | 577 if (purple_buddy == NULL) return NULL; |
577 | 578 |
578 if (purple_buddy->proto_data == NULL) { | 579 if (purple_buddy->proto_data == NULL) { |
579 purple_debug_error("QQ", "Null data of buddy %d\n", uid); | 580 purple_debug_error("QQ", "Can not find buddy data of %d\n", uid); |
580 return NULL; | 581 return NULL; |
581 } | 582 } |
582 return (qq_buddy *) purple_buddy->proto_data; | 583 return (qq_buddy *) purple_buddy->proto_data; |
583 } | 584 } |
584 | 585 |