| 57 g_return_if_fail(group != NULL); |
57 g_return_if_fail(group != NULL); |
| 58 |
58 |
| 59 list = group->members; |
59 list = group->members; |
| 60 while (list != NULL) { |
60 while (list != NULL) { |
| 61 member = (qq_buddy *) list->data; |
61 member = (qq_buddy *) list->data; |
| 62 member->status = QQ_BUDDY_ONLINE_OFFLINE; |
62 member->status = QQ_BUDDY_CHANGE_TO_OFFLINE; |
| 63 list = list->next; |
63 list = list->next; |
| 64 } |
64 } |
| 65 } |
65 } |
| 66 |
66 |
| 67 /* send packet to get info for each group member */ |
67 /* send packet to get info for each group member */ |
| 187 purple_debug_info("QQ", "group \"%s\" has %d members\n", group->title_utf8, num); |
187 purple_debug_info("QQ", "group \"%s\" has %d members\n", group->title_utf8, num); |
| 188 |
188 |
| 189 if (group->creator_uid == qd->uid) |
189 if (group->creator_uid == qd->uid) |
| 190 group->my_role = QQ_ROOM_ROLE_ADMIN; |
190 group->my_role = QQ_ROOM_ROLE_ADMIN; |
| 191 |
191 |
| |
192 /* filter \r\n in notice */ |
| |
193 qq_filter_str(notice); |
| |
194 group->notice_utf8 = strdup(notice); |
| |
195 g_free(notice); |
| |
196 |
| 192 qq_group_refresh(gc, group); |
197 qq_group_refresh(gc, group); |
| 193 |
198 |
| 194 purple_conv = purple_find_conversation_with_account(PURPLE_CONV_TYPE_CHAT, |
199 purple_conv = purple_find_conversation_with_account(PURPLE_CONV_TYPE_CHAT, |
| 195 group->title_utf8, purple_connection_get_account(gc)); |
200 group->title_utf8, purple_connection_get_account(gc)); |
| 196 if(NULL == purple_conv) { |
201 if(NULL == purple_conv) { |
| 197 purple_debug_warning("QQ", |
202 purple_debug_warning("QQ", |
| 198 "Conversation \"%s\" is not open, do not set topic\n", group->title_utf8); |
203 "Conversation \"%s\" is not open, do not set topic\n", group->title_utf8); |
| 199 return; |
204 return; |
| 200 } |
205 } |
| 201 |
206 |
| 202 /* filter \r\n in notice */ |
207 purple_debug_info("QQ", "Set chat topic to %s\n", group->notice_utf8); |
| 203 qq_filter_str(notice); |
|
| 204 group->notice_utf8 = strdup(notice); |
|
| 205 g_free(notice); |
|
| 206 |
|
| 207 purple_conv_chat_set_topic(PURPLE_CONV_CHAT(purple_conv), NULL, group->notice_utf8); |
208 purple_conv_chat_set_topic(PURPLE_CONV_CHAT(purple_conv), NULL, group->notice_utf8); |
| 208 } |
209 } |
| 209 |
210 |
| 210 void qq_process_room_cmd_get_onlines(guint8 *data, gint len, PurpleConnection *gc) |
211 void qq_process_room_cmd_get_onlines(guint8 *data, gint len, PurpleConnection *gc) |
| 211 { |
212 { |