Mercurial > pidgin.yaz
comparison libpurple/protocols/qq/group_opt.c @ 24601:fecedf6d9ee1
propagate from branch 'im.pidgin.pidgin' (head 97d295a04f3a9852a3b29cf0df43d56d1ddcc672)
to branch 'im.pidgin.pidgin.openq' (head a0d99396d1603b53838d74cad4391ece34f3ebbf)
author | SHiNE CsyFeK <csyfek@gmail.com> |
---|---|
date | Fri, 05 Dec 2008 14:51:36 +0000 |
parents | a58d730c85f6 229d6984bd50 |
children | 8f757b2139d2 |
comparison
equal
deleted
inserted
replaced
24536:c457c635eb8f | 24601:fecedf6d9ee1 |
---|---|
200 | 200 |
201 /* we should have its info locally */ | 201 /* we should have its info locally */ |
202 rmd = qq_room_data_find(gc, id); | 202 rmd = qq_room_data_find(gc, id); |
203 g_return_if_fail(rmd != NULL); | 203 g_return_if_fail(rmd != NULL); |
204 | 204 |
205 purple_debug_info("QQ", "Succeed in modify members for room %d\n", rmd->ext_id); | 205 purple_debug_info("QQ", "Succeed in modify members for room %u\n", rmd->ext_id); |
206 | 206 |
207 qq_room_got_chat_in(gc, id, 0, _("Successfully changed Qun member"), now); | 207 qq_room_got_chat_in(gc, id, 0, _("Successfully changed Qun member"), now); |
208 } | 208 } |
209 | 209 |
210 void qq_room_change_info(PurpleConnection *gc, qq_room_data *rmd) | 210 void qq_room_change_info(PurpleConnection *gc, qq_room_data *rmd) |
244 | 244 |
245 bytes = 0; | 245 bytes = 0; |
246 bytes += qq_get32(&id, data + bytes); | 246 bytes += qq_get32(&id, data + bytes); |
247 g_return_if_fail(id > 0); | 247 g_return_if_fail(id > 0); |
248 | 248 |
249 purple_debug_info("QQ", "Succeed modify room info of %d\n", id); | 249 purple_debug_info("QQ", "Successfully modified room info of %u\n", id); |
250 | 250 |
251 qq_room_got_chat_in(gc, id, 0, _("Successfully changed Qun information"), now); | 251 qq_room_got_chat_in(gc, id, 0, _("Successfully changed Qun information"), now); |
252 } | 252 } |
253 | 253 |
254 /* we create a very simple room first, and then let the user to modify */ | 254 /* we create a very simple room first, and then let the user to modify */ |
337 rmd->creator_uid = qd->uid; | 337 rmd->creator_uid = qd->uid; |
338 | 338 |
339 qq_send_room_cmd_only(gc, QQ_ROOM_CMD_ACTIVATE, id); | 339 qq_send_room_cmd_only(gc, QQ_ROOM_CMD_ACTIVATE, id); |
340 qq_update_room(gc, 0, rmd->id); | 340 qq_update_room(gc, 0, rmd->id); |
341 | 341 |
342 purple_debug_info("QQ", "Succeed in create Qun, external ID %d\n", rmd->ext_id); | 342 purple_debug_info("QQ", "Succeed in create Qun, ext id %u\n", rmd->ext_id); |
343 | 343 |
344 add_req = g_new0(qq_room_req, 1); | 344 add_req = g_new0(qq_room_req, 1); |
345 add_req->gc = gc; | 345 add_req->gc = gc; |
346 add_req->id = id; | 346 add_req->id = id; |
347 | 347 |
348 purple_request_action(gc, _("QQ Qun Operation"), | 348 purple_request_action(gc, _("QQ Qun Operation"), |
349 _("You have successfully created a Qun"), | 349 _("You have successfully created a Qun"), |
350 _("Would you like to set detailed information now?"), | 350 _("Would you like to set up the detail information now?"), |
351 1, | 351 1, |
352 purple_connection_get_account(gc), NULL, NULL, | 352 purple_connection_get_account(gc), NULL, NULL, |
353 add_req, 2, | 353 add_req, 2, |
354 _("Setup"), G_CALLBACK(room_create_cb), | 354 _("Setup"), G_CALLBACK(room_create_cb), |
355 _("Cancel"), G_CALLBACK(room_req_cancel_cb)); | 355 _("Cancel"), G_CALLBACK(room_req_cancel_cb)); |
368 | 368 |
369 /* we should have its info locally */ | 369 /* we should have its info locally */ |
370 rmd = qq_room_data_find(gc, id); | 370 rmd = qq_room_data_find(gc, id); |
371 g_return_if_fail(rmd != NULL); | 371 g_return_if_fail(rmd != NULL); |
372 | 372 |
373 purple_debug_info("QQ", "Succeed in activate Qun %d\n", rmd->ext_id); | 373 purple_debug_info("QQ", "Succeed in activate Qun %u\n", rmd->ext_id); |
374 } | 374 } |
375 | 375 |
376 void qq_group_manage_group(PurpleConnection *gc, GHashTable *data) | 376 void qq_group_manage_group(PurpleConnection *gc, GHashTable *data) |
377 { | 377 { |
378 gchar *id_ptr; | 378 gchar *id_ptr; |
380 qq_room_data *rmd; | 380 qq_room_data *rmd; |
381 | 381 |
382 g_return_if_fail(data != NULL); | 382 g_return_if_fail(data != NULL); |
383 | 383 |
384 id_ptr = g_hash_table_lookup(data, QQ_ROOM_KEY_INTERNAL_ID); | 384 id_ptr = g_hash_table_lookup(data, QQ_ROOM_KEY_INTERNAL_ID); |
385 id = strtol(id_ptr, NULL, 10); | 385 id = strtoul(id_ptr, NULL, 10); |
386 g_return_if_fail(id > 0); | 386 g_return_if_fail(id > 0); |
387 | 387 |
388 rmd = qq_room_data_find(gc, id); | 388 rmd = qq_room_data_find(gc, id); |
389 g_return_if_fail(rmd != NULL); | 389 g_return_if_fail(rmd != NULL); |
390 | 390 |
419 add_req = g_new0(qq_room_req, 1); | 419 add_req = g_new0(qq_room_req, 1); |
420 add_req->gc = gc; | 420 add_req->gc = gc; |
421 add_req->id = id; | 421 add_req->id = id; |
422 add_req->member = member_id; | 422 add_req->member = member_id; |
423 | 423 |
424 purple_debug_info("QQ", "%d requested to join room, ext id %d\n", member_id, ext_id); | 424 purple_debug_info("QQ", "%u requested to join room, ext id %u\n", member_id, ext_id); |
425 | 425 |
426 rmd = qq_room_data_find(gc, id); | 426 rmd = qq_room_data_find(gc, id); |
427 g_return_if_fail(rmd != NULL); | 427 g_return_if_fail(rmd != NULL); |
428 if (qq_room_buddy_find(rmd, member_id)) { | 428 if (qq_room_buddy_find(rmd, member_id)) { |
429 purple_debug_info("QQ", "Approve join, buddy joined before\n"); | 429 purple_debug_info("QQ", "Approve join, buddy joined before\n"); |
430 msg = g_strdup_printf(_("%d requested to join Qun %d for %s"), | 430 msg = g_strdup_printf(_("%u requested to join Qun %u for %s"), |
431 member_id, ext_id, reason); | 431 member_id, ext_id, reason); |
432 qq_room_got_chat_in(gc, id, 0, msg, now); | 432 qq_room_got_chat_in(gc, id, 0, msg, now); |
433 qq_send_cmd_group_auth(gc, rmd, QQ_ROOM_AUTH_REQUEST_APPROVE, member_id, ""); | 433 qq_send_cmd_group_auth(gc, rmd, QQ_ROOM_AUTH_REQUEST_APPROVE, member_id, ""); |
434 g_free(msg); | 434 g_free(msg); |
435 g_free(reason); | 435 g_free(reason); |
438 | 438 |
439 if (purple_prefs_get_bool("/plugins/prpl/qq/auto_get_authorize_info")) { | 439 if (purple_prefs_get_bool("/plugins/prpl/qq/auto_get_authorize_info")) { |
440 qq_request_buddy_info(gc, member_id, 0, QQ_BUDDY_INFO_DISPLAY); | 440 qq_request_buddy_info(gc, member_id, 0, QQ_BUDDY_INFO_DISPLAY); |
441 } | 441 } |
442 who = uid_to_purple_name(member_id); | 442 who = uid_to_purple_name(member_id); |
443 msg = g_strdup_printf(_("%d request to join Qun %d"), member_id, ext_id); | 443 msg = g_strdup_printf(_("%u request to join Qun %u"), member_id, ext_id); |
444 | 444 |
445 purple_request_action(gc, _("QQ Qun Operation"), | 445 purple_request_action(gc, _("QQ Qun Operation"), |
446 msg, reason, | 446 msg, reason, |
447 PURPLE_DEFAULT_ACTION_NONE, | 447 PURPLE_DEFAULT_ACTION_NONE, |
448 purple_connection_get_account(gc), who, NULL, | 448 purple_connection_get_account(gc), who, NULL, |
451 _("Authorize"), G_CALLBACK(member_join_authorize_cb)); | 451 _("Authorize"), G_CALLBACK(member_join_authorize_cb)); |
452 | 452 |
453 g_free(who); | 453 g_free(who); |
454 g_free(msg); | 454 g_free(msg); |
455 g_free(reason); | 455 g_free(reason); |
456 g_free(reason); | |
457 } | 456 } |
458 | 457 |
459 /* the request to join a group is rejected */ | 458 /* the request to join a group is rejected */ |
460 void qq_process_room_buddy_rejected(guint8 *data, gint len, guint32 id, PurpleConnection *gc) | 459 void qq_process_room_buddy_rejected(guint8 *data, gint len, guint32 id, PurpleConnection *gc) |
461 { | 460 { |
476 g_return_if_fail(ext_id > 0 && admin_uid > 0); | 475 g_return_if_fail(ext_id > 0 && admin_uid > 0); |
477 | 476 |
478 bytes += qq_get_vstr(&reason, QQ_CHARSET_DEFAULT, data + bytes); | 477 bytes += qq_get_vstr(&reason, QQ_CHARSET_DEFAULT, data + bytes); |
479 | 478 |
480 msg = g_strdup_printf | 479 msg = g_strdup_printf |
481 (_("Failed to join Qun %d, operated by admin %d"), ext_id, admin_uid); | 480 (_("Failed to join Qun %u, operated by admin %u"), ext_id, admin_uid); |
482 | 481 |
483 purple_notify_warning(gc, _("QQ Qun Operation"), msg, reason); | 482 purple_notify_warning(gc, _("QQ Qun Operation"), msg, reason); |
484 | 483 |
485 qq_room_find_or_new(gc, id, ext_id); | 484 qq_room_find_or_new(gc, id, ext_id); |
486 rmd = qq_room_data_find(gc, id); | 485 rmd = qq_room_data_find(gc, id); |
518 rmd = qq_room_data_find(gc, id); | 517 rmd = qq_room_data_find(gc, id); |
519 if (rmd != NULL) { | 518 if (rmd != NULL) { |
520 rmd->my_role = QQ_ROOM_ROLE_YES; | 519 rmd->my_role = QQ_ROOM_ROLE_YES; |
521 } | 520 } |
522 | 521 |
523 msg = g_strdup_printf(_("<b>Joining Qun %d is approved by admin %d for %s</b>"), | 522 msg = g_strdup_printf(_("<b>Joinning Qun %u is approved by admin %u for %s</b>"), |
524 ext_id, admin_uid, reason); | 523 ext_id, admin_uid, reason); |
525 now = time(NULL); | 524 now = time(NULL); |
526 qq_room_got_chat_in(gc, id, 0, msg, now); | 525 qq_room_got_chat_in(gc, id, 0, msg, now); |
527 | 526 |
528 g_free(msg); | 527 g_free(msg); |
553 rmd = qq_room_data_find(gc, id); | 552 rmd = qq_room_data_find(gc, id); |
554 if (rmd != NULL) { | 553 if (rmd != NULL) { |
555 rmd->my_role = QQ_ROOM_ROLE_NO; | 554 rmd->my_role = QQ_ROOM_ROLE_NO; |
556 } | 555 } |
557 | 556 |
558 msg = g_strdup_printf(_("<b>Removed buddy %d.</b>"), uid); | 557 msg = g_strdup_printf(_("<b>Removed buddy %u.</b>"), uid); |
559 qq_room_got_chat_in(gc, id, 0, msg, now); | 558 qq_room_got_chat_in(gc, id, 0, msg, now); |
560 g_free(msg); | 559 g_free(msg); |
561 } | 560 } |
562 | 561 |
563 /* process the packet when added to a group */ | 562 /* process the packet when added to a group */ |
586 | 585 |
587 rmd->my_role = QQ_ROOM_ROLE_YES; | 586 rmd->my_role = QQ_ROOM_ROLE_YES; |
588 | 587 |
589 qq_update_room(gc, 0, rmd->id); | 588 qq_update_room(gc, 0, rmd->id); |
590 | 589 |
591 msg = g_strdup_printf(_("<b>New buddy %d joined.</b>"), uid); | 590 msg = g_strdup_printf(_("<b>New buddy %u joined.</b>"), uid); |
592 qq_room_got_chat_in(gc, id, 0, msg, now); | 591 qq_room_got_chat_in(gc, id, 0, msg, now); |
593 g_free(msg); | 592 g_free(msg); |
594 } | 593 } |
595 | 594 |