aboutsummaryrefslogtreecommitdiff
path: root/data/usr/bin/ayatana-webmail-url
diff options
context:
space:
mode:
Diffstat (limited to 'data/usr/bin/ayatana-webmail-url')
-rwxr-xr-xdata/usr/bin/ayatana-webmail-url66
1 files changed, 66 insertions, 0 deletions
diff --git a/data/usr/bin/ayatana-webmail-url b/data/usr/bin/ayatana-webmail-url
new file mode 100755
index 0000000..f65e66d
--- /dev/null
+++ b/data/usr/bin/ayatana-webmail-url
@@ -0,0 +1,66 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+# Ayatana Webmail, QuickList URL processor
+# Authors: Dmitry Shachnev <mitya57@gmail.com>
+# Robert Tari <robert@tari.in>
+# 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)
+