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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ee369bc92bf12108c44bc5a6b6e5381bdac1651fbb49ae3aa3c533a235d04690
4
- data.tar.gz: 473704789d8acb38cee61e21f174cfa4e9f77e7402909469e384990dd550104f
3
+ metadata.gz: 96f07075fbc309422c6d22333b450da57b2027720bc5600ac4fe8f186bd0a02e
4
+ data.tar.gz: d4402443354e15c63139a209f8ab8dac1b8a14b4b06de2bcf591c305d077d946
5
5
  SHA512:
6
- metadata.gz: d7d8e4820cfa107ef9fe7d8ea7398c4073164c82ebbe3f128bdb0067616e1ef51fa5b404cfe319f8a25b916322f7bd039910ad2a816ee8e36cc3727c694472b4
7
- data.tar.gz: 16f3953e8155163d88862847c0dbd226ec33716b4c9957eddcb3f27a517fca3b8e8bbf93487b0525f7916359bf3f6115701bb2ac0c30030909eed093ba5d649c
6
+ metadata.gz: 3bed1beb9ac7ac48482acda16ebf7cc24aa79a75d4b66a94b291ae9ec30434de2a2f5d8aa535cb4cfc4f0685fe10f27be8c753e9f71c8159d18376efa612858a
7
+ data.tar.gz: 29503c3c03b0373dea84e6335a8abb8be0be846e46e6a77453132b692dfe85b70dd6ff8d12c69319caa4421ab7e9b55029fe89bad444a7788530da071ce24303
@@ -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
- meta: {
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['meta'].merge('id' => compound_id)
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['meta']
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 < 0
314
+ avg_hr = nil if avg_hr && avg_hr <= 0
306
315
 
307
316
  polyline_str = nil
308
317
  total_elevation = run_data['elevation']
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module GitFit
4
- VERSION = '0.15.6'
4
+ VERSION = '0.16.0'
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: git-fit
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.15.6
4
+ version: 0.16.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Lax