Mercurial > pidgin.yaz
diff libpurple/protocols/qq/group_im.c @ 24019:147ada94a1d8
2008.08.16 - ccpaging <ecc_hy(at)hotmail.com>
* Rename group to room. If you used pidginqq before, this may create a new room with same title, you may
delete old one
* Replace purple_debug with purple_debug_info, purple_debug_warning, purple_debug_error
* Add server notice and server new, and two options to turn on/off
* Minor modify for reducing transaction's debug infor
* Minor modifies for system notice and QQ news.
* Add 4 new strings need translate compare with p10.
author | SHiNE CsyFeK <csyfek@gmail.com> |
---|---|
date | Thu, 11 Sep 2008 13:25:07 +0000 |
parents | 5f454b975a99 |
children | 23cec4360d4a 25f62d21b3f8 |
line wrap: on
line diff
--- a/libpurple/protocols/qq/group_im.c Thu Sep 11 04:19:37 2008 +0000 +++ b/libpurple/protocols/qq/group_im.c Thu Sep 11 13:25:07 2008 +0000 @@ -41,6 +41,7 @@ #include "header_info.h" #include "packet_parse.h" #include "qq_network.h" +#include "qq_process.h" #include "utils.h" typedef struct _qq_recv_group_im { @@ -85,12 +86,12 @@ if (bytes == data_len) /* create OK */ qq_send_room_cmd(gc, QQ_ROOM_CMD_SEND_MSG, group->id, raw_data, data_len); else - purple_debug(PURPLE_DEBUG_ERROR, "QQ", + purple_debug_error("QQ", "Fail creating group_im packet, expect %d bytes, build %d bytes\n", data_len, bytes); } /* this is the ACK */ -void qq_process_group_cmd_im(guint8 *data, gint len, PurpleConnection *gc) +void qq_process_group_cmd_im(guint8 *data, gint len, PurpleConnection *gc) { /* return should be the internal group id * but we have nothing to do with it */ @@ -98,7 +99,7 @@ } /* receive an application to join the group */ -void qq_process_recv_group_im_apply_join(guint8 *data, gint len, guint32 id, PurpleConnection *gc) +void qq_process_room_msg_apply_join(guint8 *data, gint len, guint32 id, PurpleConnection *gc) { guint32 ext_id, user_uid; guint8 type8; @@ -119,8 +120,8 @@ bytes += convert_as_pascal_string(data + bytes, &reason_utf8, QQ_CHARSET_DEFAULT); - msg = g_strdup_printf(_("User %d requested to join group %d"), user_uid, ext_id); - reason = g_strdup_printf(_("Reason: %s"), reason_utf8); + msg = g_strdup_printf(_("%d requested to join Qun %d"), user_uid, ext_id); + reason = g_strdup_printf(_("Message: %s"), reason_utf8); g = g_new0(group_member_opt, 1); g->gc = gc; @@ -149,7 +150,7 @@ } /* the request to join a group is rejected */ -void qq_process_recv_group_im_been_rejected(guint8 *data, gint len, guint32 id, PurpleConnection *gc) +void qq_process_room_msg_been_rejected(guint8 *data, gint len, guint32 id, PurpleConnection *gc) { guint32 ext_id, admin_uid; guint8 type8; @@ -170,14 +171,14 @@ bytes += convert_as_pascal_string(data + bytes, &reason_utf8, QQ_CHARSET_DEFAULT); msg = g_strdup_printf - (_("Your request to join group %d has been rejected by admin %d"), ext_id, admin_uid); - reason = g_strdup_printf(_("Reason: %s"), reason_utf8); + (_("Your request to join Qun %d has been rejected by admin %d"), ext_id, admin_uid); + reason = g_strdup_printf(_("Message: %s"), reason_utf8); purple_notify_warning(gc, _("QQ Qun Operation"), msg, reason); group = qq_room_search_id(gc, id); if (group != NULL) { - group->my_status = QQ_GROUP_MEMBER_STATUS_NOT_MEMBER; + group->my_role = QQ_ROOM_ROLE_NO; qq_group_refresh(gc, group); } @@ -187,7 +188,7 @@ } /* the request to join a group is approved */ -void qq_process_recv_group_im_been_approved(guint8 *data, gint len, guint32 id, PurpleConnection *gc) +void qq_process_room_msg_been_approved(guint8 *data, gint len, guint32 id, PurpleConnection *gc) { guint32 ext_id, admin_uid; guint8 type8; @@ -208,13 +209,13 @@ bytes += convert_as_pascal_string(data + bytes, &reason_utf8, QQ_CHARSET_DEFAULT); msg = g_strdup_printf - (_("Your request to join group %d has been approved by admin %d"), ext_id, admin_uid); + (_("Your request to join Qun %d has been approved by admin %d"), ext_id, admin_uid); purple_notify_warning(gc, _("QQ Qun Operation"), msg, NULL); group = qq_room_search_id(gc, id); if (group != NULL) { - group->my_status = QQ_GROUP_MEMBER_STATUS_IS_MEMBER; + group->my_role = QQ_ROOM_ROLE_YES; qq_group_refresh(gc, group); } @@ -223,7 +224,7 @@ } /* process the packet when removed from a group */ -void qq_process_recv_group_im_been_removed(guint8 *data, gint len, guint32 id, PurpleConnection *gc) +void qq_process_room_msg_been_removed(guint8 *data, gint len, guint32 id, PurpleConnection *gc) { guint32 ext_id, uid; guint8 type8; @@ -241,12 +242,12 @@ g_return_if_fail(ext_id > 0 && uid > 0); - msg = g_strdup_printf(_("You [%d] have left group \"%d\""), uid, ext_id); + msg = g_strdup_printf(_("[%d] removed from Qun \"%d\""), uid, ext_id); purple_notify_info(gc, _("QQ Qun Operation"), msg, NULL); group = qq_room_search_id(gc, id); if (group != NULL) { - group->my_status = QQ_GROUP_MEMBER_STATUS_NOT_MEMBER; + group->my_role = QQ_ROOM_ROLE_NO; qq_group_refresh(gc, group); } @@ -254,7 +255,7 @@ } /* process the packet when added to a group */ -void qq_process_recv_group_im_been_added(guint8 *data, gint len, guint32 id, PurpleConnection *gc) +void qq_process_room_msg_been_added(guint8 *data, gint len, guint32 id, PurpleConnection *gc) { guint32 ext_id, uid; guint8 type8; @@ -272,18 +273,18 @@ g_return_if_fail(ext_id > 0 && uid > 0); - msg = g_strdup_printf(_("You [%d] have been added to group \"%d\""), uid, ext_id); - purple_notify_info(gc, _("QQ Qun Operation"), msg, _("This group has been added to your buddy list")); + msg = g_strdup_printf(_("[%d] added to Qun \"%d\""), uid, ext_id); + purple_notify_info(gc, _("QQ Qun Operation"), msg, _("Qun is in buddy list")); group = qq_room_search_id(gc, id); if (group != NULL) { - group->my_status = QQ_GROUP_MEMBER_STATUS_IS_MEMBER; + group->my_role = QQ_ROOM_ROLE_YES; qq_group_refresh(gc, group); } else { /* no such group, try to create a dummy first, and then update */ group = qq_group_create_internal_record(gc, id, ext_id, NULL); - group->my_status = QQ_GROUP_MEMBER_STATUS_IS_MEMBER; + group->my_role = QQ_ROOM_ROLE_YES; qq_group_refresh(gc, group); - qq_send_room_cmd_only(gc, QQ_ROOM_CMD_GET_INFO, group->id); + qq_room_update(gc, 0, group->id); /* the return of this cmd will automatically update the group in blist */ } @@ -291,7 +292,7 @@ } /* recv an IM from a group chat */ -void qq_process_recv_group_im(guint8 *data, gint data_len, guint32 id, PurpleConnection *gc, guint16 im_type) +void qq_process_room_msg_normal(guint8 *data, gint data_len, guint32 id, PurpleConnection *gc, guint16 im_type) { gchar *msg_with_purple_smiley, *msg_utf8_encoded, *im_src_name; guint16 unknown; @@ -310,7 +311,9 @@ qd = (qq_data *) gc->proto_data; - /* qq_hex_dump(PURPLE_DEBUG_INFO, "QQ", data, data_len, "group im hex dump"); */ +#if 0 + qq_hex_dump(PURPLE_DEBUG_INFO, "QQ", data, data_len, "group im hex dump"); +#endif im_group = g_newa(qq_recv_group_im, 1); @@ -374,13 +377,13 @@ group = qq_room_search_id(gc, id); g_return_if_fail(group != NULL); - conv = purple_find_conversation_with_account(PURPLE_CONV_TYPE_CHAT, group->group_name_utf8, purple_connection_get_account(gc)); + conv = purple_find_conversation_with_account(PURPLE_CONV_TYPE_CHAT, group->title_utf8, purple_connection_get_account(gc)); if (conv == NULL && purple_prefs_get_bool("/plugins/prpl/qq/prompt_group_msg_on_recv")) { /* New conv should open, get group info*/ - qq_send_room_cmd_only(gc, QQ_ROOM_CMD_GET_INFO, group->id); - - serv_got_joined_chat(gc, qd->channel++, group->group_name_utf8); - conv = purple_find_conversation_with_account(PURPLE_CONV_TYPE_CHAT, group->group_name_utf8, purple_connection_get_account(gc)); + qq_room_update(gc, 0, group->id); + + serv_got_joined_chat(gc, qd->channel++, group->title_utf8); + conv = purple_find_conversation_with_account(PURPLE_CONV_TYPE_CHAT, group->title_utf8, purple_connection_get_account(gc)); } if (conv != NULL) {