nakarte

Source code of https://map.sikmir.ru (fork)
git clone git://git.sikmir.ru/nakarte
Log | Files | Refs | LICENSE

commit ed41725ba6e60176c4fdfc279e2bcadbdc565131
parent 5dfa4fa0cfbf699ba6058e54c57a26a06595c993
Author: Sergey Orlov <wladimirych@gmail.com>
Date:   Fri, 16 Jul 2021 22:06:09 +0200

tracks: when loading #nktj parameter try to decode data from utf-8

Fixes #796

Diffstat:
Msrc/lib/leaflet.control.track-list/lib/services/nakarte/loadTracksFromJson.js | 10++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/src/lib/leaflet.control.track-list/lib/services/nakarte/loadTracksFromJson.js b/src/lib/leaflet.control.track-list/lib/services/nakarte/loadTracksFromJson.js @@ -1,3 +1,5 @@ +import utf8 from 'utf8'; + import * as urlSafeBase64 from '../../parsers/urlSafeBase64'; import {TRACKLIST_TRACK_COLORS} from '../../../track-list'; import loadFromUrl from '../../loadFromUrl'; @@ -43,8 +45,12 @@ function parseTrack(rawTrack) { async function loadTracksFromJson(value) { // eslint-disable-line complexity const errCorrupt = [{name: 'Track in url', error: 'CORRUPT'}]; - - const jsonString = urlSafeBase64.decode(value); + let jsonString = urlSafeBase64.decode(value); + try { + jsonString = utf8.decode(jsonString); + } catch (e) { + // so it was not encoded in utf-8, leave it as it is + } let data; try { data = JSON.parse(jsonString);