diff options
Diffstat (limited to 'host-overrides/jesterpm.net/offlineimap')
-rw-r--r-- | host-overrides/jesterpm.net/offlineimap/.nolink | 0 | ||||
-rw-r--r-- | host-overrides/jesterpm.net/offlineimap/helper.py | 45 |
2 files changed, 45 insertions, 0 deletions
diff --git a/host-overrides/jesterpm.net/offlineimap/.nolink b/host-overrides/jesterpm.net/offlineimap/.nolink new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/host-overrides/jesterpm.net/offlineimap/.nolink diff --git a/host-overrides/jesterpm.net/offlineimap/helper.py b/host-overrides/jesterpm.net/offlineimap/helper.py new file mode 100644 index 0000000..4ec587a --- /dev/null +++ b/host-overrides/jesterpm.net/offlineimap/helper.py @@ -0,0 +1,45 @@ +#!/usr/bin/python + +import re +import sys +import gtk +import gnomekeyring as gkey + +class Keyring(object): + def __init__(self, name, server, protocol): + self._name = name + self._server = server + self._protocol = protocol + self._keyring = gkey.get_default_keyring_sync() + + def has_credentials(self): + try: + attrs = {"server": self._server, "protocol": self._protocol} + items = gkey.find_items_sync(gkey.ITEM_NETWORK_PASSWORD, attrs) + return len(items) > 0 + except gkey.DeniedError: + return False + + def get_credentials(self): + attrs = {"server": self._server, "protocol": self._protocol} + items = gkey.find_items_sync(gkey.ITEM_NETWORK_PASSWORD, attrs) + return (items[0].attributes["user"], items[0].secret) + + def set_credentials(self, (user, pw)): + attrs = { + "user": user, + "server": self._server, + "protocol": self._protocol, + } + gkey.item_create_sync(gkey.get_default_keyring_sync(), + gkey.ITEM_NETWORK_PASSWORD, self._name, attrs, pw, True) + +def get_username(server): + keyring = Keyring("offlineimap", server, "imap") + (username, password) = keyring.get_credentials() + return username + +def get_password(server): + keyring = Keyring("offlineimap", server, "imap") + (username, password) = keyring.get_credentials() + return password |