diff --git a/README.md b/README.md index 5ba017e..4fd4b55 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ At its core, PyiCloud connects to iCloud using your username and password, then Authentication is as simple as passing your username and password to the `PyiCloudService` class: -```python +``` >>> from pyicloud import PyiCloudService >>> api = PyiCloudService('jappleseed@apple.com', 'password') ``` @@ -19,7 +19,7 @@ In the event that the username/password combination is invalid, a `PyiCloudFaile You can list which devices associated with your account by using the `devices` property: -```python +``` >>> api.devices { u'i9vbKRGIcLYqJnXMd1b257kUWnoyEBcEh6yM+IfmiMLh7BmOpALS+w==': , @@ -29,7 +29,7 @@ u'reGYDh9XwqNWTGIhNBuEwP1ds0F/Lg5t/fxNbI4V939hhXawByErk+HYVNSUzmWV': >> api.devices[0] >>> api.devices['i9vbKRGIcLYqJnXMd1b257kUWnoyEBcEh6yM+IfmiMLh7BmOpALS+w=='] @@ -38,7 +38,7 @@ and you can access individual devices by either their index, or their ID: or, as a shorthand if you have only one associated apple device, you can simply use the `iphone` property to access the first device associated with your account: -```python +``` >>> api.iphone ``` @@ -53,7 +53,7 @@ Once you have successfully authenticated, you can start querying your data! Returns the device's last known location. The Find My iPhone app must have been installed and initialized. -```python +``` >>> api.iphone.location() {u'timeStamp': 1357753796553, u'locationFinished': True, u'longitude': -0.14189, u'positionType': u'GPS', u'locationType': None, u'latitude': 51.501364, u'isOld': False, u'horizontalAccuracy': 5.0} ``` @@ -62,7 +62,7 @@ Returns the device's last known location. The Find My iPhone app must have been The Find My iPhone response is quite bloated, so for simplicity's sake this method will return a subset of the properties. -```python +``` >>> api.iphone.status() {'deviceDisplayName': u'iPhone 5', 'deviceStatus': u'200', 'batteryLevel': 0.6166913, 'name': u"Peter's iPhone"} ``` @@ -73,7 +73,7 @@ If you wish to request further properties, you may do so by passing in a list of Sends a request to the device to play a sound, if you wish pass a custom message you can do so by changing the subject arg. -```python +``` >>> api.iphone.play_sound() ``` @@ -81,9 +81,9 @@ A few moments later, the device will play a ringtone, display the default notifi #### Lost Mode -Lost mode is slightly different to the "Play Sound" functionality in that it allows the person who picks up the phone to call a specific phone number *without having to enter the passcode*. Just like "Play Sound" you may pass a custom message which the device will display, if it's not overriden the custom message of "This iPhone has been lost. Please call me." is used. +Lost mode is slightly different to the "Play Sound" functionality in that it allows the person who picks up the phone to call a specific phone number *without having to enter the passcode*. Just like "Play Sound" you may pass a custom message which the device will display, if it's not overridden the custom message of "This iPhone has been lost. Please call me." is used. -```python +``` >>> phone_number = '555-373-383' >>> message = 'Thief! Return my phone immediately.' >>> api.iphone.lost_device(phone_number, message) @@ -97,23 +97,23 @@ The calendar webservice currently only supports fetching events. Returns this month's events: -```python -api.calendar.events() +``` +>>> api.calendar.events() ``` Or, between a specific date range: -```python -from_dt = datetime(2012, 1, 1) -to_dt = datetime(2012, 1, 31) -api.calendar.events(from_dt, to_dt) +``` +>>> from_dt = datetime(2012, 1, 1) +>>> to_dt = datetime(2012, 1, 31) +>>> api.calendar.events(from_dt, to_dt) ``` ### File Storage (Ubiquity) You can access documents stored in your iCloud account by using the `files` property's `dir` method: -```python +``` >>> api.files.dir() [u'.do-not-delete', u'.localized', @@ -127,7 +127,7 @@ You can access documents stored in your iCloud account by using the `files` prop You can access children and their children's children using the filename as an index: -```python +``` >>> api.files['com~apple~Notes'] >>> api.files['com~apple~Notes'].type @@ -148,7 +148,7 @@ u'file' And when you have a file that you'd like to download, the `open` method will return a response object from which you can read the `content`. -```python +``` >>> api.files['com~apple~Notes']['Documents']['Some Document'].open().content 'Hello, these are the file contents' ``` @@ -157,7 +157,7 @@ Note: the object returned from the above `open` method is a [response object](ht For example, if you know that the file you're opening has JSON content: -```python +``` >>> api.files['com~apple~Notes']['Documents']['information.json'].open().json() {'How much we love you': 'lots'} >>> api.files['com~apple~Notes']['Documents']['information.json'].open().json()['How much we love you'] @@ -166,7 +166,7 @@ For example, if you know that the file you're opening has JSON content: Or, if you're downloading a particularly large file, you may want to use the `stream` keyword argument, and read directly from the raw response object: -```python +``` >>> download = api.files['com~apple~Notes']['Documents']['big_file.zip'].open(stream=True) >>> with open('downloaded_file.zip', 'wb') as opened_file: opened_file.write(download.raw.read())