[tracker/evolution] Code reuse (will squash this)



commit 3a9a6effd180db1c5ef6f50e3a3eff8b5d054983
Author: Philip Van Hoof <philip codeminded be>
Date:   Thu Sep 24 12:40:46 2009 +0200

    Code reuse (will squash this)

 src/plugins/evolution/tracker-evolution-plugin.c |  173 +++++++---------------
 1 files changed, 56 insertions(+), 117 deletions(-)
---
diff --git a/src/plugins/evolution/tracker-evolution-plugin.c b/src/plugins/evolution/tracker-evolution-plugin.c
index 8031837..0016c1f 100644
--- a/src/plugins/evolution/tracker-evolution-plugin.c
+++ b/src/plugins/evolution/tracker-evolution-plugin.c
@@ -332,11 +332,12 @@ send_sparql_commit (TrackerEvolutionPlugin *self, gboolean update)
 
 	if (priv->client) {
 		if (update) {
+			gchar *date_s = tracker_date_to_string (time (NULL));
 			gchar *update = g_strdup_printf ("DELETE { <" DATASOURCE_URN "> nie:contentLastModified ?d } "
 			                                 "WHERE { <" DATASOURCE_URN "> a nie:InformationElement ; nie:contentLastModified ?d } \n"
 			                                 "INSERT { <" DATASOURCE_URN "> nie:contentLastModified \"%s\" }",
-			                                 tracker_date_to_string (time (NULL)));
-
+			                                 date_s);
+			g_free (date_s);
 			tracker_resources_batch_sparql_update_async (priv->client, update, 
 			                                             on_replied, 
 			                                             g_object_ref (self));
@@ -349,6 +350,46 @@ send_sparql_commit (TrackerEvolutionPlugin *self, gboolean update)
 	}
 }
 
