summaryrefslogtreecommitdiff
path: root/gnome-keyring-add-imap-password.py
diff options
context:
space:
mode:
Diffstat (limited to 'gnome-keyring-add-imap-password.py')
-rwxr-xr-xgnome-keyring-add-imap-password.py43
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))