def __init__(self, loop): self.bus = dbus.SessionBus() bus_name = dbus.service.BusName("org.gnome.Hamster", bus=self.bus) dbus.service.Object.__init__(self, bus_name, self.__dbus_object_path__) db.Storage.__init__(self, unsorted_localized="") self.mainloop = loop self.__file = gio.File.new_for_path(__file__) self.__monitor = self.__file.monitor_file(gio.FileMonitorFlags.WATCH_MOUNTS | \ gio.FileMonitorFlags.SEND_MOVED, None) self.__monitor.connect("changed", self._on_us_change)
def __init__(self): gobject.GObject.__init__(self) DBusMainLoop(set_as_default=True) self.bus = dbus.SessionBus() self._connection = None # will be initiated on demand self.bus.add_signal_receiver(self._on_tags_changed, 'TagsChanged', 'org.gnome.Hamster') self.bus.add_signal_receiver(self._on_facts_changed, 'FactsChanged', 'org.gnome.Hamster') self.bus.add_signal_receiver(self._on_activities_changed, 'ActivitiesChanged', 'org.gnome.Hamster') self.bus.add_signal_receiver(self._on_toggle_called, 'ToggleCalled', 'org.gnome.Hamster') self.bus.add_signal_receiver(self._on_dbus_connection_change, 'NameOwnerChanged', 'org.freedesktop.DBus', arg0='org.gnome.Hamster')
from hamster import logger as hamster_logger from hamster.lib import i18n i18n.setup_i18n() from hamster.storage import db from hamster.lib import default_logger, stuff from hamster.lib.dbus import (DBusMainLoop, dbus, fact_signature, from_dbus_date, from_dbus_fact, to_dbus_fact) from hamster.lib.fact import Fact, FactError logger = default_logger(__file__) DBusMainLoop(set_as_default=True) loop = glib.MainLoop() if "org.gnome.Hamster" in dbus.SessionBus().list_names(): print("Found hamster-service already running, exiting") quit() class Storage(db.Storage, dbus.service.Object): __dbus_object_path__ = "/org/gnome/Hamster" def __init__(self, loop): self.bus = dbus.SessionBus() bus_name = dbus.service.BusName("org.gnome.Hamster", bus=self.bus) dbus.service.Object.__init__(self, bus_name, self.__dbus_object_path__) db.Storage.__init__(self, unsorted_localized="") self.mainloop = loop