git-fit 0.15.6 → 0.16.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/git_fit/sync/keep.rb +21 -12
- data/lib/git_fit/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 96f07075fbc309422c6d22333b450da57b2027720bc5600ac4fe8f186bd0a02e
|
|
4
|
+
data.tar.gz: d4402443354e15c63139a209f8ab8dac1b8a14b4b06de2bcf591c305d077d946
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 3bed1beb9ac7ac48482acda16ebf7cc24aa79a75d4b66a94b291ae9ec30434de2a2f5d8aa535cb4cfc4f0685fe10f27be8c753e9f71c8159d18376efa612858a
|
|
7
|
+
data.tar.gz: 29503c3c03b0373dea84e6335a8abb8be0be846e46e6a77453132b692dfe85b70dd6ff8d12c69319caa4421ab7e9b55029fe89bad444a7788530da071ce24303
|
data/lib/git_fit/sync/keep.rb
CHANGED
|
@@ -205,17 +205,18 @@ module GitFit
|
|
|
205
205
|
keep_id = extract_id(run_data['id'])
|
|
206
206
|
return false unless keep_id
|
|
207
207
|
|
|
208
|
+
raw = run_data.dup
|
|
209
|
+
if raw['heartRate'].is_a?(Hash)
|
|
210
|
+
raw['heartRate'] = raw['heartRate'].dup
|
|
211
|
+
raw['heartRate'].delete('heartRates')
|
|
212
|
+
end
|
|
213
|
+
raw.delete('geoPoints')
|
|
214
|
+
|
|
208
215
|
write_source_archive({
|
|
216
|
+
archiveVersion: 0,
|
|
209
217
|
source: 'keep',
|
|
210
218
|
decodedAt: Time.now.utc.strftime('%Y-%m-%dT%H:%M:%SZ'),
|
|
211
|
-
|
|
212
|
-
startTime: run_data['startTime'],
|
|
213
|
-
endTime: run_data['endTime'],
|
|
214
|
-
duration: run_data['duration'],
|
|
215
|
-
dataType: run_data['dataType'],
|
|
216
|
-
distance: run_data['distance'],
|
|
217
|
-
region: run_data['region'],
|
|
218
|
-
},
|
|
219
|
+
raw: raw,
|
|
219
220
|
geoPoints: payload[:geo_points],
|
|
220
221
|
heartRates: payload[:hr_data],
|
|
221
222
|
}, keep_id)
|
|
@@ -236,13 +237,17 @@ module GitFit
|
|
|
236
237
|
@last_http_code = nil
|
|
237
238
|
keep_id = extract_id(compound_id) || compound_id
|
|
238
239
|
raw = JSON.parse(File.read(raw_path(keep_id)))
|
|
239
|
-
run_data = raw['
|
|
240
|
+
run_data = if raw['archiveVersion'] == 0
|
|
241
|
+
raw['raw'].merge('id' => compound_id)
|
|
242
|
+
else
|
|
243
|
+
raw['meta'].merge('id' => compound_id)
|
|
244
|
+
end
|
|
240
245
|
|
|
241
246
|
wgs = load_wgs_points(keep_id, raw)
|
|
242
247
|
return false unless wgs&.any?
|
|
243
248
|
|
|
244
249
|
if raw['heartRates']&.any?
|
|
245
|
-
vals = raw['heartRates'].map { |h| h['value'] }.compact
|
|
250
|
+
vals = raw['heartRates'].map { |h| h['value'] || h['beatsPerMinute'] }.compact
|
|
246
251
|
run_data['heartRate'] = { 'averageHeartRate' => vals.sum / vals.size } if vals.any?
|
|
247
252
|
end
|
|
248
253
|
|
|
@@ -261,7 +266,11 @@ module GitFit
|
|
|
261
266
|
pt['timestamp'] ? Time.parse(pt['timestamp']) : nil, pt['heartrate']] }
|
|
262
267
|
else
|
|
263
268
|
payload = { geo_points: raw['geoPoints'], hr_data: raw['heartRates'] }
|
|
264
|
-
run_data = raw['
|
|
269
|
+
run_data = if raw['archiveVersion'] == 0
|
|
270
|
+
raw['raw']
|
|
271
|
+
else
|
|
272
|
+
raw['meta']
|
|
273
|
+
end
|
|
265
274
|
Source::Keep.compute_wgs_points(payload, run_data)
|
|
266
275
|
end
|
|
267
276
|
end
|
|
@@ -302,7 +311,7 @@ module GitFit
|
|
|
302
311
|
data_type = run_data['dataType']
|
|
303
312
|
|
|
304
313
|
avg_hr = run_data.dig('heartRate', 'averageHeartRate')
|
|
305
|
-
avg_hr = nil if avg_hr && avg_hr
|
|
314
|
+
avg_hr = nil if avg_hr && avg_hr <= 0
|
|
306
315
|
|
|
307
316
|
polyline_str = nil
|
|
308
317
|
total_elevation = run_data['elevation']
|
data/lib/git_fit/version.rb
CHANGED