comparison libgaim/protocols/qq/group_opt.c @ 14404:8ff8f1c897b5

[gaim-migrate @ 17112] Fixed chat support. committer: Tailor Script <tailor@pidgin.im>
author Mark Huetsch <markhuetsch>
date Fri, 01 Sep 2006 11:03:18 +0000
parents 85f3808ca472
children 6b8bc59414f0
comparison
equal deleted inserted replaced
14403:646dcf11b4eb 14404:8ff8f1c897b5
24 #include "notify.h" 24 #include "notify.h"
25 #include "request.h" 25 #include "request.h"
26 26
27 #include "buddy_info.h" 27 #include "buddy_info.h"
28 #include "char_conv.h" 28 #include "char_conv.h"
29 /*#include "group_admindlg.h" */
30 #include "group_find.h" 29 #include "group_find.h"
31 #include "group_hash.h" 30 #include "group_internal.h"
32 #include "group_info.h" 31 #include "group_info.h"
33 #include "group_join.h" 32 #include "group_join.h"
34 #include "group_network.h" 33 #include "group_network.h"
35 #include "group_opt.h" 34 #include "group_opt.h"
36 #include "packet_parse.h" 35 #include "packet_parse.h"
106 105
107 static void _qq_group_reject_application_real(group_member_opt *g, gchar *msg_utf8) 106 static void _qq_group_reject_application_real(group_member_opt *g, gchar *msg_utf8)
108 { 107 {
109 qq_group *group; 108 qq_group *group;
110 g_return_if_fail(g != NULL && g->gc != NULL && g->internal_group_id > 0 && g->member > 0); 109 g_return_if_fail(g != NULL && g->gc != NULL && g->internal_group_id > 0 && g->member > 0);
111 group = qq_group_find_by_internal_group_id(g->gc, g->internal_group_id); 110 group = qq_group_find_by_id(g->gc, g->internal_group_id, QQ_INTERNAL_ID);
112 g_return_if_fail(group != NULL); 111 g_return_if_fail(group != NULL);
113 qq_send_cmd_group_auth(g->gc, group, QQ_GROUP_AUTH_REQUEST_REJECT, g->member, msg_utf8); 112 qq_send_cmd_group_auth(g->gc, group, QQ_GROUP_AUTH_REQUEST_REJECT, g->member, msg_utf8);
114 g_free(g); 113 g_free(g);
115 } 114 }
116 115
146 145
147 void qq_group_approve_application_with_struct(group_member_opt *g) 146 void qq_group_approve_application_with_struct(group_member_opt *g)
148 { 147 {
149 qq_group *group; 148 qq_group *group;
150 g_return_if_fail(g != NULL && g->gc != NULL && g->internal_group_id > 0 && g->member > 0); 149 g_return_if_fail(g != NULL && g->gc != NULL && g->internal_group_id > 0 && g->member > 0);
151 group = qq_group_find_by_internal_group_id(g->gc, g->internal_group_id); 150 group = qq_group_find_by_id(g->gc, g->internal_group_id, QQ_INTERNAL_ID);
152 g_return_if_fail(group != NULL); 151 g_return_if_fail(group != NULL);
153 qq_send_cmd_group_auth(g->gc, group, QQ_GROUP_AUTH_REQUEST_APPROVE, g->member, ""); 152 qq_send_cmd_group_auth(g->gc, group, QQ_GROUP_AUTH_REQUEST_APPROVE, g->member, "");
154 qq_group_find_or_add_member(g->gc, group, g->member); 153 qq_group_find_or_add_member(g->gc, group, g->member);
155 g_free(g); 154 g_free(g);
156 } 155 }
219 218
220 read_packet_dw(data, cursor, len, &internal_group_id); 219 read_packet_dw(data, cursor, len, &internal_group_id);
221 g_return_if_fail(internal_group_id > 0); 220 g_return_if_fail(internal_group_id > 0);
222 221
223 /* we should have its info locally */ 222 /* we should have its info locally */
224 group = qq_group_find_by_internal_group_id(gc, internal_group_id); 223 group = qq_group_find_by_id(gc, internal_group_id, QQ_INTERNAL_ID);
225 g_return_if_fail(group != NULL); 224 g_return_if_fail(group != NULL);
226 225
227 gaim_debug(GAIM_DEBUG_INFO, "QQ", "Succeed in modify members for Qun %d\n", group->external_group_id); 226 gaim_debug(GAIM_DEBUG_INFO, "QQ", "Succeed in modify members for Qun %d\n", group->external_group_id);
228 227
229 gaim_notify_info(gc, _("QQ Qun Operation"), _("You have successfully modify Qun member"), NULL); 228 gaim_notify_info(gc, _("QQ Qun Operation"), _("You have successfully modify Qun member"), NULL);
288 287
289 read_packet_dw(data, cursor, len, &internal_group_id); 288 read_packet_dw(data, cursor, len, &internal_group_id);
290 g_return_if_fail(internal_group_id > 0); 289 g_return_if_fail(internal_group_id > 0);
291 290
292 /* we should have its info locally */ 291 /* we should have its info locally */
293 group = qq_group_find_by_internal_group_id(gc, internal_group_id); 292 group = qq_group_find_by_id(gc, internal_group_id, QQ_INTERNAL_ID);
294 g_return_if_fail(group != NULL); 293 g_return_if_fail(group != NULL);
295 294
296 gaim_debug(GAIM_DEBUG_INFO, "QQ", "Succeed in modify info for Qun %d\n", group->external_group_id); 295 gaim_debug(GAIM_DEBUG_INFO, "QQ", "Succeed in modify info for Qun %d\n", group->external_group_id);
297 qq_group_refresh(gc, group); 296 qq_group_refresh(gc, group);
298 297
343 static void qq_group_setup_with_gc_and_uid(gc_and_uid *g) 342 static void qq_group_setup_with_gc_and_uid(gc_and_uid *g)
344 { 343 {
345 qq_group *group; 344 qq_group *group;
346 g_return_if_fail(g != NULL && g->gc != NULL && g->uid > 0); 345 g_return_if_fail(g != NULL && g->gc != NULL && g->uid > 0);
347 346
348 group = qq_group_find_by_internal_group_id(g->gc, g->uid); 347 group = qq_group_find_by_id(g->gc, g->uid, QQ_INTERNAL_ID);
349 g_return_if_fail(group != NULL); 348 g_return_if_fail(group != NULL);
350 349
351 /* XXX insert UI code here */ 350 /* TODO insert UI code here */
352 /* qq_group_detail_window_show(g->gc, group); */ 351 /* qq_group_detail_window_show(g->gc, group); */
353 g_free(g); 352 g_free(g);
354 } 353 }
355 354
356 void qq_group_process_create_group_reply(guint8 *data, guint8 **cursor, gint len, GaimConnection *gc) 355 void qq_group_process_create_group_reply(guint8 *data, guint8 **cursor, gint len, GaimConnection *gc)
366 365
367 read_packet_dw(data, cursor, len, &internal_group_id); 366 read_packet_dw(data, cursor, len, &internal_group_id);
368 read_packet_dw(data, cursor, len, &external_group_id); 367 read_packet_dw(data, cursor, len, &external_group_id);
369 g_return_if_fail(internal_group_id > 0 && external_group_id); 368 g_return_if_fail(internal_group_id > 0 && external_group_id);
370 369
371 group = qq_group_create_by_id(gc, internal_group_id, external_group_id); 370 group = qq_group_create_internal_record(gc, internal_group_id, external_group_id, NULL);
372 group->my_status = QQ_GROUP_MEMBER_STATUS_IS_ADMIN; 371 group->my_status = QQ_GROUP_MEMBER_STATUS_IS_ADMIN;
373 group->creator_uid = qd->uid; 372 group->creator_uid = qd->uid;
374 qq_group_refresh(gc, group); 373 qq_group_refresh(gc, group);
375 374
376 qq_group_activate_group(gc, internal_group_id); 375 qq_group_activate_group(gc, internal_group_id);
425 424
426 read_packet_dw(data, cursor, len, &internal_group_id); 425 read_packet_dw(data, cursor, len, &internal_group_id);
427 g_return_if_fail(internal_group_id > 0); 426 g_return_if_fail(internal_group_id > 0);
428 427
429 /* we should have its info locally */ 428 /* we should have its info locally */
430 group = qq_group_find_by_internal_group_id(gc, internal_group_id); 429 group = qq_group_find_by_id(gc, internal_group_id, QQ_INTERNAL_ID);
431 g_return_if_fail(group != NULL); 430 g_return_if_fail(group != NULL);
432 431
433 gaim_debug(GAIM_DEBUG_INFO, "QQ", "Succeed in activate Qun %d\n", group->external_group_id); 432 gaim_debug(GAIM_DEBUG_INFO, "QQ", "Succeed in activate Qun %d\n", group->external_group_id);
434 } 433 }
435 434
443 442
444 internal_group_id_ptr = g_hash_table_lookup(data, "internal_group_id"); 443 internal_group_id_ptr = g_hash_table_lookup(data, "internal_group_id");
445 internal_group_id = strtol(internal_group_id_ptr, NULL, 10); 444 internal_group_id = strtol(internal_group_id_ptr, NULL, 10);
446 g_return_if_fail(internal_group_id > 0); 445 g_return_if_fail(internal_group_id > 0);
447 446
448 group = qq_group_find_by_internal_group_id(gc, internal_group_id); 447 group = qq_group_find_by_id(gc, internal_group_id, QQ_INTERNAL_ID);
449 g_return_if_fail(group != NULL); 448 g_return_if_fail(group != NULL);
450 449
451 /* XXX insert UI code here */ 450 /* XXX insert UI code here */
452 /* qq_group_detail_window_show(gc, group); */ 451 /* qq_group_detail_window_show(gc, group); */
453 } 452 }