comparison libpurple/protocols/qq/qq.c @ 24148:1bdf7b602684

2008.10.07 - ccpaging <ccpaging(at)gmail.com> * Update qun conversation * Drop group_conv.c and group_conv.h
author SHiNE CsyFeK <csyfek@gmail.com>
date Wed, 22 Oct 2008 14:58:32 +0000
parents 0a92aa673a33
children 818ab62006f5
comparison
equal deleted inserted replaced
24147:0a92aa673a33 24148:1bdf7b602684
372 } 372 }
373 373
374 /* we can show tiny icons on the four corners of buddy icon, */ 374 /* we can show tiny icons on the four corners of buddy icon, */
375 static const char *qq_list_emblem(PurpleBuddy *b) 375 static const char *qq_list_emblem(PurpleBuddy *b)
376 { 376 {
377 /* each char** are refering to a filename in pixmaps/purple/status/default/ */ 377 PurpleAccount *account;
378 qq_buddy *q_bud; 378 PurpleConnection *gc;
379 379 qq_data *qd;
380 if (!b || !(q_bud = b->proto_data)) { 380 qq_buddy *buddy;
381
382 if (!b || !(account = b->account) ||
383 !(gc = purple_account_get_connection(account)) || !(qd = gc->proto_data))
381 return NULL; 384 return NULL;
382 } 385
383 386 buddy = (qq_buddy *)b->proto_data;
384 if (q_bud->comm_flag & QQ_COMM_FLAG_MOBILE) 387 if (!buddy) {
388 return "not-authorized";
389 }
390
391 if (buddy->comm_flag & QQ_COMM_FLAG_MOBILE)
385 return "mobile"; 392 return "mobile";
386 if (q_bud->comm_flag & QQ_COMM_FLAG_VIDEO) 393 if (buddy->comm_flag & QQ_COMM_FLAG_VIDEO)
387 return "video"; 394 return "video";
388 if (q_bud->comm_flag & QQ_COMM_FLAG_QQ_MEMBER) 395 if (buddy->comm_flag & QQ_COMM_FLAG_QQ_MEMBER)
389 return "qq_member"; 396 return "qq_member";
390 397
391 return NULL; 398 return NULL;
392 } 399 }
393 400
510 517
511 static void action_update_all_rooms(PurplePluginAction *action) 518 static void action_update_all_rooms(PurplePluginAction *action)
512 { 519 {
513 PurpleConnection *gc = (PurpleConnection *) action->context; 520 PurpleConnection *gc = (PurpleConnection *) action->context;
514 qq_data *qd; 521 qq_data *qd;
522
523 g_return_if_fail(NULL != gc && NULL != gc->proto_data);
515 qd = (qq_data *) gc->proto_data; 524 qd = (qq_data *) gc->proto_data;
516 525
517 if ( !qd->is_login ) { 526 if ( !qd->is_login ) {
518 return; 527 return;
519 } 528 }
524 static void action_modify_info_base(PurplePluginAction *action) 533 static void action_modify_info_base(PurplePluginAction *action)
525 { 534 {
526 PurpleConnection *gc = (PurpleConnection *) action->context; 535 PurpleConnection *gc = (PurpleConnection *) action->context;
527 qq_data *qd; 536 qq_data *qd;
528 537
538 g_return_if_fail(NULL != gc && NULL != gc->proto_data);
529 qd = (qq_data *) gc->proto_data; 539 qd = (qq_data *) gc->proto_data;
530 qq_request_buddy_info(gc, qd->uid, 0, QQ_BUDDY_INFO_MODIFY_BASE); 540 qq_request_buddy_info(gc, qd->uid, 0, QQ_BUDDY_INFO_MODIFY_BASE);
531 } 541 }
532 542
533 static void action_modify_info_ext(PurplePluginAction *action) 543 static void action_modify_info_ext(PurplePluginAction *action)
534 { 544 {
535 PurpleConnection *gc = (PurpleConnection *) action->context; 545 PurpleConnection *gc = (PurpleConnection *) action->context;
536 qq_data *qd; 546 qq_data *qd;
537 547
548 g_return_if_fail(NULL != gc && NULL != gc->proto_data);
538 qd = (qq_data *) gc->proto_data; 549 qd = (qq_data *) gc->proto_data;
539 qq_request_buddy_info(gc, qd->uid, 0, QQ_BUDDY_INFO_MODIFY_EXT); 550 qq_request_buddy_info(gc, qd->uid, 0, QQ_BUDDY_INFO_MODIFY_EXT);
540 } 551 }
541 552
542 static void action_modify_info_addr(PurplePluginAction *action) 553 static void action_modify_info_addr(PurplePluginAction *action)
543 { 554 {
544 PurpleConnection *gc = (PurpleConnection *) action->context; 555 PurpleConnection *gc = (PurpleConnection *) action->context;
545 qq_data *qd; 556 qq_data *qd;
546 557
558 g_return_if_fail(NULL != gc && NULL != gc->proto_data);
547 qd = (qq_data *) gc->proto_data; 559 qd = (qq_data *) gc->proto_data;
548 qq_request_buddy_info(gc, qd->uid, 0, QQ_BUDDY_INFO_MODIFY_ADDR); 560 qq_request_buddy_info(gc, qd->uid, 0, QQ_BUDDY_INFO_MODIFY_ADDR);
549 } 561 }
550 562
551 static void action_modify_info_contact(PurplePluginAction *action) 563 static void action_modify_info_contact(PurplePluginAction *action)
552 { 564 {
553 PurpleConnection *gc = (PurpleConnection *) action->context; 565 PurpleConnection *gc = (PurpleConnection *) action->context;
554 qq_data *qd; 566 qq_data *qd;
555 567
568 g_return_if_fail(NULL != gc && NULL != gc->proto_data);
556 qd = (qq_data *) gc->proto_data; 569 qd = (qq_data *) gc->proto_data;
557 qq_request_buddy_info(gc, qd->uid, 0, QQ_BUDDY_INFO_MODIFY_CONTACT); 570 qq_request_buddy_info(gc, qd->uid, 0, QQ_BUDDY_INFO_MODIFY_CONTACT);
558 } 571 }
559 572
560 static void action_change_password(PurplePluginAction *action) 573 static void action_change_password(PurplePluginAction *action)
561 { 574 {
575 PurpleConnection *gc = (PurpleConnection *) action->context;
576
577 g_return_if_fail(NULL != gc && NULL != gc->proto_data);
562 purple_notify_uri(NULL, "https://password.qq.com"); 578 purple_notify_uri(NULL, "https://password.qq.com");
563 } 579 }
564 580
565 /* show a brief summary of what we get from login packet */ 581 /* show a brief summary of what we get from login packet */
566 static void action_show_account_info(PurplePluginAction *action) 582 static void action_show_account_info(PurplePluginAction *action)
569 qq_data *qd; 585 qq_data *qd;
570 GString *info; 586 GString *info;
571 struct tm *tm_local; 587 struct tm *tm_local;
572 int index; 588 int index;
573 589
590 g_return_if_fail(NULL != gc && NULL != gc->proto_data);
574 qd = (qq_data *) gc->proto_data; 591 qd = (qq_data *) gc->proto_data;
575 info = g_string_new("<html><body>"); 592 info = g_string_new("<html><body>");
576 593
577 tm_local = localtime(&qd->login_time); 594 tm_local = localtime(&qd->login_time);
578 g_string_append_printf(info, _("<b>Login time</b>: %d-%d-%d, %d:%d:%d<br>\n"), 595 g_string_append_printf(info, _("<b>Login time</b>: %d-%d-%d, %d:%d:%d<br>\n"),