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:
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);