diff options
Diffstat (limited to 'telepathy-logger/text-channel.c')
-rw-r--r-- | telepathy-logger/text-channel.c | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/telepathy-logger/text-channel.c b/telepathy-logger/text-channel.c index 899d3af..cb6efb7 100644 --- a/telepathy-logger/text-channel.c +++ b/telepathy-logger/text-channel.c @@ -307,7 +307,7 @@ get_message_pending_id (TpMessage *m) } -static guint +static guint64 get_message_timestamp (TpMessage *message) { GDateTime *datetime = g_date_time_new_now_utc (); @@ -332,6 +332,22 @@ get_message_timestamp (TpMessage *message) } +static guint64 +get_original_message_timestamp (TpMessage *message) +{ + gint64 timestamp; + + timestamp = tp_asv_get_int64 (tp_message_peek (message, 0), + "original-message-sent", NULL); + + if (timestamp == 0) + timestamp = tp_asv_get_int64 (tp_message_peek (message, 0), + "original-message-received", NULL); + + return timestamp; +} + + static void tpl_text_channel_store_message (TplTextChannel *self, TpMessage *message, @@ -403,6 +419,7 @@ tpl_text_channel_store_message (TplTextChannel *self, "timestamp", timestamp, "message-token", tp_message_get_token (message), "supersedes-token", tp_message_get_supersedes (message), + "original-timestamp", get_original_message_timestamp (message), /* TplTextEvent */ "message-type", type, "message", text, |