Newer definition have been fetched from play-store-api. Moreover, the
following enhanchements are introduced:
- An new function utils.parseProtobufObj will automatically parse any
Protobuf object into a dictionary, so there's no need to manually
specify each field to parse
- Added toc() and acceptTos() functions
- Added deviceCheckinConsistencyToken and dfeCookie to API state and
headers
- Since search results are now divided into clusters, each one
representing a different subcategory, now the search() API call returns
a list of clusters, each one containing a list of apps
- Remove unstable userProfile API
- Changed names for some variables
- Disabled print calls. Loggin is now entirely up to the user.
- Implemented device config token, retrieved after the `uploadDevice`
procedure
- Updated headers from play-store-api project
- Fixed initialization for obb_download_test.py
* Updated user agent string with data taken from play-store-api
* *download* and *delivery* functions will now return a python generator
rather than raw bytes, to prevent app loading entire files in memory.
This generator can be iterated to get chunk of bytes to write, as
discussed in issue #35.
* as a consequence of the previous point, there is no more progress bar
feature for downloading. It should be implemented by developers using
the API.
Before, if locale wasn't specified as a parameter, it was picked from
the system running gpapi. Similar thing happened for timezone, but its
value was hardcoded in config.py.
To avoid problems related to missing or unavailable apps, this commit
enforces users to provide a locale and a timezone value. Without them,
gpapi can't be initialized.
Since most of the device data is used only for the checkin procedure,
which is run only after the first login with email and passwd, it
is useless to have functions in GooglePlayAPI to modify them at runtime.
Now if the user wants to specify custom data, this data should be
provided as arguments to the constructor.
As described in play-store-api code [1] recenlty google introduced a Time
To Live to each auth token, which caused them to expire in a matter of
seconds. Moreover, in order to retrieve a long-ttl token, a second auth
request now is needed, sending the Master Token returned from the first
request. This 'second round' request will return the actual authSubToken.
Another addition is that the code now return response's text for some
generic errors, in order to help debugging those problems.