Commit graph

264 commits

Author SHA1 Message Date
dillanmills
3899363167 Fixed a missed 2fa-2sa transition 2017-09-25 17:11:24 +02:00
Chad Johnson
4daf035689 Reimplement PhotosService to use the new ckdatabasews back-end (#137) 2017-09-24 15:22:17 +02:00
Ajay Gandhi
4ec58d7950 Add due date functionality for reminders (#105) 2017-09-24 14:58:59 +02:00
Tor Arne Vestbø
69af919ad5 Clarify that we support two-step, not two-factor, authentication
Two-step authentication is an older security method used for
accounts without an Apple device, or who are unable to upgrade
to iOS 9 or OS X El Capitan.

https://support.apple.com/en-us/HT204152

If the account has two-factor authentication enabled, we can still
fall back to the end-points for two-step authentication, as we do
not support 2FA yet.

Issue #102
2017-09-24 14:54:05 +02:00
Tor Arne Vestbø
be3d447c00 Handle HTTP errors before trying to parse JSON (#138) 2017-07-08 23:14:24 +02:00
Philip Lundrigan
bda08319fc photos: return time zone aware datetime object 2017-05-30 20:09:16 +02:00
Tor Arne Vestbø
f9a9818d03 Merge pull request #121 from chadj/issue_90_fix
Additional clientContext data for iphone play sound call.

Fixes picklepete/pyicloud#90
2017-02-11 15:54:49 +01:00
Chad Johnson
200e00b37c Additional clientContext data for iphone play sound call - picklepete/pyicloud#90 2017-02-10 16:51:36 -06:00
Tor Arne Vestbø
ced8e83a40 Detect 'errorReason' in error messages from iCloud API 2017-01-09 19:39:40 +01:00
Tor Arne Vestbø
7d57f06bb1 Change PhotosAlbum._parse_binary_feed() to freestanding function
It doesn't really depend on self, and will be used from
outside PhotoAlbum.
2016-10-09 23:48:48 +02:00
Tor Arne Vestbø
2d541a9681 photos: Implement more generic folder fetching
Preparation for photo service update/refresh functionality.
2016-10-09 23:46:10 +02:00
Tor Arne Vestbø
1e53077ab9 Add basic logging to PhotosService 2016-10-09 23:40:11 +02:00
Tor Arne Vestbø
3b57397795 Add title and description properties to PhotoAsset 2016-10-09 23:39:16 +02:00
Tor Arne Vestbø
801ee8f7f7 Fix Python 3 issues in Photos service 2016-10-09 23:38:03 +02:00
Tor Arne Vestbø
254e6a7b44 Merge pull request #95 from felciano/patch-1
Add missing import in 2FA documentation
2016-10-09 22:35:36 +02:00
Ramon Felciano
b231a5ce2b Fixed missing import
For 2FA code to wrk it needs access to the `click` library
2016-08-13 11:37:32 -07:00
Tor Arne Vestbø
5924fadd85 Add Python 3.5 to Travis CI testing 2016-07-11 22:50:07 +02:00
Adam Coddington
3818c43eff Release 0.9.1; fixes six version requirement. 2016-06-30 10:08:45 -07:00
Adam Coddington
5b0ca04751 Pinning six for @python_2_unicode_compatible. 2016-06-30 10:07:50 -07:00
Adam Coddington
b6297781fa Release 0.9; Add support for Account Service; fixes for Python 3.x. 2016-06-20 20:42:00 -07:00
Adam Coddington
1c80389305 Merge pull request #82 from satetsu888/master
fix reminder post function for python3
2016-06-20 20:40:36 -07:00
Adam Coddington
2d4ca14710 [#83] Adding support for icloud Account Service. Thanks @serii833! 2016-06-20 20:38:30 -07:00
Adam Coddington
2b004a2a55 Minor alterations to AccountService. 2016-06-20 20:35:46 -07:00
Adam Coddington
9a9200d43d Update README.rst
Changing variable name corresponding to `PyiCloudService` instance to `api` to match nearby docs.
2016-05-17 17:58:27 -07:00
serii
adb14d1468 Add ICloud Account service 2016-05-17 23:21:28 +03:00
shotaro.akiyama
e8d8f95afd Fix Reminder post function 2016-05-04 11:00:25 +09:00
Tor Arne Vestbø
14518d4bc8 Merge pull request #81 from Longhanks/master
Remove stray git merge conflict marker
2016-04-11 18:41:28 +02:00
aschulz
79d178adad README fix 2016-04-11 17:42:28 +02:00
Tor Arne Vestbø
e3bf826fce Release 0.8.3
Tor Arne Vestbø <torarnv@gmail.com> (3):
      Detect TTY when deciding whether to enable interactive mode or not
      Handle content-type header with parameters when debugging requests
      Gracefully handle malformed cookiejars
2016-04-11 16:41:59 +02:00
Tor Arne Vestbø
358d84e334 Gracefully handle malformed cookiejars
LoadError would only be raised if the cookiejar didn't contain the
expected magic header. But a pickeled jar would potentially contain
data that raised a UnicodeDecodeError, so we need account for both.
2016-04-11 16:37:34 +02:00
Tor Arne Vestbø
721f2a0d69 Handle content-type header with parameters when debugging requests 2016-04-02 22:05:10 +02:00
Tor Arne Vestbø
1c1b9ef927 Detect TTY when deciding whether to enable interactive mode or not 2016-04-02 17:09:13 +02:00
Tor Arne Vestbø
c372797407 Release 0.8.2
Bart274 <de_van_bos@msn.com> (1):
      Use Python 3 exception handling syntax (PEP 3110)

Tor Arne Vestbø <torarnv@gmail.com> (1):
      Add MIT license
2016-04-02 13:30:56 +02:00
Tor Arne Vestbø
e59eafe04d Add MIT license
As discussed in #78
2016-04-02 13:25:48 +02:00
Bart274
85598c9a6b Use Python 3 exception handling syntax (PEP 3110) 2016-03-13 15:07:25 +01:00
Tor Arne Vestbø
49eebc5cdc Release 0.8.1
Bart274 <de_van_bos@msn.com> (1):
      Replace manual time zone handling with use of the tzlocal module

Tor Arne Vestbø <torarnv@gmail.com> (5):
      Remove leftover debug logging from iCloud Photo service
      Remove useless sanity check for sparse photo album assets
      Don't assume request response is always JSON
      Charge HTTP logging to separate child logger of each service
      Don't set host header in reminders service
2016-03-12 14:57:26 +01:00
Bart274
a6aa998a04 Replace manual time zone handling with use of the tzlocal module
This solves an issue where we would end up with an empty list of
time zones, throwing an exception as a result.

It also resolves to the user's actual Olson time zone name,
instead of the first of all the possible time zone names that
match the current time zone of the user.

The two helper methods are no longer needed, as we can now use
get_localzone() directly.
2016-03-12 14:48:23 +01:00
Tor Arne Vestbø
8e45bf98db Don't set host header in reminders service
It's automatically taken care of by the requests module based on
the URL, and explicitly setting it on the globally shared session
object results in other services (such as the calendar service)
breaking when used after the reminders service in the same session.
2016-03-12 14:48:23 +01:00
Tor Arne Vestbø
b2f0cb992c Charge HTTP logging to separate child logger of each service
Unfortunately log filters only apply to each logger, not to its
children, so we have to make sure the http child loggers has the
same password filter as the root base filter.
2016-03-12 12:38:25 +01:00
Tor Arne Vestbø
c96a3bdc9f Don't assume request response is always JSON
If the response's content-type is not one of the two json mimetypes
iCloud will send us we need to return early, not try to parse the
error messsage out of an invalid json object.

For added safety we wrap the JSON decoding in a try/except, so that
malformed JSON data will not result in an exception from that part
of the code (though it will likely still raise at a later point when
the JSON data is parsed in service logic).

Fixes #71
2016-03-12 12:38:11 +01:00
Tor Arne Vestbø
8dc3f524ad Remove useless sanity check for sparse photo album assets
The length of a hash will always equal the length of its values.
2016-03-12 12:36:43 +01:00
Tor Arne Vestbø
9817d6b08a Remove leftover debug logging from iCloud Photo service 2016-03-12 12:36:43 +01:00
Tor Arne Vestbø
0c138d6dac Release 0.8.0
Adam Coddington <me@adamcoddington.net> (2):
      Drops support for Python 2.6.
      [#64] Adds Keychain-based Authentication

Daren Lord <dlaccount@icloud.com> (1):
      Squashed commit of the following:

Tor Arne Vestbø <torarnv@gmail.com> (11):
      Normalize HTTP header names to title case
      Remove three unused endpoint definitions from PyiCloudService base
      Use same setup/login endpoint as iCloud webapp
      Don't set Host header manually
      Fix reStructuredText inline literal formatting in README
      Document how to use the contacts API
      Simplify login sequence
      Add centralized logging of iCloud API requests
      Add support for two-factor authentication
      Add iCloud Photo Library service
      Tweak wording of password prompt

yannickulrich <yannick.ulrich@collinproject.de> (3):
      Adding Reminder support
      PEP8 compatibility
      PEP8 for base.py
2016-03-01 01:32:32 +01:00
Tor Arne Vestbø
fa7ffa32f0 Tweak wording of password prompt
iCloud is branded with a lower case 'i' like most other Apple products.
2016-02-25 13:40:37 +01:00
Tor Arne Vestbø
d4e2bac926 Merge pull request #59 from torarnv/add-photos-service
Add photos service
2016-02-25 13:34:37 +01:00
Tor Arne Vestbø
58cbc51701 Add iCloud Photo Library service
Fixes issue #46.
2016-02-25 13:33:43 +01:00
Tor Arne Vestbø
ab889e7232 Merge pull request #68 from torarnv/add-support-for-2fa
Add support for two-factor authentication (2FA)
2016-02-25 13:33:27 +01:00
Tor Arne Vestbø
7ec72a1625 Add support for two-factor authentication
When 2FA is enabled in iCloud most iCloud services are unavailable
without first going through the 2FA handshake. We now have API to
initiate the 2FA, which can be used by more advanced API clients.

The built in command line 'icloud' application has not been updated,
as listing and managing devices though Find my iPhone is one of the
services that do not require 2FA.

Fixes issue #66.
2016-02-25 13:33:05 +01:00
Tor Arne Vestbø
c3da6220ef Merge pull request #69 from torarnv/add-centralized-api-request-logging
Add centralized logging of iCloud API requests
2016-02-25 13:31:17 +01:00
Tor Arne Vestbø
acd4a2f7a4 Add centralized logging of iCloud API requests
Allows easier debugging of failing API calls. We filter out iCloud
password so that debug logs can be attached to bug reports, etc.

Errors are raised as PyiCloudAPIResponseError with a reason and
code property, in addition to being logged, which allows them to
be handled by client code, or will at least give a clearer idea
about the issue than e.g. opaque key errors when trying to access
non existent properties of the JSON response.
2016-02-25 13:26:11 +01:00