summaryrefslogtreecommitdiff
path: root/src/tracker-extract/tracker-extract-iso.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/tracker-extract/tracker-extract-iso.c')
-rw-r--r--src/tracker-extract/tracker-extract-iso.c50
1 files changed, 23 insertions, 27 deletions
diff --git a/src/tracker-extract/tracker-extract-iso.c b/src/tracker-extract/tracker-extract-iso.c
index eeaadb6ec..66f3c629d 100644
--- a/src/tracker-extract/tracker-extract-iso.c
+++ b/src/tracker-extract/tracker-extract-iso.c
@@ -35,7 +35,7 @@ G_MODULE_EXPORT gboolean
tracker_extract_get_metadata (TrackerExtractInfo *info_)
{
/* NOTE: This function has to exist, tracker-extract checks
- * the symbole table for this function and if it doesn't
+ * the symbol table for this function and if it doesn't
* exist, the module is not loaded to be used as an extractor.
*/
@@ -53,17 +53,18 @@ tracker_extract_get_metadata (TrackerExtractInfo *info_)
gboolean bootable;
const gchar *id;
const gchar *name;
- GList *languages, *l;
- TrackerSparqlBuilder *metadata;
-
- metadata = tracker_extract_info_get_metadata_builder (info_);
+ GList *languages, *l;
+ TrackerResource *metadata;
file = tracker_extract_info_get_file (info_);
filename = g_file_get_path (file);
+ metadata = tracker_resource_new (NULL);
+
media = osinfo_media_create_from_location (filename, NULL, &error);
if (error != NULL) {
if (error->code != OSINFO_MEDIA_ERROR_NOT_BOOTABLE) {
+ g_object_unref (metadata);
g_message ("Could not extract iso info from '%s': %s",
filename, error->message);
g_free (filename);
@@ -95,8 +96,7 @@ tracker_extract_get_metadata (TrackerExtractInfo *info_)
if (os == NULL)
goto unknown_os;
- tracker_sparql_builder_predicate (metadata, "a");
- tracker_sparql_builder_object (metadata, "nfo:FilesystemImage");
+ tracker_resource_add_uri (metadata, "rdf:type", "nfo:FilesystemImage");
variants = osinfo_media_get_os_variants (media);
if (osinfo_list_get_length (OSINFO_LIST (variants)) > 0) {
@@ -110,45 +110,41 @@ tracker_extract_get_metadata (TrackerExtractInfo *info_)
}
if (name != NULL) {
- tracker_sparql_builder_predicate (metadata, "nie:title");
- tracker_sparql_builder_object_string (metadata, name);
+ tracker_resource_set_string (metadata, "nie:title", name);
}
if (osinfo_media_get_live (media)) {
- tracker_sparql_builder_predicate (metadata, "a");
- tracker_sparql_builder_object (metadata, "nfo:OperatingSystem");
+ tracker_resource_add_uri (metadata, "rdf:type", "nfo:OperatingSystem");
}
if (osinfo_media_get_installer (media)) {
- tracker_sparql_builder_predicate (metadata, "a");
- tracker_sparql_builder_object (metadata, "osinfo:Installer");
+ tracker_resource_add_uri (metadata, "rdf:type", "osinfo:Installer");
}
- tracker_sparql_builder_predicate (metadata, "nfo:isBootable");
- tracker_sparql_builder_object_boolean (metadata, bootable);
+ tracker_resource_set_boolean (metadata, "nfo:isBootable", bootable);
id = osinfo_entity_get_id (OSINFO_ENTITY (os));
if (id != NULL) {
- tracker_sparql_builder_predicate (metadata, "osinfo:id");
- tracker_sparql_builder_object_string (metadata, id);
+ tracker_resource_set_string (metadata, "osinfo:id", id);
}
id = osinfo_entity_get_id (OSINFO_ENTITY (media));
if (id != NULL) {
- tracker_sparql_builder_predicate (metadata, "osinfo:mediaId");
- tracker_sparql_builder_object_string (metadata, id);
+ tracker_resource_set_string (metadata, "osinfo:mediaId", id);
}
languages = osinfo_media_get_languages (media);
for (l = languages; l != NULL; l = l->next) {
- tracker_sparql_builder_predicate (metadata, "osinfo:language");
- tracker_sparql_builder_object_string (metadata, (char *) l->data);
+ tracker_resource_add_string (metadata, "osinfo:language", (char *)l->data);
}
g_list_free (languages);
g_object_unref (G_OBJECT (media));
g_object_unref (G_OBJECT (loader));
+ tracker_extract_info_set_resource (info_, metadata);
+ g_object_unref (metadata);
+
return TRUE;
unknown_os:
@@ -157,8 +153,7 @@ unknown_os:
gchar *stripped = g_strdup (name);
g_strstrip (stripped);
- tracker_sparql_builder_predicate (metadata, "nie:title");
- tracker_sparql_builder_object_string (metadata, stripped);
+ tracker_resource_set_string (metadata, "nie:title", stripped);
g_free (stripped);
}
@@ -170,11 +165,12 @@ no_os:
g_object_unref (G_OBJECT (loader));
}
- tracker_sparql_builder_predicate (metadata, "a");
- tracker_sparql_builder_object (metadata, "nfo:FilesystemImage");
+ tracker_resource_add_uri (metadata, "rdf:type", "nfo:FilesystemImage");
+
+ tracker_resource_set_boolean (metadata, "nfo:isBootable", bootable);
- tracker_sparql_builder_predicate (metadata, "nfo:isBootable");
- tracker_sparql_builder_object_boolean (metadata, bootable);
+ tracker_extract_info_set_resource (info_, metadata);
+ g_object_unref (metadata);
return TRUE;
}