From 72da94f04198dc07f8161b54e56a336a29678255 Mon Sep 17 00:00:00 2001 From: David Laban Date: Tue, 17 May 2011 19:55:57 -0400 Subject: Store, save and test message-token and supersedes-token --- telepathy-logger/log-store-xml.c | 46 +++++++++++++++++++++++++++++++--------- 1 file changed, 36 insertions(+), 10 deletions(-) (limited to 'telepathy-logger/log-store-xml.c') diff --git a/telepathy-logger/log-store-xml.c b/telepathy-logger/log-store-xml.c index 4357d73..152f328 100644 --- a/telepathy-logger/log-store-xml.c +++ b/telepathy-logger/log-store-xml.c @@ -494,12 +494,13 @@ add_text_event (TplLogStoreXml *self, TpAccount *account; TplEntity *sender; const gchar *body_str; + const gchar *token_str; gchar *avatar_token = NULL; gchar *body = NULL; gchar *timestamp = NULL; gchar *contact_name = NULL; gchar *contact_id = NULL; - gchar *log_str = NULL; + GString *event = NULL; TpChannelTextMessageType msg_type; g_return_val_if_fail (error == NULL || *error == NULL, FALSE); @@ -535,29 +536,46 @@ add_text_event (TplLogStoreXml *self, avatar_token = g_markup_escape_text (tpl_entity_get_avatar_token (sender), -1); - log_str = g_strdup_printf ("" - "%s\n" LOG_FOOTER, timestamp, - contact_id, contact_name, + event = g_string_new (NULL); + g_string_printf (event, "%s\n" LOG_FOOTER, body); DEBUG ("writing text event from %s (ts %s)", contact_id, timestamp); ret = _log_store_xml_write_to_store (self, account, - _tpl_event_get_target (TPL_EVENT (message)), log_str, TPL_TYPE_TEXT_EVENT, - error); + _tpl_event_get_target (TPL_EVENT (message)), event->str, + TPL_TYPE_TEXT_EVENT, error); out: g_free (contact_id); g_free (contact_name); g_free (timestamp); g_free (body); - g_free (log_str); + g_string_free (event, TRUE); g_free (avatar_token); if (bus_daemon != NULL) @@ -1051,6 +1069,8 @@ parse_text_node (TplLogStoreXml *self, gchar *sender_name; gchar *sender_avatar_token; gchar *body; + gchar *message_token; + gchar *supersedes_token; gchar *is_user_str; gboolean is_user = FALSE; gchar *msg_type_str; @@ -1062,6 +1082,8 @@ parse_text_node (TplLogStoreXml *self, sender_name = (gchar *) xmlGetProp (node, (const xmlChar *) "name"); sender_avatar_token = (gchar *) xmlGetProp (node, (const xmlChar *) "token"); + message_token = (gchar *) xmlGetProp (node, (const xmlChar *) "message-token"); + supersedes_token = (gchar *) xmlGetProp (node, (const xmlChar *) "supersedes-token"); is_user_str = (gchar *) xmlGetProp (node, (const xmlChar *) "isuser"); msg_type_str = (gchar *) xmlGetProp (node, (const xmlChar *) "type"); @@ -1095,6 +1117,8 @@ parse_text_node (TplLogStoreXml *self, /* TplTextEvent */ "message-type", msg_type, "message", body, + "message-token", message_token, + "supersedes-token", supersedes_token, NULL); g_object_unref (sender); @@ -1103,6 +1127,8 @@ parse_text_node (TplLogStoreXml *self, xmlFree (sender_id); xmlFree (sender_name); xmlFree (body); + xmlFree (message_token); + xmlFree (supersedes_token); xmlFree (is_user_str); xmlFree (msg_type_str); xmlFree (sender_avatar_token); -- cgit v1.2.1