Advertisement
Guest User

Untitled

a guest
Jun 2nd, 2017
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.48 KB | None | 0 0
  1. [goose@grumpy ~]$ less set-imap-passwords.py
  2. #!/usr/bin/python
  3.  
  4. import gtk
  5. import gnomekeyring as gkey
  6. import getpass
  7.  
  8. class Keyring(object):
  9.     def __init__(self, name, server, protocol):
  10.         self._name = name
  11.         self._server = server
  12.         self._protocol = protocol
  13.         self._keyring = gkey.get_default_keyring_sync()
  14.  
  15.     def has_credentials(self):
  16.         try:
  17.             attrs = {"server": self._server, "protocol": self._protocol}
  18.             items = gkey.find_items_sync(gkey.ITEM_NETWORK_PASSWORD, attrs)
  19.             return len(items) > 0
  20.         except gkey.DeniedError:
  21.             return False
  22.  
  23.     def get_credentials(self):
  24.         attrs = {"server": self._server, "protocol": self._protocol}
  25.         items = gkey.find_items_sync(gkey.ITEM_NETWORK_PASSWORD, attrs)
  26.         return (items[0].attributes["user"], items[0].secret)
  27.  
  28.     def set_credentials(self, (user, pw)):
  29.         attrs = {
  30.                 "user": user,
  31.                 "server": self._server,
  32.                 "protocol": self._protocol,
  33.             }
  34.         gkey.item_create_sync(gkey.get_default_keyring_sync(),
  35.                 gkey.ITEM_NETWORK_PASSWORD, self._name, attrs, pw, True)
  36.  
  37. server = raw_input("Server: ")
  38. username = raw_input("Username: ")
  39. password = getpass.getpass(prompt="Password: ")
  40. print
  41.  
  42. keyring = Keyring("offlineimap", server, "imap")
  43.  
  44. keyring.set_credentials((username, password))
  45.  
  46. [goose@grumpy ~]$ less .offlineimaprc
  47. # Sample minimal config file. Copy this to ~/.offlineimaprc and edit to
  48. # suit to get started fast.
  49.  
  50. [general]
  51. accounts = Gmail
  52. ui = Noninteractive.Quiet
  53. #ui = TTY.TTYUI
  54. pythonfile = ~/.password.py
  55.  
  56.  
  57. [Account Gmail]
  58. localrepository = Local
  59. remoterepository = Remote
  60. autorefresh = 3
  61.  
  62. [Repository Local]
  63. type = Maildir
  64. localfolders = ~/Mail
  65.  
  66. [Repository Remote]
  67. type = IMAP
  68. remotehost = imap.gmail.com
  69. ssl = yes
  70. remoteport = 993
  71. remoteusereval = get_username("imap.gmail.com")
  72. remotepasseval = get_password("imap.gmail.com")
  73.  
  74.  
  75. [goose@grumpy ~]$ less .password.py
  76. #!/usr/bin/python
  77.  
  78. import sys
  79. import gtk
  80. import gnomekeyring as gkey
  81.  
  82. class Keyring(object):
  83.     def __init__(self, name, server, protocol):
  84.         self._name = name
  85.         self._server = server
  86.         self._protocol = protocol
  87.         self._keyring = gkey.get_default_keyring_sync()
  88.  
  89.     def has_credentials(self):
  90.         try:
  91.             attrs = {"server": self._server, "protocol": self._protocol}
  92.             items = gkey.find_items_sync(gkey.ITEM_NETWORK_PASSWORD, attrs)
  93.             return len(items) > 0
  94.         except gkey.DeniedError:
  95.             return False
  96.  
  97.     def get_credentials(self):
  98.         attrs = {"server": self._server, "protocol": self._protocol}
  99.         items = gkey.find_items_sync(gkey.ITEM_NETWORK_PASSWORD, attrs)
  100.         return (items[0].attributes["user"], items[0].secret)
  101.  
  102.     def set_credentials(self, (user, pw)):
  103.         attrs = {
  104.                 "user": user,
  105.                 "server": self._server,
  106.                 "protocol": self._protocol,
  107.             }
  108.         gkey.item_create_sync(gkey.get_default_keyring_sync(),
  109.                 gkey.ITEM_NETWORK_PASSWORD, self._name, attrs, pw, True)
  110.  
  111. def get_username(server):
  112.     keyring = Keyring("offlineimap", server, "imap")
  113.     (username, password) = keyring.get_credentials()
  114.     return username
  115.  
  116. def get_password(server):
  117.     keyring = Keyring("offlineimap", server, "imap")
  118.     (username, password) = keyring.get_credentials()
  119.     return password
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement