Advertisement
Guest User

Untitled

a guest
Aug 15th, 2017
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.83 KB | None | 0 0
  1. #!/usr/bin/env python
  2.  
  3. import simplenote
  4.  
  5. import os, json
  6. from datetime import date, datetime as dt
  7.  
  8. def main():
  9. import argparse, getpass
  10. parser = argparse.ArgumentParser()
  11. parser.add_argument('user', help='The email address of the Simplenote user.')
  12. parser.add_argument('--password', help='If not stated, you will be asked for it.')
  13. parser.add_argument('--folder', default='./{user}_{date}',
  14. help="Specify the folder to store the backup in. "
  15. "The variables '{user}', '{date}' and '{datetime}' will be expanded. "
  16. "Defaults to '{user}_{date}'.")
  17. args = parser.parse_args()
  18. d = date.today().isoformat()
  19. datetime = dt.now().replace(microsecond=0).isoformat().replace(':', '-')
  20. args.folder = args.folder.format(user=args.user, date=d, datetime=datetime)
  21. if not args.password:
  22. args.password = getpass.getpass()
  23. backup(args.folder, args.user, args.password)
  24.  
  25. def backup(folder, user, password):
  26. os.makedirs(folder, exist_ok=True)
  27. sn = simplenote.Simplenote(user, password)
  28. note_list = sn.get_note_list()
  29. note_list = note_list[0]
  30. note_list_path = os.path.join(folder, 'note_list.json')
  31. with open(note_list_path, 'w') as f:
  32. json.dump(note_list, f, indent=2)
  33. for i, note in enumerate(note_list):
  34. print("Backing up note # ", i, " of ", len(note_list))
  35. if note['deleted']: continue
  36. individual_note = sn.get_note(note['key'])
  37. individual_note = individual_note[0]
  38. note_path_json = os.path.join(folder, note['key'] + '.json')
  39. note_path_plain = os.path.join(folder, note['key'] + '.txt')
  40. with open(note_path_json, 'w') as f:
  41. json.dump(individual_note, f, indent=2)
  42. with open(note_path_plain, 'w') as f:
  43. f.write(individual_note['content'])
  44.  
  45. if __name__ == "__main__":
  46. main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement