diff options
author | Carlos Garnacho <carlosg@gnome.org> | 2011-03-10 13:15:32 +0100 |
---|---|---|
committer | Martyn Russell <martyn@lanedo.com> | 2011-03-15 15:44:04 +0000 |
commit | f88855de168052645597166c5eb8cdab22002301 (patch) | |
tree | 7a6bdc50b221685bf6400674023c992ebee105e9 /src/tracker-extract/tracker-extract-oasis.c | |
parent | 557ac36e50842e6fb89c69bf269bfaa3349499a4 (diff) | |
download | tracker-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.c | 54 |
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; -} |