Add ICloud Account service

This commit is contained in:
serii 2016-05-17 23:21:28 +03:00
parent 14518d4bc8
commit adb14d1468
3 changed files with 51 additions and 1 deletions

View file

@ -21,7 +21,8 @@ from pyicloud.services import (
UbiquityService,
ContactsService,
RemindersService,
PhotosService
PhotosService,
AccountService
)
from pyicloud.utils import get_password_from_keyring
@ -269,6 +270,15 @@ class PyiCloudService(object):
self.params
)
@property
def account(self):
service_root = self.webservices['account']['url']
return AccountService(
service_root,
self.session,
self.params
)
@property
def iphone(self):
return self.devices[0]

View file

@ -4,3 +4,4 @@ from pyicloud.services.ubiquity import UbiquityService
from pyicloud.services.contacts import ContactsService
from pyicloud.services.reminders import RemindersService
from pyicloud.services.photos import PhotosService
from pyicloud.services.account import AccountService

View file

@ -0,0 +1,39 @@
import sys
class AccountService(object):
def __init__(self, service_root, session, params):
self.session = session
self.params = params
self._service_root = service_root
self._devices = []
self._acc_endpoint = '%s/setup/web/device' % self._service_root
self._account_devices_url = '%s/getDevices' % self._acc_endpoint
req = self.session.get(self._account_devices_url, params=self.params)
self.response = req.json()
for device_info in self.response['devices']:
# device_id = device_info['udid']
# self._devices[device_id] = AccountDevice(device_info)
self._devices.append(AccountDevice(device_info))
@property
def devices(self):
return self._devices
class AccountDevice(object):
def __init__(self, device_info):
self.serialNumber = device_info['serialNumber']
self.osVersion = device_info['osVersion']
self.modelLargePhotoURL2x = device_info['modelLargePhotoURL2x']
self.modelLargePhotoURL1x = device_info['modelLargePhotoURL1x']
self.name = device_info['name']
self.imei = device_info['imei']
self.model = device_info['model']
self.udid = device_info['udid']
self.modelSmallPhotoURL2x = device_info['modelSmallPhotoURL2x']
self.modelSmallPhotoURL1x = device_info['modelSmallPhotoURL1x']
self.modelDisplayName = device_info['modelDisplayName']