~lasall/pidgin-opensteamworks/debian

« back to all changes in this revision

Viewing changes to steam-mobile/libsteam.c

  • Committer: eionrobb
  • Date: 2012-08-24 02:03:04 UTC
  • Revision ID: svn-v4:8ca6c67d-4297-256d-f884-781da6d5760b:trunk:35
Attempt to prevent messages from being received in duplicate

Show diffs side-by-side

added added

removed removed

Lines of Context:
350
350
                {
351
351
                        if (json_object_has_member(message, "secure_message_id"))
352
352
                        {
353
 
                                steam_poll(sa, TRUE, (guint) json_object_get_int_member(message, "secure_message_id"));
354
 
                                sa->message = MAX(sa->message, (guint) json_object_get_int_member(obj, "secure_message_id"));
355
 
                        } else {
356
 
                                gchar *text, *html;
357
 
                                PurpleMessageFlags flags;
358
 
                                if (g_str_equal(type, "emote") || g_str_equal(type, "my_emote"))
 
353
                                guint secure_message_id = (guint) json_object_get_int_member(message, "secure_message_id");
 
354
                                steam_poll(sa, TRUE, secure_message_id);
 
355
                                sa->message = MAX(sa->message, secure_message_id);
 
356
                        } else {
 
357
                                guint new_timestamp = (guint) json_object_get_int_member(message, "timestamp");
 
358
                                if (new_timestamp > sa->last_message_timestamp)
359
359
                                {
360
 
                                        text = g_strconcat("/me ", json_object_get_string_member(message, "text"), NULL);
361
 
                                } else {
362
 
                                        text = g_strdup(json_object_get_string_member(message, "text"));
363
 
                                }
364
 
                                html = purple_strdup_withhtml(text);
365
 
                                if (g_str_has_prefix(type, "my_"))
366
 
                                        flags = PURPLE_MESSAGE_SEND;
367
 
                                else
368
 
                                        flags = PURPLE_MESSAGE_RECV;
369
 
                                serv_got_im(sa->pc, json_object_get_string_member(message, "steamid_from"), html, flags, time(NULL));
370
 
                                g_free(html);
371
 
                                g_free(text);
 
360
                                        gchar *text, *html;
 
361
                                        PurpleMessageFlags flags;
 
362
                                        if (g_str_equal(type, "emote") || g_str_equal(type, "my_emote"))
 
363
                                        {
 
364
                                                text = g_strconcat("/me ", json_object_get_string_member(message, "text"), NULL);
 
365
                                        } else {
 
366
                                                text = g_strdup(json_object_get_string_member(message, "text"));
 
367
                                        }
 
368
                                        html = purple_strdup_withhtml(text);
 
369
                                        if (g_str_has_prefix(type, "my_"))
 
370
                                                flags = PURPLE_MESSAGE_SEND;
 
371
                                        else
 
372
                                                flags = PURPLE_MESSAGE_RECV;
 
373
                                        serv_got_im(sa->pc, json_object_get_string_member(message, "steamid_from"), html, flags, time(NULL));
 
374
                                        g_free(html);
 
375
                                        g_free(text);
 
376
                                        
 
377
                                        sa->last_message_timestamp = new_timestamp;
 
378
                                }
372
379
                        }
373
380
                } else if (g_str_equal(type, "personastate"))
374
381
                {