#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Ayatana Webmail, QuickList URL processor # Authors: Dmitry Shachnev # Robert Tari # License: GNU GPL 3 or higher; http://www.gnu.org/licenses/gpl.html import sys import subprocess import dbus from gi.repository import GLib from dbus.mainloop.glib import DBusGMainLoop from ayatanawebmail.common import isRunning if __name__ == '__main__': if len(sys.argv) == 2 and sys.argv[1] in ['Home', 'Compose', 'Inbox', 'Sent']: if isRunning(): bInit = False DBusGMainLoop(set_as_default=True) oSessionBus = dbus.SessionBus() try: oSession = oSessionBus.get_object('org.ayatana.webmail', '/org/ayatana/webmail') oInterface = dbus.Interface(oSession, 'org.ayatana.webmail') oLoop = GLib.MainLoop() def replyHandler(b): global bInit bInit = b oLoop.quit() oInterface.isinit(reply_handler=replyHandler, error_handler=lambda o: oLoop.quit()) oLoop.run() if not bInit: oInterface.settings(reply_handler=lambda: oLoop.quit(), error_handler=lambda o: oLoop.quit()) else: oInterface.openurl(sys.argv[1], reply_handler=lambda: oLoop.quit(), error_handler=lambda o: oLoop.quit()) oLoop = GLib.MainLoop() oLoop.run() sys.exit(0) except dbus.DBusException as oDBusException: print(oDBusException) sys.exit(1) else: subprocess.Popen(['ayatana-webmail'], stdout=subprocess.PIPE, stderr=subprocess.STDOUT) sys.exit(0) else: print('ayatana-webmail-url must be called with one of these arguments: Home, Compose, Inbox or Sent') sys.exit(1) sys.exit(0)