commit 7194a0cfe67aa64725c52b95749120a1e6775c0f
parent 3476fbe9678b4779e2fbeffa551201ad813fe3bf
Author: Sergej Orlov <wladimirych@gmail.com>
Date: Wed, 25 Mar 2026 10:06:06 +0100
tracks[strava]: Update parsing date string
Diffstat:
1 file changed, 12 insertions(+), 5 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
@@ -1,6 +1,14 @@
import BaseService from './baseService';
import {corsProxyOriginalUrl, urlViaCorsProxy} from '~/lib/CORSProxy';
+function parseTimeTag(s) {
+ const m = /\b(?<month>[A-Z][a-z]+)\s+(?<day>\d{1,2}),?\s+(?<year>\d{4})\b/u.exec(s);
+ if (m) {
+ return m.groups;
+ }
+ return null;
+}
+
class Strava extends BaseService {
urlRe = /^https?:\/\/(?:.+\.)?strava\.com\/activities\/(\d+)/u;
@@ -55,11 +63,10 @@ class Strava extends BaseService {
if (dom) {
const userName = (dom.querySelector('a.minimal[href*="/athletes/"]')?.textContent ?? '').trim();
const activityTitle = (dom.querySelector('h1.activity-name')?.textContent ?? '').trim();
- let date = dom.querySelector('time')?.textContent ?? '';
- date = date.split(',')[1] ?? '';
- date = date.trim();
- if (userName && activityTitle && date) {
- name = `${userName} - ${activityTitle} ${date}`;
+ const date = parseTimeTag(dom.querySelector('time')?.textContent);
+ const formattedDate = date ? ` ${date.day} ${date.month} ${date.year}` : '';
+ if (userName && activityTitle) {
+ name = `${userName} - ${activityTitle}${formattedDate}`;
}
}
return [{