commit 516121124e7e98fb77580f08d49cfbb5f8b4097e
parent 746c52b931e33da0fdbec3e1bcf95b91627b74bb
Author: Sergey Orlov <wladimirych@gmail.com>
Date: Wed, 26 Aug 2020 22:57:17 +0200
tracks: refactor, simplify parsing strava tracks
Diffstat:
1 file changed, 4 insertions(+), 9 deletions(-)
diff --git a/src/lib/leaflet.control.track-list/lib/services/strava.js b/src/lib/leaflet.control.track-list/lib/services/strava.js
@@ -24,7 +24,7 @@ class Strava extends BaseService {
{
url: urlViaCorsProxy(`https://www.strava.com/stream/${trackId}?streams%5B%5D=latlng`),
options: {
- responseType: 'binarystring',
+ responseType: 'json',
isResponseSuccess
}
}
@@ -40,17 +40,12 @@ class Strava extends BaseService {
if (trackResponse.status !== 200) {
return [{error: statusMessages[trackResponse.status]}];
}
- let data;
let name = `Strava ${this.trackId}`;
- try {
- data = JSON.parse(trackResponse.responseBinaryText);
- } catch (e) {
- return [{name, error: 'UNSUPPORTED'}];
- }
- if (!data.latlng) {
+ const latlngs = trackResponse.responseJSON?.latlng;
+ if (!latlngs || !Array.isArray(latlngs)) {
return [{name, error: 'UNSUPPORTED'}];
}
- const tracks = [data.latlng.map((p) => ({lat: p[0], lng: p[1]}))];
+ const tracks = [latlngs.map((p) => ({lat: p[0], lng: p[1]}))];
let dom;
try {
dom = (new DOMParser()).parseFromString(pageResponse.response, 'text/html');