diff options
Diffstat (limited to 'gnome-keyring-add-imap-password.py')
-rwxr-xr-x | gnome-keyring-add-imap-password.py | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/gnome-keyring-add-imap-password.py b/gnome-keyring-add-imap-password.py new file mode 100755 index 0000000..24ab44d --- /dev/null +++ b/gnome-keyring-add-imap-password.py @@ -0,0 +1,43 @@ +#!/usr/bin/python + +import gtk +import gnomekeyring as gkey +import getpass + +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) + +server = raw_input("Server: ") +username = raw_input("Username: ") +password = getpass.getpass(prompt="Password: ") +print + +keyring = Keyring("offlineimap", server, "imap") + +keyring.set_credentials((username, password)) |