[tracker/tracker-store] tracker-indexer: Port evolution module to SparqlBuilder



commit ccbdb386e42294319df5e9e7a6a454b7643737ec
Author: Jürg Billeter <j bitron ch>
Date:   Wed Jun 24 08:41:41 2009 +0200

    tracker-indexer: Port evolution module to SparqlBuilder

 src/libtracker-common/tracker-sparql-builder.vala |    6 +++++
 src/tracker-indexer/modules/evolution-imap.c      |   26 ++++++++++++++------
 src/tracker-indexer/modules/evolution-pop.c       |   25 +++++++++++++------
 3 files changed, 41 insertions(+), 16 deletions(-)
---
diff --git a/src/libtracker-common/tracker-sparql-builder.vala b/src/libtracker-common/tracker-sparql-builder.vala
index 5a7829a..635c60b 100644
--- a/src/libtracker-common/tracker-sparql-builder.vala
+++ b/src/libtracker-common/tracker-sparql-builder.vala
@@ -162,6 +162,12 @@ public class Tracker.SparqlBuilder : Object {
 		object (literal.to_string ());
 	}
 
+	public void object_date (time_t literal) {
+		var tm = Time.gm (literal);
+
+		object_string ("%04d-%02d-%02dT%02d:%02d:%02d".printf (tm.year + 1900, tm.month + 1, tm.day, tm.hour, tm.minute, tm.second));
+	}
+
 	public void object_blank_open ()
 		requires (state == State.PREDICATE || state == State.OBJECT)
 	{
diff --git a/src/tracker-indexer/modules/evolution-imap.c b/src/tracker-indexer/modules/evolution-imap.c
index 59f07e1..56c1730 100644
--- a/src/tracker-indexer/modules/evolution-imap.c
+++ b/src/tracker-indexer/modules/evolution-imap.c
@@ -913,16 +913,24 @@ get_message_metadata (TrackerModuleFile *file)
 
 		metadata = tracker_module_metadata_new ();
 
-		tracker_module_metadata_add_string (metadata, uri, RDF_TYPE, NMO_PREFIX "Email");
+		tracker_sparql_builder_subject_iri (metadata->sparql, uri);
+		tracker_sparql_builder_predicate (metadata->sparql, "a");
+		tracker_sparql_builder_object (metadata->sparql, "nmo:Email");
 
-		tracker_module_metadata_add_date (metadata, uri, METADATA_EMAIL_DATE, t);
-		tracker_module_metadata_add_string (metadata, uri, METADATA_EMAIL_SENDER, from);
-		tracker_module_metadata_add_string (metadata, uri, METADATA_EMAIL_SUBJECT, subject);
+		tracker_sparql_builder_predicate (metadata->sparql, "nmo:sentDate");
+		tracker_sparql_builder_object_date (metadata->sparql, &t);
+
+		tracker_sparql_builder_predicate (metadata->sparql, "nmo:sender");
+		tracker_sparql_builder_object_string (metadata->sparql, from);
+
+		tracker_sparql_builder_predicate (metadata->sparql, "nmo:messageSubject");
+		tracker_sparql_builder_object_string (metadata->sparql, subject);
 
 		list = get_recipient_list (to);
 
 		for (l = list; l; l = l->next) {
-			tracker_module_metadata_add_string (metadata, uri, METADATA_EMAIL_SENT_TO, l->data);
+			tracker_sparql_builder_predicate (metadata->sparql, "nmo:to");
+			tracker_sparql_builder_object_string (metadata->sparql, l->data);
 			g_free (l->data);
 		}
 
@@ -931,7 +939,8 @@ get_message_metadata (TrackerModuleFile *file)
 		list = get_recipient_list (cc);
 
 		for (l = list; l; l = l->next) {
-			tracker_module_metadata_add_string (metadata, uri, METADATA_EMAIL_CC, l->data);
+			tracker_sparql_builder_predicate (metadata->sparql, "nmo:cc");
+			tracker_sparql_builder_object_string (metadata->sparql, l->data);
 			g_free (l->data);
 		}
 
@@ -1056,8 +1065,9 @@ get_attachment_metadata (TrackerModuleFile *file,
 	 * Evolution opening the specific attachment anyway */
 
 	uri = g_strdup_printf ("%s#%s", tmp, mime_file);
-
-	tracker_module_metadata_add_string (metadata, uri, RDF_TYPE, NMO_PREFIX "Attachment");
+	tracker_sparql_builder_subject_iri (metadata->sparql, uri);
+	tracker_sparql_builder_predicate (metadata->sparql, "a");
+	tracker_sparql_builder_object (metadata->sparql, "nmo:Attachment");
 
 	evolution_common_get_wrapper_metadata (wrapper, metadata, uri);
 
diff --git a/src/tracker-indexer/modules/evolution-pop.c b/src/tracker-indexer/modules/evolution-pop.c
index 1cbfabe..549cb9c 100644
--- a/src/tracker-indexer/modules/evolution-pop.c
+++ b/src/tracker-indexer/modules/evolution-pop.c
@@ -339,18 +339,25 @@ get_message_metadata (TrackerModuleFile *file, GMimeMessage *message)
 
 	metadata = tracker_module_metadata_new ();
 
-	tracker_module_metadata_add_string (metadata, uri, RDF_TYPE, NMO_PREFIX "Email");
+	tracker_sparql_builder_subject_iri (metadata->sparql, uri);
+	tracker_sparql_builder_predicate (metadata->sparql, "a");
+	tracker_sparql_builder_object (metadata->sparql, "nmo:Email");
 
 	g_mime_message_get_date (message, &t, NULL);
+	tracker_sparql_builder_predicate (metadata->sparql, "nmo:sentDate");
+	tracker_sparql_builder_object_date (metadata->sparql, &t);
 
-	tracker_module_metadata_add_date (metadata, uri, METADATA_EMAIL_DATE, t);
-	tracker_module_metadata_add_string (metadata, uri, METADATA_EMAIL_SENDER, g_mime_message_get_sender (message));
-	tracker_module_metadata_add_string (metadata, uri, METADATA_EMAIL_SUBJECT, g_mime_message_get_subject (message));
+	tracker_sparql_builder_predicate (metadata->sparql, "nmo:sender");
+	tracker_sparql_builder_object_string (metadata->sparql, g_mime_message_get_sender (message));
+
+	tracker_sparql_builder_predicate (metadata->sparql, "nmo:messageSubject");
+	tracker_sparql_builder_object_string (metadata->sparql, g_mime_message_get_subject (message));
 
 	list = get_message_recipients (message, GMIME_RECIPIENT_TYPE_TO);
 
 	for (l = list; l; l = l->next) {
-		tracker_module_metadata_add_string (metadata, uri, METADATA_EMAIL_SENT_TO, l->data);
+		tracker_sparql_builder_predicate (metadata->sparql, "nmo:to");
+		tracker_sparql_builder_object_string (metadata->sparql, l->data);
 		g_free (l->data);
 	}
 
@@ -359,7 +366,8 @@ get_message_metadata (TrackerModuleFile *file, GMimeMessage *message)
 	list = get_message_recipients (message, GMIME_RECIPIENT_TYPE_CC);
 
 	for (l = list; l; l = l->next) {
-		tracker_module_metadata_add_string (metadata, uri, METADATA_EMAIL_CC, l->data);
+		tracker_sparql_builder_predicate (metadata->sparql, "nmo:cc");
+		tracker_sparql_builder_object_string (metadata->sparql, l->data);
 		g_free (l->data);
 	}
 
@@ -394,8 +402,9 @@ get_attachment_metadata (TrackerModuleFile *file, GMimePart *part)
 	 * Evolution opening the specific attachment anyway */
 
 	uri = g_strdup_printf ("%s#%s", tmp, g_mime_part_get_content_id (part));
-
-	tracker_module_metadata_add_string (metadata, uri, RDF_TYPE, NMO_PREFIX "Attachment");
+	tracker_sparql_builder_subject_iri (metadata->sparql, uri);
+	tracker_sparql_builder_predicate (metadata->sparql, "a");
+	tracker_sparql_builder_object (metadata->sparql, "nmo:Attachment");
 
 	evolution_common_get_wrapper_metadata (content, metadata, uri);
 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]