ZReviewTender 1.3.1 → 1.3.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c8aa61d9df145edfd0173d98b25bb14d808cbdfc245d0e98b6bbbd8a93252d40
4
- data.tar.gz: e9179552c2ee27f447dffd6bad8719e74d5d4081943a6c77e8a95f0347afbdd9
3
+ metadata.gz: 8e59afd752f35d64b4d0f5c3b6958aa53231f79a13e7b6a95e48329af5af5244
4
+ data.tar.gz: f8f3ed908946b3d719b41c471388282de7eeb9d6f364bd71bfd576f907e3d6af
5
5
  SHA512:
6
- metadata.gz: 2470ca04e3802dcd49092a5faf86a606655cfe69dd9077baa05bacc07688d3ca8ddb33fd69aa97f377a46c177be7a86ad4e2cac92184e3510c1500882472785a
7
- data.tar.gz: acbb5ea1d6c87f91bdd7de77160c97c3da9e6733ccc89bee64510f9c66500e476113a1f89886e29eb9e5e42ec49b0a9aa366a8ab2cad120995a4b4887d7136b4
6
+ metadata.gz: 82aa507c9a3f5d5f07d5b1ff853102d7f80e97d476d3903a4ea03126c71a3660fb3f5685773429c4a2d4a3ca4413e1d28e27c606f9c7531ecdd76da6739cd834
7
+ data.tar.gz: 7709b79e8a7b2f3c2ddff3ded887d4e9f3ccf5ca1a0852799bd6eb61b006dba656e1fb854d0b73b0ed425243c98131e485aea8fe7044f3b948b32e2cec59461f
data/.version CHANGED
@@ -1 +1 @@
1
- 1.3.1
1
+ 1.3.3
@@ -39,6 +39,11 @@ class AndroidFetcher < ReviewFetcher
39
39
  reviewsInfoLink = reviewsInfo&.dig("tokenPagination", "nextPageToken")
40
40
 
41
41
  customerReviews = reviewsInfo["reviews"]
42
+
43
+ if customerReviews.nil?
44
+ break
45
+ end
46
+
42
47
  puts "[AndroidFetcher] Fetch reviews in #{config.packageName}, count: #{customerReviews.length}"
43
48
  customerReviews.each do |customerReview|
44
49
 
data/lib/GoogleAPI.rb CHANGED
@@ -45,14 +45,21 @@ class GoogleAPI < Processor
45
45
  result = JSON.parse(response)
46
46
 
47
47
  if !result["error"].nil?
48
- if retryCount >= 10
49
- raise "Could not connect to #{tokenURI}, key id: #{keyID}, error message: #{response}"
48
+ # Quota exceeded for quota metric 'Write requests' and limit 'Write requests per minute per user
49
+ if result["error"]["code"] == 429
50
+ puts "[GoogleAPI] Reached Rate Limited, sleep 30 secs..."
51
+ sleep(30)
52
+ return request(url, method, data, 0)
50
53
  else
51
- @token = generateJWT()
52
- message = "JWT Invalid, retry. (#{retryCount + 1})"
53
- logger.logWarn(message)
54
- puts "[GoogleAPI] #{message}"
55
- return request(url, method, data, retryCount + 1)
54
+ if retryCount >= 10
55
+ raise "Could not connect to #{tokenURI}, key id: #{keyID}, error message: #{response}"
56
+ else
57
+ @token = generateJWT()
58
+ message = "JWT Invalid, retry. (#{retryCount + 1})"
59
+ logger.logWarn(message)
60
+ puts "[GoogleAPI] #{message}"
61
+ return request(url, method, data, retryCount + 1)
62
+ end
56
63
  end
57
64
  else
58
65
  return result
@@ -73,6 +73,7 @@ class GoogleSheetProcessor < Processor
73
73
  end
74
74
  end
75
75
 
76
+ values = []
76
77
  filterReviews.each do |review|
77
78
  cols = []
78
79
  formatValues.each do |formatValue|
@@ -89,10 +90,15 @@ class GoogleSheetProcessor < Processor
89
90
 
90
91
  cols.append(formatValue)
91
92
  end
92
-
93
- puts "[GoogleSheetProcessor] insert #{cols} to #{sheetID}-#{sheetName}"
93
+ values.append(cols)
94
+ end
94
95
 
95
- googleAPI.request("https://sheets.googleapis.com/v4/spreadsheets/#{sheetID}/values/#{sheetName}:append?valueInputOption=RAW", "POST", {:values => [cols]})
96
+ page = 1
97
+ limit = 500
98
+ values.each_slice(limit) do |value|
99
+ puts "[GoogleSheetProcessor] Insert rows(#{page}/#{(values.length/limit).ceil + 1}) to #{sheetID}-#{sheetName}"
100
+ page += 1
101
+ googleAPI.request("https://sheets.googleapis.com/v4/spreadsheets/#{sheetID}/values/#{sheetName}!A1:append?valueInputOption=RAW", "POST", {:values => value})
96
102
  end
97
103
 
98
104
  return reviews
@@ -82,6 +82,7 @@ class SlackProcessor < Processor
82
82
  logger.logError(payload)
83
83
  logger.logError(result)
84
84
  if result[:message] == "ratelimited"
85
+ puts "[SlackProcessor] Reached Rate Limited, sleep 1 sec..."
85
86
  sleep(1)
86
87
  pendingPayloads.insert(0, payload)
87
88
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ZReviewTender
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.1
4
+ version: 1.3.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - ZhgChgLi
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-08-20 00:00:00.000000000 Z
11
+ date: 2022-10-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: net-http
@@ -38,34 +38,6 @@ dependencies:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: 2.4.1
41
- - !ruby/object:Gem::Dependency
42
- name: google-cloud-translate-v2
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - "~>"
46
- - !ruby/object:Gem::Version
47
- version: 0.3.0
48
- type: :runtime
49
- prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - "~>"
53
- - !ruby/object:Gem::Version
54
- version: 0.3.0
55
- - !ruby/object:Gem::Dependency
56
- name: google-apis-androidpublisher_v3
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - "~>"
60
- - !ruby/object:Gem::Version
61
- version: 0.25.0
62
- type: :runtime
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - "~>"
67
- - !ruby/object:Gem::Version
68
- version: 0.25.0
69
41
  description: ZReviewTender - App Reviews Automatic Bot
70
42
  email:
71
43
  executables: