summaryrefslogtreecommitdiff
path: root/src/tracker-extract/tracker-extract.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/tracker-extract/tracker-extract.c')
-rw-r--r--src/tracker-extract/tracker-extract.c93
1 files changed, 36 insertions, 57 deletions
diff --git a/src/tracker-extract/tracker-extract.c b/src/tracker-extract/tracker-extract.c
index a184078a7..b32f34ff6 100644
--- a/src/tracker-extract/tracker-extract.c
+++ b/src/tracker-extract/tracker-extract.c
@@ -87,8 +87,6 @@ typedef struct {
GAsyncResult *res;
gchar *file;
gchar *mimetype;
- gchar *graph;
- gchar *urn;
TrackerMimetypeInfo *mimetype_handlers;
@@ -296,13 +294,11 @@ get_file_metadata (TrackerExtractTask *task,
TrackerExtractInfo *info;
GFile *file;
gchar *mime_used = NULL;
- gint items = 0;
- gboolean success = FALSE;
*info_out = NULL;
file = g_file_new_for_uri (task->file);
- info = tracker_extract_info_new (file, task->mimetype, task->graph, task->urn);
+ info = tracker_extract_info_new (file, task->mimetype);
g_object_unref (file);
#ifdef HAVE_LIBMEDIAART
@@ -322,37 +318,25 @@ get_file_metadata (TrackerExtractTask *task,
*/
if (mime_used) {
if (task->cur_func) {
- TrackerSparqlBuilder *statements;
-
g_debug ("Using %s...",
task->cur_module ?
g_module_name (task->cur_module) :
"Dummy extraction");
- success = (task->cur_func) (info);
-
- statements = tracker_extract_info_get_metadata_builder (info);
- items = tracker_sparql_builder_get_length (statements);
-
- if (items > 0)
- tracker_sparql_builder_insert_close (statements);
-
- task->success = success;
+ task->success = (task->cur_func) (info);
}
g_free (mime_used);
}
- g_debug ("Done (%d objects added)\n", items);
-
- if (!success) {
+ if (!task->success) {
tracker_extract_info_unref (info);
info = NULL;
}
*info_out = info;
- return success;
+ return task->success;
}
/* This function is called on the thread calling g_cancellable_cancel() */
@@ -382,8 +366,6 @@ static TrackerExtractTask *
extract_task_new (TrackerExtract *extract,
const gchar *uri,
const gchar *mimetype,
- const gchar *graph,
- const gchar *urn,
GCancellable *cancellable,
GAsyncResult *res,
GError **error)
@@ -423,8 +405,6 @@ extract_task_new (TrackerExtract *extract,
task->res = (res) ? g_object_ref (res) : NULL;
task->file = g_strdup (uri);
task->mimetype = mimetype_used;
- task->graph = g_strdup (graph);
- task->urn = g_strdup (urn);
task->extract = extract;
if (task->cancellable) {
@@ -457,8 +437,6 @@ extract_task_free (TrackerExtractTask *task)
tracker_mimetype_info_free (task->mimetype_handlers);
}
- g_free (task->urn);
- g_free (task->graph);
g_free (task->mimetype);
g_free (task->file);
@@ -701,8 +679,6 @@ void
tracker_extract_file (TrackerExtract *extract,
const gchar *file,
const gchar *mimetype,
- const gchar *graph,
- const gchar *urn,
GCancellable *cancellable,
GAsyncReadyCallback cb,
gpointer user_data)
@@ -723,8 +699,8 @@ tracker_extract_file (TrackerExtract *extract,
async_task = g_task_new (extract, cancellable, cb, user_data);
- task = extract_task_new (extract, file, mimetype, graph, urn,
- cancellable, G_ASYNC_RESULT (async_task), &error);
+ task = extract_task_new (extract, file, mimetype, cancellable,
+ G_ASYNC_RESULT (async_task), &error);
if (error) {
g_warning ("Could not get mimetype, %s", error->message);
@@ -764,7 +740,8 @@ tracker_extract_get_media_art_process (TrackerExtract *extract)
void
tracker_extract_get_metadata_by_cmdline (TrackerExtract *object,
const gchar *uri,
- const gchar *mime)
+ const gchar *mime,
+ TrackerSerializationFormat output_format)
{
GError *error = NULL;
TrackerExtractPrivate *priv;
@@ -777,7 +754,7 @@ tracker_extract_get_metadata_by_cmdline (TrackerExtract *object,
g_return_if_fail (uri != NULL);
- task = extract_task_new (object, uri, mime, NULL, "_:file", NULL, NULL, &error);
+ task = extract_task_new (object, uri, mime, NULL, NULL, &error);
if (error) {
g_printerr ("%s, %s\n",
@@ -796,42 +773,44 @@ tracker_extract_get_metadata_by_cmdline (TrackerExtract *object,
while (task->cur_func) {
if (!filter_module (object, task->cur_module) &&
get_file_metadata (task, &info)) {
- const gchar *preupdate_str, *postupdate_str, *statements_str, *where;
- TrackerSparqlBuilder *builder;
+ TrackerResource *resource = tracker_extract_info_get_resource (info);
+
+ if (resource == NULL)
+ break;
no_data_or_modules = FALSE;
- preupdate_str = statements_str = postupdate_str = NULL;
- builder = tracker_extract_info_get_metadata_builder (info);
+ if (output_format == TRACKER_SERIALIZATION_FORMAT_SPARQL) {
+ TrackerSparqlBuilder *builder;
+ const char *text;
- if (tracker_sparql_builder_get_length (builder) > 0) {
- statements_str = tracker_sparql_builder_get_result (builder);
- }
+ builder = tracker_sparql_builder_new_update ();
- builder = tracker_extract_info_get_preupdate_builder (info);
+ /* If this was going into the tracker-store we'd generate a unique ID
+ * here, so that the data persisted across file renames.
+ */
+ tracker_resource_set_identifier (resource, uri);
- if (tracker_sparql_builder_get_length (builder) > 0) {
- preupdate_str = tracker_sparql_builder_get_result (builder);
- }
+ text = tracker_resource_print_sparql_update (resource, NULL, NULL);
- builder = tracker_extract_info_get_postupdate_builder (info);
+ g_print ("%s\n", text);
- if (tracker_sparql_builder_get_length (builder) > 0) {
- postupdate_str = tracker_sparql_builder_get_result (builder);
- }
+ g_free (text);
+ } else if (output_format == TRACKER_SERIALIZATION_FORMAT_TURTLE) {
+ char *turtle;
- where = tracker_extract_info_get_where_clause (info);
+ /* If this was going into the tracker-store we'd generate a unique ID
+ * here, so that the data persisted across file renames.
+ */
+ tracker_resource_set_identifier (resource, uri);
- g_print ("\n");
+ turtle = tracker_resource_print_turtle (resource, NULL);
- g_print ("SPARQL pre-update:\n--\n%s--\n\n",
- preupdate_str ? preupdate_str : "");
- g_print ("SPARQL item:\n--\n%s--\n\n",
- statements_str ? statements_str : "");
- g_print ("SPARQL where clause:\n--\n%s--\n\n",
- where ? where : "");
- g_print ("SPARQL post-update:\n--\n%s--\n\n",
- postupdate_str ? postupdate_str : "");
+ if (turtle) {
+ g_print ("%s\n", turtle);
+ g_free (turtle);
+ }
+ }
tracker_extract_info_unref (info);
break;