[gnome-boxes/3.38.1-backports: 8/10] media-manager: Port to Tracker 3
- From: Felipe Borges <felipeborges src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-boxes/3.38.1-backports: 8/10] media-manager: Port to Tracker 3
- Date: Wed, 30 Sep 2020 09:14:59 +0000 (UTC)
commit c1e948a915a001337ffe70f018173e97f9f3b602
Author: Carlos Garnacho <carlosg gnome org>
Date: Sun Jun 14 22:54:19 2020 +0200
media-manager: Port to Tracker 3
The SparqlConnection constructor API changed, since Boxes does
purely readonly use of Tracker, it's most convenient to use the bus
connection here.
Also specify the tracker:Software graph for queries, as ISO image data
will be written to it.
As all versions of tracker 3.x are guaranteed to have the osinfo:language,
we don't need the fallback queries either.
src/media-manager.vala | 3 ++-
src/meson.build | 2 +-
src/tracker-iso-query.vala | 18 +++++-------------
3 files changed, 8 insertions(+), 15 deletions(-)
---
diff --git a/src/media-manager.vala b/src/media-manager.vala
index 79b198c3..c5648240 100644
--- a/src/media-manager.vala
+++ b/src/media-manager.vala
@@ -226,7 +226,8 @@ private MediaManager () {
os_db = new OSDatabase ();
os_db.load.begin ();
try {
- connection = Sparql.Connection.get ();
+ connection = Sparql.Connection.bus_new ("org.freedesktop.Tracker3.Miner.Files",
+ null, null);
} catch (GLib.Error error) {
critical ("Error connecting to Tracker: %s", error.message);
}
diff --git a/src/meson.build b/src/meson.build
index b7987689..82490288 100644
--- a/src/meson.build
+++ b/src/meson.build
@@ -144,7 +144,7 @@ dependencies = [
dependency ('libvirt-gobject-1.0', version: '>= 3.0.0'),
dependency ('libxml-2.0', version: '>= 2.7.8'),
dependency ('spice-client-gtk-3.0', version: '>= 0.32'),
- dependency ('tracker-sparql-2.0'),
+ dependency ('tracker-sparql-3.0'),
dependency ('vte-2.91', version: '>= 0.40.2'),
dependency ('webkit2gtk-4.0', version: '>= 2.26.0'),
cc.find_library('m', required : false),
diff --git a/src/tracker-iso-query.vala b/src/tracker-iso-query.vala
index ba920644..276e880e 100644
--- a/src/tracker-iso-query.vala
+++ b/src/tracker-iso-query.vala
@@ -3,21 +3,15 @@
using Tracker;
private class Boxes.TrackerISOQuery {
- private const string LANG_QUERY = "ASK { osinfo:language a
<http://www.w3.org/1999/02/22-rdf-syntax-ns#Property> }";
- private const string ISO_QUERY = "SELECT nie:url(?iso) nie:title(?iso)\n" +
- " osinfo:id(?iso) osinfo:mediaId(?iso)\n" +
+ private const string ISO_QUERY = "SELECT nie:isStoredAs(?iso) nie:title(?iso)\n" +
+ " osinfo:id(?iso) osinfo:mediaId(?iso) osinfo:language(?iso)\n" +
+ "FROM tracker:Software " +
"{ ?iso nfo:isBootable true }";
- private const string ISO_QUERY_LANG = "SELECT nie:url(?iso) nie:title(?iso)\n" +
- " osinfo:id(?iso) osinfo:mediaId(?iso)
osinfo:language(?iso)\n" +
- "{ ?iso nfo:isBootable true }";
private Sparql.Cursor cursor;
public async TrackerISOQuery (Sparql.Connection connection) throws GLib.Error {
var iso_query = ISO_QUERY;
- var cursor = yield connection.query_async (LANG_QUERY);
- if ((yield cursor.next_async ()) && cursor.get_boolean (0))
- iso_query = ISO_QUERY_LANG;
debug ("Tracker SPARQL query: %s", iso_query);
this.cursor = yield connection.query_async (iso_query);
@@ -48,11 +42,9 @@ public async bool fetch_next_iso_data (out string path,
title = cursor.get_string (1);
os_id = cursor.get_string (2);
media_id = cursor.get_string (3);
- if (cursor.n_columns > 4) {
- var languages = cursor.get_string (4);
+ var languages = cursor.get_string (4);
- lang_list = (languages != null)? languages.split (",") : new string[]{};
- }
+ lang_list = (languages != null)? languages.split (",") : new string[]{};
return true;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]