[tracker/extract-sparql] Add some options to get_sparql feature of libtracker-extract
- From: Philip Van Hoof <pvanhoof src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [tracker/extract-sparql] Add some options to get_sparql feature of libtracker-extract
- Date: Wed, 19 Dec 2012 22:23:30 +0000 (UTC)
commit 0023b2f20c20d39048a13080a3a02c588c5343f4
Author: Philip Van Hoof <philip codeminded be>
Date: Wed Dec 19 23:22:47 2012 +0100
Add some options to get_sparql feature of libtracker-extract
src/libtracker-extract/tracker-extract-sparql.c | 17 ++++++++++---
src/libtracker-extract/tracker-extract-sparql.h | 1 +
src/tracker-extract/tracker-controller.c | 3 +-
src/tracker-utils/tracker-sparql.c | 29 ++++++++++++++++++++++-
4 files changed, 44 insertions(+), 6 deletions(-)
---
diff --git a/src/libtracker-extract/tracker-extract-sparql.c b/src/libtracker-extract/tracker-extract-sparql.c
index 50e02ac..a62c752 100644
--- a/src/libtracker-extract/tracker-extract-sparql.c
+++ b/src/libtracker-extract/tracker-extract-sparql.c
@@ -35,6 +35,7 @@ typedef struct {
time_t last_access;
gboolean last_mod_set;
gboolean last_access_set;
+ gboolean available;
} ExtractionData;
static GSimpleAsyncResult*
@@ -214,15 +215,16 @@ on_fileinfo_received (GObject *file, GAsyncResult *result, gpointer user_data)
tracker_sparql_builder_object_iri (sparql, removable_device_urn);
tracker_sparql_builder_predicate (sparql, "tracker:available");
- tracker_sparql_builder_object_boolean (sparql, TRUE);
+ tracker_sparql_builder_object_boolean (sparql, data->available);
g_free (removable_device_urn);
g_object_unref (dest_file);
if (tracker_extract_module_manager_mimetype_is_handled (mime_type)) {
/* Next step, if handled by the extractor, get embedded metadata */
- tracker_extract_client_get_metadata (data->file, mime_type, data->graph_urn, NULL,
- extractor_get_embedded_metadata_cb,
+ tracker_extract_client_get_metadata (data->file, mime_type,
+ data->graph_urn ? data->graph_urn : "",
+ NULL, extractor_get_embedded_metadata_cb,
data);
} else {
gchar *sparql_s;
@@ -366,11 +368,14 @@ tracker_extract_get_sparql (const gchar *temp_file,
const gchar *graph,
time_t last_mod,
time_t last_access,
+ gboolean available,
GAsyncReadyCallback callback,
gpointer user_data)
{
ExtractionData *data = g_new0(ExtractionData, 1);
+ data->available = available;
+
if (graph) {
data->graph_urn = g_strdup (graph);
}
@@ -391,7 +396,11 @@ tracker_extract_get_sparql (const gchar *temp_file,
data->storage = tracker_storage_new ();
data->file = g_file_new_for_path(temp_file);
- data->url = g_strdup (dest_url);
+ if (dest_url) {
+ data->url = g_strdup (dest_url);
+ } else {
+ data->url = g_file_get_uri (data->file);
+ }
data->simple = g_simple_async_result_new (NULL, callback, user_data, tracker_extract_get_sparql);
tracker_sparql_connection_get_async (NULL, on_get_connection, data);
diff --git a/src/libtracker-extract/tracker-extract-sparql.h b/src/libtracker-extract/tracker-extract-sparql.h
index 1bad385..ff55271 100644
--- a/src/libtracker-extract/tracker-extract-sparql.h
+++ b/src/libtracker-extract/tracker-extract-sparql.h
@@ -36,6 +36,7 @@ void tracker_extract_get_sparql (const gchar *temp_file,
const gchar *graph,
time_t last_mod,
time_t last_access,
+ gboolean available,
GAsyncReadyCallback callback,
gpointer user_data);
diff --git a/src/tracker-extract/tracker-controller.c b/src/tracker-extract/tracker-controller.c
index 7689298..1187605 100644
--- a/src/tracker-extract/tracker-controller.c
+++ b/src/tracker-extract/tracker-controller.c
@@ -721,7 +721,8 @@ handle_method_call_get_metadata_fast (TrackerController *controller,
data = metadata_data_new (controller, uri, mime, invocation, request);
data->fd = fd;
- tracker_extract_file (priv->extractor, uri, mime, graph,
+ tracker_extract_file (priv->extractor, uri, mime,
+ strlen(graph) == 0 ? NULL : graph,
data->cancellable,
get_metadata_fast_cb, data);
priv->ongoing_tasks = g_list_prepend (priv->ongoing_tasks, data);
diff --git a/src/tracker-utils/tracker-sparql.c b/src/tracker-utils/tracker-sparql.c
index a46819f..0cbc230 100644
--- a/src/tracker-utils/tracker-sparql.c
+++ b/src/tracker-utils/tracker-sparql.c
@@ -53,6 +53,9 @@ static gchar *file;
static gchar *metadata_file_path;
static gchar *metadata_graph_urn;
static gchar *metadata_dest_url;
+static gchar *metadata_last_accessed;
+static gchar *metadata_last_modified;
+static gboolean metadata_available;
static gchar *query;
static gboolean update;
static gboolean list_classes;
@@ -80,6 +83,18 @@ static GOptionEntry entries[] = {
N_("Destination URL to use to get metadata as a sparql insert query for (uses tracker-extract)"),
N_("URL"),
},
+ { "metadata-available", 'a', 0, G_OPTION_ARG_NONE, &metadata_available,
+ N_("Value for tracker:available"),
+ NULL,
+ },
+ { "metadata-last-accessed", 'c', 0, G_OPTION_ARG_STRING, &metadata_last_accessed,
+ N_("Last accessed value"),
+ N_("ISO8601"),
+ },
+ { "metadata-last-modified", 'm', 0, G_OPTION_ARG_STRING, &metadata_last_modified,
+ N_("Last modified value"),
+ N_("ISO8601"),
+ },
{ "query", 'q', 0, G_OPTION_ARG_STRING, &query,
N_("SPARQL query"),
N_("SPARQL"),
@@ -589,9 +604,21 @@ main (int argc, char **argv)
if (metadata_file_path) {
GMainLoop *loop = g_main_loop_new (NULL, FALSE);
+ time_t last_accessed = 0;
+ time_t last_modified = 0;
+ GTimeVal val;
+
+ if (metadata_last_accessed && g_time_val_from_iso8601 (metadata_last_accessed, &val)) {
+ last_accessed = val.tv_sec;
+ }
+
+ if (metadata_last_modified && g_time_val_from_iso8601 (metadata_last_modified, &val)) {
+ last_modified = val.tv_sec;
+ }
+
tracker_extract_get_sparql (metadata_file_path,
metadata_dest_url, metadata_graph_urn,
- time(0), time(0),
+ last_modified, last_accessed, metadata_available,
on_metadata_get_sparql_finished, loop);
g_main_loop_run (loop);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]