+static void 
+add_contact (TrackerSparqlBuilder *sparql, const gchar *predicate, const gchar *uri, gchar *value)
+{
+	gchar *email_uri, *email = NULL, *fullname = NULL;
+
+	get_email_and_fullname (value, &email, &fullname);
+
+	email_uri = tracker_uri_printf_escaped ("mailto:%s";, email); 
+
+	tracker_sparql_builder_subject_iri (sparql, email_uri);
+	tracker_sparql_builder_predicate (sparql, "rdf:type");
+	tracker_sparql_builder_object (sparql, "nco:EmailAddress");
+
+	tracker_sparql_builder_subject_iri (sparql, email_uri);
+	tracker_sparql_builder_predicate (sparql, "nco:emailAddress");
+	tracker_sparql_builder_object_string (sparql, email);
+
+	tracker_sparql_builder_subject_iri (sparql, uri);
+	tracker_sparql_builder_predicate (sparql, predicate);
+
+	tracker_sparql_builder_object_blank_open (sparql);
+
+	tracker_sparql_builder_predicate (sparql, "rdf:type");
+	tracker_sparql_builder_object (sparql, "nco:Contact");
+
+	if (fullname) {
+		tracker_sparql_builder_predicate (sparql, "nco:fullname");
+		tracker_sparql_builder_object_string (sparql, fullname);
+		g_free (fullname);
+	}
+
+	tracker_sparql_builder_predicate (sparql, "nco:hasEmailAddress");
+	tracker_sparql_builder_object_iri (sparql, email_uri);
+
+	tracker_sparql_builder_object_blank_close (sparql);
+
+	g_free (email_uri);
+	g_free (email);
+}
+
 static void
 process_fields (TrackerSparqlBuilder *sparql, gchar *uid, guint flags, 
                 time_t sent, gchar *subject, gchar *from, gchar *to, 
@@ -418,131 +459,29 @@ process_fields (TrackerSparqlBuilder *sparql, gchar *uid, guint flags,
 	g_ptr_array_add (values_temp, g_strdup ((flags & CAMEL_MESSAGE_FORWARDED) ? "True" : "False"));
 	*/
 
-	if (to && (arr = g_strsplit (to, ",", -1)) != NULL) {;
-	 for (i = 0; arr[i]; i++) {
-		g_strstrip (arr[i]);
-
-		if (arr[i] && g_utf8_validate (arr[i], -1, NULL)) {
-			gchar *email_uri, *email = NULL, *fullname = NULL;
-
-			get_email_and_fullname (arr[i], &email, &fullname);
-
-			email_uri = tracker_uri_printf_escaped ("mailto:%s";, email); 
-
-			tracker_sparql_builder_subject_iri (sparql, email_uri);
-			tracker_sparql_builder_predicate (sparql, "rdf:type");
-			tracker_sparql_builder_object (sparql, "nco:EmailAddress");
-
-			tracker_sparql_builder_subject_iri (sparql, email_uri);
-			tracker_sparql_builder_predicate (sparql, "nco:emailAddress");
-			tracker_sparql_builder_object_string (sparql, email);
-
-			tracker_sparql_builder_subject_iri (sparql, uri);
-			tracker_sparql_builder_predicate (sparql, "nmo:to");
-
-			tracker_sparql_builder_object_blank_open (sparql);
-
-			tracker_sparql_builder_predicate (sparql, "rdf:type");
-			tracker_sparql_builder_object (sparql, "nco:Contact");
+	if (to && (arr = g_strsplit (to, ",", -1)) != NULL) {
+		for (i = 0; arr[i]; i++) {
+			g_strstrip (arr[i]);
 
-			if (fullname) {
-				tracker_sparql_builder_predicate (sparql, "nco:fullname");
-				tracker_sparql_builder_object_string (sparql, fullname);
-				g_free (fullname);
+			if (g_utf8_validate (arr[i], -1, NULL)) {
+				add_contact (sparql, "nmo:to", uri, arr[i]);
 			}
-
-			tracker_sparql_builder_predicate (sparql, "nco:hasEmailAddress");
-			tracker_sparql_builder_object_iri (sparql, email_uri);
-
-			tracker_sparql_builder_object_blank_close (sparql);
-
-			g_free (email_uri);
-			g_free (email);
 		}
-	 }
-	 g_strfreev (arr);
+		g_strfreev (arr);
 	}
 
 	if (from && g_utf8_validate (from, -1, NULL)) {
-		gchar *email_uri, *email = NULL, *fullname = NULL;
-
-		get_email_and_fullname (from, &email, &fullname);
-
-		email_uri = tracker_uri_printf_escaped ("mailto:%s";, email); 
-
-		tracker_sparql_builder_subject_iri (sparql, email_uri);
-		tracker_sparql_builder_predicate (sparql, "rdf:type");
-		tracker_sparql_builder_object (sparql, "nco:EmailAddress");
-
-		tracker_sparql_builder_subject_iri (sparql, email_uri);
-		tracker_sparql_builder_predicate (sparql, "nco:emailAddress");
-		tracker_sparql_builder_object_string (sparql, email);
-
-		tracker_sparql_builder_subject_iri (sparql, uri);
-		tracker_sparql_builder_predicate (sparql, "nmo:from");
-
-		tracker_sparql_builder_object_blank_open (sparql);
-
-		tracker_sparql_builder_predicate (sparql, "rdf:type");
-		tracker_sparql_builder_object (sparql, "nco:Contact");
-
-		if (fullname) {
-			tracker_sparql_builder_predicate (sparql, "nco:fullname");
-			tracker_sparql_builder_object_string (sparql, fullname);
-			g_free (fullname);
-		}
-
-		tracker_sparql_builder_predicate (sparql, "nco:hasEmailAddress");
-		tracker_sparql_builder_object_iri (sparql, email_uri);
-
-		tracker_sparql_builder_object_blank_close (sparql);
-
-		g_free (email_uri);
-		g_free (email);
+		add_contact (sparql, "nmo:from", uri, arr[i]);
 	}
 
 	if (cc && (arr = g_strsplit (cc, ",", -1)) != NULL) {
-	 for (i = 0; arr[i]; i++) {
-		g_strstrip (arr[i]);
-		if (arr[i] && g_utf8_validate (arr[i], -1, NULL)) {
-			gchar *email_uri, *email = NULL, *fullname = NULL;
-
-			get_email_and_fullname (arr[i], &email, &fullname);
-
-			email_uri = tracker_uri_printf_escaped ("mailto:%s";, email); 
-
-			tracker_sparql_builder_subject_iri (sparql, email_uri);
-			tracker_sparql_builder_predicate (sparql, "rdf:type");
-			tracker_sparql_builder_object (sparql, "nco:EmailAddress");
-
-			tracker_sparql_builder_subject_iri (sparql, email_uri);
-			tracker_sparql_builder_predicate (sparql, "nco:emailAddress");
-			tracker_sparql_builder_object_string (sparql, email);
-
-			tracker_sparql_builder_subject_iri (sparql, uri);
-			tracker_sparql_builder_predicate (sparql, "nmo:cc");
-
-			tracker_sparql_builder_object_blank_open (sparql);
-
-			tracker_sparql_builder_predicate (sparql, "rdf:type");
-			tracker_sparql_builder_object (sparql, "nco:Contact");
-
-			if (fullname) {
-				tracker_sparql_builder_predicate (sparql, "nco:fullname");
-				tracker_sparql_builder_object_string (sparql, fullname);
-				g_free (fullname);
+		for (i = 0; arr[i]; i++) {
+			g_strstrip (arr[i]);
+			if (g_utf8_validate (arr[i], -1, NULL)) {
+				add_contact (sparql, "nmo:cc", uri, arr[i]);
 			}
-
-			tracker_sparql_builder_predicate (sparql, "nco:hasEmailAddress");
-			tracker_sparql_builder_object_iri (sparql, email_uri);
-
-			tracker_sparql_builder_object_blank_close (sparql);
-
-			g_free (email_uri);
-			g_free (email);
-		} 
-	 }
-	 g_strfreev (arr);
+		}
+		g_strfreev (arr);
 	}
 
 #if 0



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