mirror of
https://github.com/FliegendeWurst/googleplay-api.git
synced 2024-11-22 12:54:58 +00:00
102 lines
2.8 KiB
Python
102 lines
2.8 KiB
Python
from gpapi.googleplay import GooglePlayAPI, RequestError
|
|
|
|
import sys
|
|
import os
|
|
|
|
gsfId = int(os.environ["GPAPI_GSFID"])
|
|
authSubToken = os.environ["GPAPI_TOKEN"]
|
|
|
|
server = GooglePlayAPI("it_IT", "Europe/Rome")
|
|
|
|
# LOGIN
|
|
print("\nLogin with ac2dm token and gsfId saved\n")
|
|
server.login(None, None, gsfId, authSubToken)
|
|
|
|
# SEARCH
|
|
print("\nSearch suggestion for \"fir\"\n")
|
|
print(server.searchSuggest("fir"))
|
|
|
|
result = server.search("firefox")
|
|
for doc in result:
|
|
print("doc: {}".format(doc["docid"]))
|
|
for cluster in doc["child"]:
|
|
print("\tcluster: {}".format(cluster["docid"]))
|
|
for app in cluster["child"]:
|
|
print("\t\tapp: {}".format(app["docid"]))
|
|
|
|
|
|
# HOME APPS
|
|
print("\nFetching apps from play store home\n")
|
|
result = server.home()
|
|
for cluster in result:
|
|
print("cluster: {}".format(cluster.get("docid")))
|
|
for app in cluster.get("child"):
|
|
print("\tapp: {}".format(app.get("docid")))
|
|
|
|
|
|
# DOWNLOAD
|
|
docid = "org.mozilla.focus"
|
|
server.log(docid)
|
|
print("\nAttempting to download {}\n".format(docid))
|
|
fl = server.download(docid)
|
|
with open(docid + ".apk", "wb") as apk_file:
|
|
for chunk in fl.get("file").get("data"):
|
|
apk_file.write(chunk)
|
|
print("\nDownload successful\n")
|
|
|
|
# BULK DETAILS
|
|
testApps = ["org.mozilla.focus", "com.non.existing.app"]
|
|
bulk = server.bulkDetails(testApps)
|
|
|
|
print("\nTesting behaviour for non-existing apps\n")
|
|
if bulk[1] is not None:
|
|
print("bulkDetails should return empty dict for non-existing apps")
|
|
sys.exit(1)
|
|
|
|
print("\nResult from bulkDetails for {}\n".format(testApps[0]))
|
|
print(bulk[0]["docid"])
|
|
|
|
# DETAILS
|
|
print("\nGetting details for %s\n" % testApps[0])
|
|
details = server.details(testApps[0])
|
|
print(details["title"])
|
|
|
|
# REVIEWS
|
|
print("\nGetting reviews for %s\n" % testApps[0])
|
|
revs = server.reviews(testApps[0])
|
|
for r in revs:
|
|
print("UserId: {0} Vote: {1}".format(
|
|
r["userProfile"]["personIdString"],
|
|
str(r["starRating"])))
|
|
|
|
# BROWSE
|
|
print("\nBrowse play store categories\n")
|
|
browse = server.browse()
|
|
for c in browse.get("category"):
|
|
print(c["name"])
|
|
|
|
sampleCat = browse["category"][0]["unknownCategoryContainer"]["categoryIdContainer"]["categoryId"]
|
|
print("\nBrowsing the {} category\n".format(sampleCat))
|
|
browseCat = server.home(cat=sampleCat)
|
|
|
|
for doc in browseCat:
|
|
print("doc: {}".format(doc["docid"]))
|
|
for child in doc["child"]:
|
|
print("\tsubcat: {}".format(child["docid"]))
|
|
for app in child["child"]:
|
|
print("\t\tapp: {}".format(app["docid"]))
|
|
|
|
# LIST
|
|
cat = "MUSIC_AND_AUDIO"
|
|
print("\nList {} subcategories\n".format(cat))
|
|
catList = server.list(cat)
|
|
for c in catList:
|
|
print(c)
|
|
|
|
limit = 4
|
|
print("\nList only {} apps from subcat {} for {} category\n".format(
|
|
limit, catList[0], cat))
|
|
appList = server.list(cat, catList[0], 4, 1)
|
|
for app in appList:
|
|
print(app["docid"])
|