Guest User

Untitled

a guest
Nov 8th, 2017
137
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.80 KB | None | 0 0
  1. #!/usr/bin/env python
  2. from __future__ import print_function
  3. import json
  4. import sys
  5.  
  6. from authentication import authenticate
  7. from future.moves.urllib.parse import urlencode
  8.  
  9. if __name__ == '__main__':
  10. username = sys.argv[1]
  11. password = sys.argv[2]
  12. smtp_username = smtp_password = smtp_host = smtp_port = smtp_no_tls = notification_email = None
  13. print('Logging in')
  14. icloud = authenticate(username, password, smtp_username, smtp_password, smtp_host, smtp_port, smtp_no_tls, notification_email)
  15. photos = icloud.photos.all
  16. operations = []
  17. url = '{}/records/modify?{}'.format(icloud.photos._service_endpoint, urlencode(icloud.photos.params))
  18. headers = {'Content-type': 'text/plain'}
  19. seen_record_names = []
  20.  
  21. for photo in photos:
  22. # Avoid duplicate operations
  23. if photo._asset_record['recordName'] in seen_record_names:
  24. continue
  25. seen_record_names.append(photo._asset_record['recordName'])
  26.  
  27. mr = {'fields': {'isDeleted': {'value': 1}}}
  28. mr['recordChangeTag'] = photo._asset_record['recordChangeTag']
  29. mr['recordName'] = photo._asset_record['recordName']
  30.  
  31. mr['recordType'] = 'CPLAsset'
  32. op = dict(
  33. operationType='update',
  34. record=mr,
  35. )
  36. operations.append(op)
  37.  
  38. # Limit to 100 photos at a time
  39. if len(operations) >= 100:
  40. post_data = json.dumps(dict(
  41. atomic=True,
  42. desiredKeys=['isDeleted'],
  43. operations=operations,
  44. zoneID={'zoneName': 'PrimarySync'},
  45. ))
  46. print('Deleting 100 photos')
  47. print(icloud.photos.session.post(url,
  48. data=post_data,
  49. headers=headers).json())
  50. operations = []
Add Comment
Please, Sign In to add comment