[gnome-music/wip/jfelder/tracker3: 1/24] Port to tracker3
- From: Marinus Schraal <mschraal src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-music/wip/jfelder/tracker3: 1/24] Port to tracker3
- Date: Fri, 28 Aug 2020 14:59:20 +0000 (UTC)
commit ac834744dacadeae8b44e252b347c0209d96e46a
Author: Jean Felder <jfelder src gnome org>
Date: Mon May 25 20:23:35 2020 +0200
Port to tracker3
gnomemusic/coregrilo.py | 34 +++++++++++++--------------
gnomemusic/grilowrappers/grltrackerwrapper.py | 2 +-
gnomemusic/trackerwrapper.py | 18 ++++++++------
gnomemusic/views/emptyview.py | 2 +-
meson.build | 4 ++--
5 files changed, 32 insertions(+), 28 deletions(-)
---
diff --git a/gnomemusic/coregrilo.py b/gnomemusic/coregrilo.py
index dcdfa8f8..cf58894d 100644
--- a/gnomemusic/coregrilo.py
+++ b/gnomemusic/coregrilo.py
@@ -97,10 +97,10 @@ class CoreGrilo(GObject.GObject):
new_state = self._tracker_wrapper.props.tracker_available
# FIXME:No removal support yet.
if new_state == TrackerState.AVAILABLE:
- tracker_plugin = self._registry.lookup_plugin("grl-tracker")
+ tracker_plugin = self._registry.lookup_plugin("grl-tracker3")
if tracker_plugin:
- self._registry.unload_plugin("grl-tracker")
- self._registry.activate_plugin_by_id("grl-tracker")
+ self._registry.unload_plugin("grl-tracker3")
+ self._registry.activate_plugin_by_id("grl-tracker3")
def _on_source_added(self, registry, source):
@@ -131,7 +131,7 @@ class CoreGrilo(GObject.GObject):
new_wrapper = None
new_state = self._tracker_wrapper.props.tracker_available
- if (source.props.source_id == "grl-tracker-source"
+ if (source.props.source_id == "grl-tracker3-source"
and self._tracker_wrapper.location_filter() is not None
and new_state == TrackerState.AVAILABLE):
if source.props.source_id not in self._wrappers.keys():
@@ -145,7 +145,7 @@ class CoreGrilo(GObject.GObject):
grl_tracker_wrapper.props.source = source
elif (source.props.source_id not in self._search_wrappers.keys()
and source.props.source_id not in self._wrappers.keys()
- and source.props.source_id != "grl-tracker-source"
+ and source.props.source_id != "grl-tracker3-source"
and source.get_supported_media() & Grl.MediaType.AUDIO
and source.supported_operations() & Grl.SupportedOps.SEARCH
and "net:internet" not in source.props.source_tags):
@@ -220,32 +220,32 @@ class CoreGrilo(GObject.GObject):
:param CoreSong coresong: CoreSong to retrieve art for
"""
- if "grl-tracker-source" in self._wrappers:
- self._wrappers["grl-tracker-source"].get_song_art(coresong)
+ if "grl-tracker3-source" in self._wrappers:
+ self._wrappers["grl-tracker3-source"].get_song_art(coresong)
def get_album_art(self, corealbum):
"""Retrieve album art for the given CoreAlbum
:param CoreAlbum corealbum: CoreAlbum to retrieve art for
"""
- if "grl-tracker-source" in self._wrappers:
- self._wrappers["grl-tracker-source"].get_album_art(corealbum)
+ if "grl-tracker3-source" in self._wrappers:
+ self._wrappers["grl-tracker3-source"].get_album_art(corealbum)
def get_artist_art(self, coreartist):
"""Retrieve artist art for the given CoreArtist
:param CoreArtist coreartist: CoreArtist to retrieve art for
"""
- if "grl-tracker-source" in self._wrappers:
- self._wrappers["grl-tracker-source"].get_artist_art(coreartist)
+ if "grl-tracker3-source" in self._wrappers:
+ self._wrappers["grl-tracker3-source"].get_artist_art(coreartist)
def stage_playlist_deletion(self, playlist):
"""Prepares playlist deletion.
:param Playlist playlist: playlist
"""
- if "grl-tracker-source" in self._wrappers:
- self._wrappers["grl-tracker-source"].stage_playlist_deletion(
+ if "grl-tracker3-source" in self._wrappers:
+ self._wrappers["grl-tracker3-source"].stage_playlist_deletion(
playlist)
def finish_playlist_deletion(self, playlist, deleted):
@@ -254,8 +254,8 @@ class CoreGrilo(GObject.GObject):
:param Playlist playlist: playlist
:param bool deleted: indicates if the playlist has been deleted
"""
- if "grl-tracker-source" in self._wrappers:
- self._wrappers["grl-tracker-source"].finish_playlist_deletion(
+ if "grl-tracker3-source" in self._wrappers:
+ self._wrappers["grl-tracker3-source"].finish_playlist_deletion(
playlist, deleted)
def create_playlist(self, playlist_title, callback):
@@ -264,6 +264,6 @@ class CoreGrilo(GObject.GObject):
:param str playlist_title: playlist title
:param callback: function to perform once, the playlist is created
"""
- if "grl-tracker-source" in self._wrappers:
- self._wrappers["grl-tracker-source"].create_playlist(
+ if "grl-tracker3-source" in self._wrappers:
+ self._wrappers["grl-tracker3-source"].create_playlist(
playlist_title, callback)
diff --git a/gnomemusic/grilowrappers/grltrackerwrapper.py b/gnomemusic/grilowrappers/grltrackerwrapper.py
index 5ab90bc3..7b2f8277 100644
--- a/gnomemusic/grilowrappers/grltrackerwrapper.py
+++ b/gnomemusic/grilowrappers/grltrackerwrapper.py
@@ -23,7 +23,7 @@
# delete this exception statement from your version.
import gi
-gi.require_versions({"Gfm": "0.1", "Grl": "0.3", 'Tracker': "2.0"})
+gi.require_versions({"Gfm": "0.1", "Grl": "0.3", "Tracker": "3.0"})
from gi.repository import Gfm, Gio, Grl, GLib, GObject, Tracker
from gnomemusic.corealbum import CoreAlbum
diff --git a/gnomemusic/trackerwrapper.py b/gnomemusic/trackerwrapper.py
index 0990eedb..caa14260 100644
--- a/gnomemusic/trackerwrapper.py
+++ b/gnomemusic/trackerwrapper.py
@@ -47,21 +47,25 @@ class TrackerWrapper(GObject.GObject):
self._tracker = None
self._tracker_available = TrackerState.UNAVAILABLE
- Tracker.SparqlConnection.get_async(None, self._connection_async_cb)
-
- def _connection_async_cb(self, klass, result):
try:
- self._tracker = Tracker.SparqlConnection.get_finish(result)
+ self._tracker = Tracker.SparqlConnection.bus_new(
+ "org.freedesktop.Tracker3.Miner.Files", None, None)
except GLib.Error as error:
self._log.warning(
"Error: {}, {}".format(error.domain, error.message))
self.notify("tracker-available")
return
- query = "SELECT ?e WHERE { ?e a tracker:ExternalReference . }"
+ query = """
+ SELECT
+ ?e
+ {
+ GRAPH tracker:Audio {
+ ?e a tracker:ExternalReference .
+ }
+ }""".replace("\n", "").strip()
- self._tracker.query_async(
- query, None, self._query_version_check)
+ self._tracker.query_async(query, None, self._query_version_check)
def _query_version_check(self, klass, result):
try:
diff --git a/gnomemusic/views/emptyview.py b/gnomemusic/views/emptyview.py
index b8ed23ea..e82a1d21 100644
--- a/gnomemusic/views/emptyview.py
+++ b/gnomemusic/views/emptyview.py
@@ -143,7 +143,7 @@ class EmptyView(Gtk.Stack):
"Your system Tracker version seems outdated")
self._icon.props.margin_bottom = 18
self._information_label.props.label = _(
- "Music needs Tracker version 2.3.0 or higher")
+ "Music needs Tracker version 3.0.0 or higher")
self._icon.props.icon_name = "dialog-error-symbolic"
diff --git a/meson.build b/meson.build
index 0ef5b9b9..3358dee1 100644
--- a/meson.build
+++ b/meson.build
@@ -42,12 +42,12 @@ dependency('gtk+-3.0', version: '>= 3.24.7')
dependency('libdazzle-1.0', version: '>= 3.28.0')
dependency('libmediaart-2.0', version: '>= 1.9.1')
dependency('libsoup-2.4')
-dependency('tracker-sparql-2.0', version: '>= 2.3.0')
+dependency('tracker-sparql-3.0', version: '>= 2.99.3')
dependency('pango', version: '>= 1.44.0')
dependency('pygobject-3.0', version: '>= 3.36.1')
dependency('py3cairo', version: '>= 1.14.0')
dependency('grilo-0.3', version: '>= 0.3.12', fallback: ['grilo', 'libgrl_dep'])
-dependency('grilo-plugins-0.3', version: '>= 0.3.10', fallback: ['grilo-plugins', 'grilo_plugins_dep'])
+dependency('grilo-plugins-0.3', version: '>= 0.3.12', fallback: ['grilo-plugins', 'grilo_plugins_dep'])
subproject('libgd',
default_options: [
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]