From 693ae8348fd5fea703fa08acb3c8ceba0361ceff Mon Sep 17 00:00:00 2001 From: Domenico Iezzi Date: Thu, 9 Nov 2017 12:25:39 +0100 Subject: [PATCH] Take latest apk if not version specified If no *versionCode* parameter is specified to *download* or *delivery* methods, fetch the latest one with a simple `self.details(pkgName)` --- gpapi/googleplay.py | 13 +++++++++++-- test.py | 3 +-- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/gpapi/googleplay.py b/gpapi/googleplay.py index e017e02..11ce1bf 100644 --- a/gpapi/googleplay.py +++ b/gpapi/googleplay.py @@ -491,7 +491,7 @@ def _deliver_data(self, url, cookies, progress_bar): bar.done() return response_content - def delivery(self, packageName, versionCode, offerType=1, + def delivery(self, packageName, versionCode=None, offerType=1, downloadToken=None, progress_bar=False, expansion_files=False): """Download an already purchased app. @@ -513,6 +513,11 @@ def delivery(self, packageName, versionCode, offerType=1, Data to build this name string is provided in the dict object. For more info check https://developer.android.com/google/play/expansion-files.html """ + + if versionCode is None: + # pick up latest version + versionCode = self.details(packageName)['versionCode'] + path = "delivery" params = {'ot': str(offerType), 'doc': packageName, @@ -557,7 +562,7 @@ def delivery(self, packageName, versionCode, offerType=1, result['additionalData'].append(a) return result - def download(self, packageName, versionCode, offerType=1, + def download(self, packageName, versionCode=None, offerType=1, progress_bar=False, expansion_files=False): """Download an app and return its raw data (APK file). Free apps need to be "purchased" first, in order to retrieve the download cookie. @@ -578,6 +583,10 @@ def download(self, packageName, versionCode, offerType=1, if self.authSubToken is None: raise Exception("You need to login before executing any request") + if versionCode is None: + # pick up latest version + versionCode = self.details(packageName)['versionCode'] + path = "purchase" headers = self.getDefaultHeaders() params = { diff --git a/test.py b/test.py index f6712b9..37dc1e5 100644 --- a/test.py +++ b/test.py @@ -35,10 +35,9 @@ # DOWNLOAD docid = apps[0]['docId'] -version = apps[0]['versionCode'] print('\nTelegram docid is: %s\n' % docid) print('\nAttempting to download %s\n' % docid) -fl = server.download(docid, version, progress_bar=True) +fl = server.download(docid, None, progress_bar=True) with open(docid + '.apk', 'wb') as f: f.write(fl['data']) print('\nDownload successful\n')