summaryrefslogtreecommitdiff
path: root/src/tracker-extract/tracker-extract-oasis.c
diff options
context:
space:
mode:
authorCarlos Garnacho <carlosg@gnome.org>2011-03-10 13:15:32 +0100
committerMartyn Russell <martyn@lanedo.com>2011-03-15 15:44:04 +0000
commitf88855de168052645597166c5eb8cdab22002301 (patch)
tree7a6bdc50b221685bf6400674023c992ebee105e9 /src/tracker-extract/tracker-extract-oasis.c
parent557ac36e50842e6fb89c69bf269bfaa3349499a4 (diff)
downloadtracker-f88855de168052645597166c5eb8cdab22002301.tar.gz
tracker-extract: mass change extractors
The API has changed, now the following function must be exported: gboolean tracker_extract_get_metadata (const gchar *uri, const gchar *mimetype, TrackerSparqlBuilder *preupdate, TrackerSparqlBuilder *metadata); This was done in one go as there's no painless way to do this...
Diffstat (limited to 'src/tracker-extract/tracker-extract-oasis.c')
-rw-r--r--src/tracker-extract/tracker-extract-oasis.c54
1 files changed, 7 insertions, 47 deletions
diff --git a/src/tracker-extract/tracker-extract-oasis.c b/src/tracker-extract/tracker-extract-oasis.c
index e473b68a8..7ef868812 100644
--- a/src/tracker-extract/tracker-extract-oasis.c
+++ b/src/tracker-extract/tracker-extract-oasis.c
@@ -97,19 +97,11 @@ static void xml_text_handler_content (GMarkupParseContext *context,
gsize text_len,
gpointer user_data,
GError **error);
-static void extract_oasis (const gchar *filename,
- TrackerSparqlBuilder *preupdate,
- TrackerSparqlBuilder *metadata);
static void extract_oasis_content (const gchar *uri,
gulong total_bytes,
ODTFileType file_type,
TrackerSparqlBuilder *metadata);
-static TrackerExtractData extract_data[] = {
- { "application/vnd.oasis.opendocument.*", extract_oasis },
- { NULL, NULL }
-};
-
static void
extract_oasis_content (const gchar *uri,
gulong total_bytes,
@@ -164,17 +156,15 @@ extract_oasis_content (const gchar *uri,
g_markup_parse_context_free (context);
}
-static void
-extract_oasis (const gchar *uri,
- TrackerSparqlBuilder *preupdate,
- TrackerSparqlBuilder *metadata)
+G_MODULE_EXPORT gboolean
+tracker_extract_get_metadata (const gchar *uri,
+ const gchar *mime_used,
+ TrackerSparqlBuilder *preupdate,
+ TrackerSparqlBuilder *metadata)
{
TrackerConfig *config;
ODTMetadataParseInfo info;
ODTFileType file_type;
- GFile *file = NULL;
- GFileInfo *file_info = NULL;
- const gchar *mime_used;
GMarkupParseContext *context;
GMarkupParser parser = {
xml_start_element_handler_metadata,
@@ -212,30 +202,6 @@ extract_oasis (const gchar *uri,
tracker_gsf_parse_xml_in_zip (uri, "meta.xml", context, NULL);
g_markup_parse_context_free (context);
- /* Next, parse contents */
- file = g_file_new_for_uri (uri);
-
- if (!file) {
- g_warning ("Could not create GFile for URI:'%s'",
- uri);
- return;
- }
-
- file_info = g_file_query_info (file,
- G_FILE_ATTRIBUTE_STANDARD_CONTENT_TYPE,
- G_FILE_QUERY_INFO_NONE,
- NULL,
- NULL);
- g_object_unref (file);
-
- if (!file_info) {
- g_warning ("Could not get GFileInfo for URI:'%s'",
- uri);
- return;
- }
-
- mime_used = g_file_info_get_content_type (file_info);
-
if (g_ascii_strcasecmp (mime_used, "application/vnd.oasis.opendocument.text") == 0) {
file_type = FILE_TYPE_ODT;
} else if (g_ascii_strcasecmp (mime_used, "application/vnd.oasis.opendocument.presentation") == 0) {
@@ -247,13 +213,13 @@ extract_oasis (const gchar *uri,
file_type = FILE_TYPE_INVALID;
}
- g_object_unref (file_info);
-
/* Extract content with the given limitations */
extract_oasis_content (uri,
tracker_config_get_max_bytes (config),
file_type,
metadata);
+
+ return TRUE;
}
static void
@@ -542,9 +508,3 @@ xml_text_handler_content (GMarkupParseContext *context,
break;
}
}
-
-TrackerExtractData *
-tracker_extract_get_data (void)
-{
- return extract_data;
-}