9 _moduleLogger = logging.getLogger(__name__)
12 DBUS_PROPERTIES = 'org.freedesktop.DBus.Properties'
15 class AccountManager(telepathy.client.interfacefactory.InterfaceFactory):
17 service_name = 'org.freedesktop.Telepathy.AccountManager'
18 object_path = '/org/freedesktop/Telepathy/AccountManager'
20 # Some versions of Mission Control are only activatable under this
21 # name, not under the generic AccountManager name
22 MC5_name = 'org.freedesktop.Telepathy.MissionControl5'
23 MC5_path = '/org/freedesktop/Telepathy/MissionControl5'
25 def __init__(self, bus=None):
30 object = bus.get_object(self.service_name, self.object_path)
33 # try activating MissionControl5 (ugly work-around)
34 mc5 = bus.get_object(self.MC5_name, self.MC5_path)
37 object = bus.get_object(self.service_name, self.object_path)
38 telepathy.client.interfacefactory.InterfaceFactory.__init__(self, object, telepathy.interfaces.ACCOUNT_MANAGER)
40 self[DBUS_PROPERTIES].Get(
41 telepathy.interfaces.ACCOUNT_MANAGER,
43 reply_handler=self._on_get,
44 error_handler=self._on_error,
47 def _on_get(self, stuff):
48 self.get_valid_interfaces().update(stuff)
50 def _on_error(self, *args):
51 _moduleLogger.error(args)
54 if __name__ == '__main__':
56 from dbus.mainloop.glib import DBusGMainLoop
57 DBusGMainLoop(set_as_default=True)
60 print am[DBUS_PROPERTIES].Get(telepathy.interfaces.ACCOUNT_MANAGER, 'ValidAccounts')
62 gobject.MainLoop().run()