Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- [goose@grumpy ~]$ less set-imap-passwords.py
- #!/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))
- [goose@grumpy ~]$ less .offlineimaprc
- # Sample minimal config file. Copy this to ~/.offlineimaprc and edit to
- # suit to get started fast.
- [general]
- accounts = Gmail
- ui = Noninteractive.Quiet
- #ui = TTY.TTYUI
- pythonfile = ~/.password.py
- [Account Gmail]
- localrepository = Local
- remoterepository = Remote
- autorefresh = 3
- [Repository Local]
- type = Maildir
- localfolders = ~/Mail
- [Repository Remote]
- type = IMAP
- remotehost = imap.gmail.com
- ssl = yes
- remoteport = 993
- remoteusereval = get_username("imap.gmail.com")
- remotepasseval = get_password("imap.gmail.com")
- [goose@grumpy ~]$ less .password.py
- #!/usr/bin/python
- 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
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement