From f23e956fdcc7c18702d59884da7f968ce98194af Mon Sep 17 00:00:00 2001 From: itsjesseyo Date: Mon, 21 Dec 2015 15:55:54 -0700 Subject: [PATCH 1/5] Update README.md love dem forks --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 0ba4793..5f88e1d 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,5 @@ +(This fork is temporary and should only exist while I make the updates needed for it to work with changes that ahve occurred since it's last official update.) + # Unity-Publisher-API-Python A Python client for Unity Asset Store publisher interface From 8e15f299ffa06284899c55cc9cc11acc7e1046dc Mon Sep 17 00:00:00 2001 From: Jesse Gomez Date: Mon, 21 Dec 2015 16:02:38 -0700 Subject: [PATCH 2/5] removes long_url from publisher and updates array location of invoice date --- AssetStoreAPI.py | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/AssetStoreAPI.py b/AssetStoreAPI.py index d5d5015..2b000c9 100644 --- a/AssetStoreAPI.py +++ b/AssetStoreAPI.py @@ -64,6 +64,8 @@ def GetPublisherInfo(self): result = self.GetSimpleData({'url':self.PUBLISHER_OVERVIEW_JSON_URL}); self.AssertHttpCode('Fetching publisher data failed, error code {code}', result.status_code) publisherInfoObject = result.json() + # print "*********************************************" + # print publisherInfoObject self.publisherInfoOverview = PublisherInfo(publisherInfoObject) return self.publisherInfoOverview @@ -240,7 +242,7 @@ def __init__(self, data): 'rating':int(data['rating']['average']), 'ratingCount':int(data['rating']['count']), 'payoutCut':data['payout_cut'], - 'publisherUrl':data['long_url'], + # 'publisherUrl':data['long_url'], 'publisherShortUrl':data['short_url'], 'siteUrl':data['url'], 'supportUrl':data['support_url'], @@ -317,10 +319,12 @@ def GetInfoType(self): class InvoiceInfo (ParsedData): def __init__(self, data): + print "*************" + print data self.data = { 'id':data[0], 'packageName':data[1], - 'date':self.ParseDate(data[2]), + 'date':self.ParseDate(data[4]), 'isRefunded':data[3] == 'Yes', } def GetInvoiceNumber(self): @@ -340,8 +344,8 @@ def GetYear(self): def GetMonth(self): return self.month def GetDate(self): - import datetime, time - return time.mktime(datetime.datetime(self.year, self.month, 1, 0, 0, 0, 0).timetuple()) + import datetime, time + return time.mktime(datetime.datetime(self.year, self.month, 1, 0, 0, 0, 0).timetuple()) class PeriodSalesInfo(object): def __init__(self, packageSales, payoutCut = 0.7): @@ -420,7 +424,7 @@ def __init__(self, data): 'firstDownload':self.ParseDate(data[2]) if data[2] != None else None, 'lastDownload':self.ParseDate(data[3]) if data[3] != None else None, 'shortUrl':data['shortUrl'], - } + } def GetPackageName(self): return self.data['name'] def GetQuantity(self): @@ -466,7 +470,7 @@ def __init__(self, data): 'version': data['version_name'], 'categoryId': int(data['category_id']), 'releaseNotes': data['publishnotes'] - } + } def GetName(self): return self.data['name'] def GetStatus(self): From dc5c96090f7ac428ffa0386e10f591c2f794ff12 Mon Sep 17 00:00:00 2001 From: Jesse Gomez Date: Mon, 21 Dec 2015 16:03:28 -0700 Subject: [PATCH 3/5] removes testing print statements --- AssetStoreAPI.py | 4 ---- 1 file changed, 4 deletions(-) diff --git a/AssetStoreAPI.py b/AssetStoreAPI.py index 2b000c9..9fd7215 100644 --- a/AssetStoreAPI.py +++ b/AssetStoreAPI.py @@ -64,8 +64,6 @@ def GetPublisherInfo(self): result = self.GetSimpleData({'url':self.PUBLISHER_OVERVIEW_JSON_URL}); self.AssertHttpCode('Fetching publisher data failed, error code {code}', result.status_code) publisherInfoObject = result.json() - # print "*********************************************" - # print publisherInfoObject self.publisherInfoOverview = PublisherInfo(publisherInfoObject) return self.publisherInfoOverview @@ -319,8 +317,6 @@ def GetInfoType(self): class InvoiceInfo (ParsedData): def __init__(self, data): - print "*************" - print data self.data = { 'id':data[0], 'packageName':data[1], From fcb37985bf8de0bc5b1ee9527799f395033eda6d Mon Sep 17 00:00:00 2001 From: Jesse Gomez Date: Mon, 21 Dec 2015 17:16:06 -0700 Subject: [PATCH 4/5] fills out invoice data in spirit of original developer --- AssetStoreAPI.py | 13 +++++++++++-- AssetStoreAPI.pyc | Bin 0 -> 34688 bytes AssetStoreWebGUI.py | 8 +++++--- 3 files changed, 16 insertions(+), 5 deletions(-) create mode 100644 AssetStoreAPI.pyc diff --git a/AssetStoreAPI.py b/AssetStoreAPI.py index 9fd7215..4209842 100644 --- a/AssetStoreAPI.py +++ b/AssetStoreAPI.py @@ -240,7 +240,7 @@ def __init__(self, data): 'rating':int(data['rating']['average']), 'ratingCount':int(data['rating']['count']), 'payoutCut':data['payout_cut'], - # 'publisherUrl':data['long_url'], + 'publisherUrl':data['short_url'], 'publisherShortUrl':data['short_url'], 'siteUrl':data['url'], 'supportUrl':data['support_url'], @@ -320,8 +320,11 @@ def __init__(self, data): self.data = { 'id':data[0], 'packageName':data[1], + 'purchase_count':int(data[2]), + 'purchase_cost':float(data[3]), 'date':self.ParseDate(data[4]), - 'isRefunded':data[3] == 'Yes', + 'isRefunded':data[5] == 'Refunded', + 'status':data[5] } def GetInvoiceNumber(self): return self.data['id'] @@ -329,8 +332,14 @@ def GetPackageName(self): return self.data['packageName'] def GetPurchaseDate(self): return self.data['date'] + def GetPurchaseCost(self): + return self.data['purchase_cost'] + def GetPurchaseCount(self): + return self.data['purchase_count'] def IsRefunded(self): return self.data['isRefunded'] + def GetStatusCode(self): + return self.data['status'] class SalesPeriod(object): def __init__(self, data): self.year = int(data['value'][0:4]) diff --git a/AssetStoreAPI.pyc b/AssetStoreAPI.pyc new file mode 100644 index 0000000000000000000000000000000000000000..133fbab8a7349b33b3329ad448bafc88ba529870 GIT binary patch literal 34688 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 CT2gxe literal 0 HcmV?d00001 diff --git a/AssetStoreWebGUI.py b/AssetStoreWebGUI.py index 25d08b8..5a52742 100644 --- a/AssetStoreWebGUI.py +++ b/AssetStoreWebGUI.py @@ -142,15 +142,17 @@ def GenInvoiceHtml(self, client, invoiceNumbers): html += ''%invoiceNumbers html += '' if len(invoiceNumbers) > 0: - html += '' + html += '
Invoice #PackagePurchaseRefunded?
' invoiceNumbersArray = invoiceNumbers.split(',') invoiceNumbersInfo = client.VerifyInvoice(invoiceNumbersArray) for value in invoiceNumbersInfo: - html += ''%( + html += ''%( value.GetInvoiceNumber(), value.GetPackageName(), datetime.fromtimestamp(value.GetPurchaseDate()).strftime('%d %B %Y'), - 'Yes' if value.IsRefunded() else 'No') + str(value.GetPurchaseCount()), + str(value.GetPurchaseCost()), + value.GetStatusCode()) html += '
Invoice #PackagePurchase DatePurchase CountPurchase CostStatus?
%s%s%s%s
%s%s%s%s%s%s
' return html From e994236b8c3789061f0eeda47ff362c78a7c08e8 Mon Sep 17 00:00:00 2001 From: Jesse Gomez Date: Mon, 21 Dec 2015 17:22:10 -0700 Subject: [PATCH 5/5] changes prompt to include order number since they appear to work --- AssetStoreAPI.pyc | Bin 34688 -> 34674 bytes AssetStoreWebGUI.py | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/AssetStoreAPI.pyc b/AssetStoreAPI.pyc index 133fbab8a7349b33b3329ad448bafc88ba529870..cc4b33729f0ecad5bbf60c37755e279edd284d06 100644 GIT binary patch delta 837 zcmXxiSx8h-7zgnCA9c(@(^0%BStu#1nz@XrWo}Vwpy^F>opi>O$c4`g zgtAo9G%Gt~h++mJAwl)zOAr##g9cgoQW;&p=;iV|-}!UTcNR;R=3A#mYxmtnx3_On z+i%!DCP`8Qq+&?kjgW*e_-Y)z)S3hxy$^bdpVSrn2%G9RfGR>-A(7q~K>I_RV8>bx zZH1O~BTRu4D=6FwXVzMH2V7aB5zTOCbeS^bwPX)HyLOqxv@a*6)GfEG?VQJxwLWYffn5#*BIY@qhEDx4O-(>#HEa!>Dp zSq!IZH7KU>%;zZMOkY+V6=nsJ(OgSz=0N&tE<+{dW%r_p*0X;>;goMq6KZH6$A)UL zFW21;^%Qz$8tvTE!)gWBS+DaIbh4_?D(GSP6e#FrEfh53*1y@p4)n8*6t&|vYqiLN zyEI>xLyN_87$RHA6zW9eIh_U%DB=7hCONjXgrIvDX7G&1U8U`mS8AZuBK4|P)T5qO z|FMA?nkpZ}s5o^o(jJS{SNRSfINyJ%2`j9ms%Cs-ZB{kl6KiWLpII473;8Jqa=L8A zDp%%JePPwqw34yLK!<8=SSL~Y7B7VL%6(vi4%7?$;gH&pBR3>zs5{u7rW-8KPh%><7?*;n?Kon^hOl@H51{&VdT8$4Kua8rNd^6X6h7|mby9bo7SdiSZ2Qz zx=hP3E6LDP6Uhp}z(;-Pu?G{0=prWMgAg763*SD!|L=0nkN^MoExv1jmw9aYDW4Bb z%kHaHuQ-nD0A~OfY{jm!vc)NNIIjqi5*(E9qE9h1{0>K(<;Ur&zMj%jz35n+od4@S zGRD~fib#s0uy`9hnU>@2kTdlpSfFHzOmx7HX+5zI{!EWgbV4QRH3SxWCp!=zbK^j@HkA)^hHFmYGYiztY}R7%V-uRWmpl*^drNDcqZqmP9!oF zWOgBmmNQ=>jBHsWiZ=J&(zfB*4)~^lC=yqDD>EF85+inlgd6q&MiuxAp(@2v|;YRSEk)%zAUnWOfyXmY%m#{?bu`rYw5-ojkhdgL2PP$ z3T#toyU24qd*+`j>g7eN(uMKvc(S8Qdf7*<1NbA(TN7nSpl$miQfS`cLOPkdM 0: