comparison libpurple/protocols/qq/group_im.c @ 24149:818ab62006f5

2008.10.07 - ccpaging <ccpaging(at)gmail.com> * Update qq_buddy
author SHiNE CsyFeK <csyfek@gmail.com>
date Wed, 22 Oct 2008 14:59:55 +0000
parents 1bdf7b602684
children 237e5a94e11c
comparison
equal deleted inserted replaced
24148:1bdf7b602684 24149:818ab62006f5
80 80
81 /* refresh online member in group conversation window */ 81 /* refresh online member in group conversation window */
82 void qq_room_conv_set_onlines(PurpleConnection *gc, qq_group *group) 82 void qq_room_conv_set_onlines(PurpleConnection *gc, qq_group *group)
83 { 83 {
84 GList *names, *list, *flags; 84 GList *names, *list, *flags;
85 qq_buddy *member; 85 qq_buddy_data *bd;
86 gchar *member_name, *member_uid; 86 gchar *member_name, *member_uid;
87 PurpleConversation *conv; 87 PurpleConversation *conv;
88 gint flag; 88 gint flag;
89 gboolean is_find; 89 gboolean is_find;
90 g_return_if_fail(group != NULL); 90 g_return_if_fail(group != NULL);
100 names = NULL; 100 names = NULL;
101 flags = NULL; 101 flags = NULL;
102 102
103 list = group->members; 103 list = group->members;
104 while (list != NULL) { 104 while (list != NULL) {
105 member = (qq_buddy *) list->data; 105 bd = (qq_buddy_data *) list->data;
106 106
107 /* we need unique identifiers for everyone in the chat or else we'll 107 /* we need unique identifiers for everyone in the chat or else we'll
108 * run into problems with functions like get_cb_real_name from qq.c */ 108 * run into problems with functions like get_cb_real_name from qq.c */
109 member_name = (member->nickname != NULL && *(member->nickname) != '\0') ? 109 member_name = (bd->nickname != NULL && *(bd->nickname) != '\0') ?
110 g_strdup_printf("%s (%u)", member->nickname, member->uid) : 110 g_strdup_printf("%s (%u)", bd->nickname, bd->uid) :
111 g_strdup_printf("(%u)", member->uid); 111 g_strdup_printf("(%u)", bd->uid);
112 member_uid = g_strdup_printf("(%u)", member->uid); 112 member_uid = g_strdup_printf("(%u)", bd->uid);
113 113
114 flag = 0; 114 flag = 0;
115 /* TYPING to put online above OP and FOUNDER */ 115 /* TYPING to put online above OP and FOUNDER */
116 if (is_online(member->status)) flag |= (PURPLE_CBFLAGS_TYPING | PURPLE_CBFLAGS_VOICE); 116 if (is_online(bd->status)) flag |= (PURPLE_CBFLAGS_TYPING | PURPLE_CBFLAGS_VOICE);
117 if(1 == (member->role & 1)) flag |= PURPLE_CBFLAGS_OP; 117 if(1 == (bd->role & 1)) flag |= PURPLE_CBFLAGS_OP;
118 if(member->uid == group->creator_uid) flag |= PURPLE_CBFLAGS_FOUNDER; 118 if(bd->uid == group->creator_uid) flag |= PURPLE_CBFLAGS_FOUNDER;
119 119
120 is_find = TRUE; 120 is_find = TRUE;
121 if (purple_conv_chat_find_user(PURPLE_CONV_CHAT(conv), member_name)) 121 if (purple_conv_chat_find_user(PURPLE_CONV_CHAT(conv), member_name))
122 { 122 {
123 purple_conv_chat_user_set_flags(PURPLE_CONV_CHAT(conv), 123 purple_conv_chat_user_set_flags(PURPLE_CONV_CHAT(conv),
252 void qq_room_got_chat_in(PurpleConnection *gc, 252 void qq_room_got_chat_in(PurpleConnection *gc,
253 qq_group *group, guint32 uid_from, const gchar *msg, time_t in_time) 253 qq_group *group, guint32 uid_from, const gchar *msg, time_t in_time)
254 { 254 {
255 PurpleAccount *account = purple_connection_get_account(gc); 255 PurpleAccount *account = purple_connection_get_account(gc);
256 PurpleConversation *conv; 256 PurpleConversation *conv;
257 qq_buddy *buddy; 257 qq_buddy_data *bd;
258 gchar *from; 258 gchar *from;
259 259
260 g_return_if_fail(group != NULL); 260 g_return_if_fail(group != NULL);
261 261
262 conv = purple_find_conversation_with_account( 262 conv = purple_find_conversation_with_account(
268 if (conv == NULL) { 268 if (conv == NULL) {
269 return; 269 return;
270 } 270 }
271 271
272 if (uid_from != 0) { 272 if (uid_from != 0) {
273 buddy = qq_group_find_member_by_uid(group, uid_from); 273 bd = qq_group_find_member_by_uid(group, uid_from);
274 if (buddy == NULL || buddy->nickname == NULL) 274 if (bd == NULL || bd->nickname == NULL)
275 from = g_strdup_printf("%d", uid_from); 275 from = g_strdup_printf("%d", uid_from);
276 else 276 else
277 from = g_strdup(buddy->nickname); 277 from = g_strdup(bd->nickname);
278 } else { 278 } else {
279 from = g_strdup(""); 279 from = g_strdup("");
280 } 280 }
281 serv_got_chat_in(gc, 281 serv_got_chat_in(gc,
282 purple_conv_chat_get_id(PURPLE_CONV_CHAT(conv)), 282 purple_conv_chat_get_id(PURPLE_CONV_CHAT(conv)),