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