Advertisement
Guest User

Untitled

a guest
May 10th, 2016
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.40 KB | None | 0 0
  1. """
  2. Script for import your LastPass passwords to KeePassX.
  3. """
  4.  
  5. from lastpass import Vault
  6. from kppy.database import KPDBv1
  7. from urllib.parse import urlparse
  8.  
  9. LASTPASS_USERNAME = '***@gmail.com'
  10. LASTPASS_PASSWORD = '***'
  11.  
  12. KEEPASSX_PASSWORD = '***'
  13. KEEPASSX_KDB = '/home/***/Secret Data/passwords.kdb'
  14. KEEPASSX_KEY = '/home/***/Secret Data/password.key'
  15.  
  16.  
  17. def main():
  18. db = KPDBv1(KEEPASSX_KDB, KEEPASSX_PASSWORD, KEEPASSX_KEY)
  19. db.load()
  20.  
  21. groups = dict()
  22. for group in db.groups:
  23. name = group.title
  24. if name not in groups:
  25. groups[name] = group
  26.  
  27. def decode(value):
  28. return value.decode('utf-8')
  29.  
  30. vault = Vault.open_remote(LASTPASS_USERNAME, LASTPASS_PASSWORD)
  31. for entry in vault.accounts:
  32. group_title = decode(entry.group)
  33. if not len(group_title):
  34. group_title = 'No category'
  35.  
  36. if group_title not in groups:
  37. db.create_group(group_title)
  38. db.save()
  39. groups[group_title] = db.groups[-1]
  40.  
  41. url = urlparse(decode(entry.url))
  42. url = '{}://{}'.format(url.scheme, url.netloc)
  43. username, password = decode(entry.username), decode(entry.password)
  44.  
  45. db.create_entry(group=groups[group_title], title=decode(entry.name),
  46. url=url, username=username, password=password)
  47. db.save()
  48.  
  49. db.close()
  50.  
  51. print('Done.')
  52.  
  53.  
  54. if __name__ == '__main__':
  55. main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement