>From 68022918f7b4ff8c470be0c0dac540c35734e3e0 Mon Sep 17 00:00:00 2001 From: Juan A. Suarez Romero Date: Fri, 23 Oct 2009 13:05:02 +0200 Subject: [PATCH 3/6] deskbar-handler: fix live search files First attempt to fix deskbar-handler, using Tracker Live Search module. It allows to search in Files section. --- src/plugins/deskbar/tracker-module.py | 20 +++++++++++++------- 1 files changed, 13 insertions(+), 7 deletions(-) diff --git a/src/plugins/deskbar/tracker-module.py b/src/plugins/deskbar/tracker-module.py index 330ff20..0f3497e 100644 --- a/src/plugins/deskbar/tracker-module.py +++ b/src/plugins/deskbar/tracker-module.py @@ -1,11 +1,13 @@ # This deskbar module was ported from deskbar <= 2.18 handler by Marcus Fritzsch +import pdb import gnome import gnomedesktop import gobject import re import sys import urllib +import urlparse import string import time import cgi @@ -404,6 +406,10 @@ class TrackerLiveSearchHandler(deskbar.interfaces.Module): info = [str (i) for i in info] + #Convert from uri to pathname + url_components = urlparse.urlsplit (info[0]) + info[0] = urllib.url2pathname (url_components[2]) + output['uri'] = info[0] output['name'] = os.path.basename(output['uri']) output['type'] = info[1] @@ -448,8 +454,8 @@ class TrackerLiveSearchHandler(deskbar.interfaces.Module): import dbus bus = dbus.SessionBus() self.tracker = bus.get_object('org.freedesktop.Tracker1', '/org/freedesktop/Tracker1') - self.tracker_search = bus.get_object('org.freedesktop.Tracker1', '/org/freedesktop/Tracker1/Search') - self.search_iface = dbus.Interface(self.tracker_search, 'org.freedesktop.Tracker1.Search') + self.tracker_search = bus.get_object('org.freedesktop.Tracker1', '/org/freedesktop/Tracker1/Resources') + self.search_iface = dbus.Interface(self.tracker_search, 'org.freedesktop.Tracker1.Resources') self.tracker_keywords = bus.get_object('org.freedesktop.Tracker1', '/org/freedesktop/Tracker1/Keywords') self.keywords_iface = dbus.Interface(self.tracker_keywords, 'org.freedesktop.Tracker1.Keywords') self.tracker_files = bus.get_object('org.freedesktop.Tracker1', '/org/freedesktop/Tracker1/Files') @@ -457,11 +463,11 @@ class TrackerLiveSearchHandler(deskbar.interfaces.Module): except: print >> sys.stderr, 'DBus connection to tracker failed, check your settings.' return - for service in [key for key in TYPES.iterkeys () if key != 'Extra']: - print 'Searching %s' % service - self.search_iface.TextDetailed (-1, service, qstring, 0, max, \ - reply_handler = lambda hits: self.receive_hits(qstring, hits, max), - error_handler = self.receive_error) + query = "SELECT ?uri \"Files\" ?mime WHERE { ?object fts:match \"%s*\". ?object a nfo:FileDataObject; nie:url ?uri; nie:mimeType ?mime } LIMIT %d" % (qstring, max) + self.search_iface.SparqlQuery (query, \ + reply_handler = lambda hits: self.receive_hits (qstring, hits, max), \ + error_handler = self.receive_error) + print 'Tracker query:', qstring -- 1.6.3.3