converts trail duration to seconds

This commit is contained in:
Christian Beutel
2025-06-25 15:59:56 +02:00
parent 4ab112e61b
commit 54d7357603
10 changed files with 57 additions and 15 deletions

View File

@@ -274,7 +274,7 @@ func createTrailFromTour(app core.App, k *KomootApi, detailedTour *DetailedKomoo
"distance": detailedTour.Distance,
"elevation_gain": detailedTour.ElevationUp,
"elevation_loss": detailedTour.ElevationDown,
"duration": detailedTour.Duration / 60,
"duration": detailedTour.Duration,
"date": detailedTour.Date,
"external_provider": "komoot",
"external_id": strconv.Itoa(detailedTour.ID),

View File

@@ -342,7 +342,7 @@ func createTrailFromRoute(app core.App, route StravaRoute, gpx *filesystem.File,
"public": !route.Private,
"distance": route.Distance,
"elevation_gain": route.ElevationGain,
"duration": route.EstimatedMovingTime / 60,
"duration": route.EstimatedMovingTime,
"date": time.Unix(int64(route.Timestamp), 0),
"external_provider": "strava",
"external_id": route.IDStr,
@@ -523,7 +523,7 @@ func createTrailFromActivity(app core.App, activity *DetailedStravaActivity, gpx
"public": !activity.Private,
"distance": activity.Distance,
"elevation_gain": activity.TotalElevationGain,
"duration": activity.ElapsedTime / 60,
"duration": activity.ElapsedTime,
"date": activity.StartDate,
"external_provider": "strava",
"external_id": activity.ID,

View File

@@ -0,0 +1,42 @@
package migrations
import (
"github.com/pocketbase/pocketbase/core"
m "github.com/pocketbase/pocketbase/migrations"
)
func init() {
m.Register(func(app core.App) error {
trails, err := app.FindAllRecords("trails")
if err != nil {
return err
}
for _, t := range trails {
duration := t.GetFloat("duration")
t.Set("duration", duration*60)
err = app.Save(t)
if err != nil {
return err
}
}
return nil
}, func(app core.App) error {
trails, err := app.FindAllRecords("trails")
if err != nil {
return err
}
for _, t := range trails {
duration := t.GetFloat("duration")
t.Set("duration", duration/60)
err = app.Save(t)
if err != nil {
return err
}
}
return nil
})
}

View File

@@ -120,7 +120,7 @@
>
<span
><i class="fa fa-clock mr-2"></i>{formatTimeHHMM(
log.duration ? log.duration / 60 : undefined,
log.duration ? log.duration : undefined,
)}</span
>
<span

View File

@@ -155,7 +155,7 @@
{formatElevation(log.elevation_loss)}
</td>
<td>
{formatTimeHHMM(log.duration ? log.duration / 60 : undefined)}
{formatTimeHHMM(log.duration ? log.duration : undefined)}
</td>
{#if showCategory}
<td>

View File

@@ -1,16 +1,16 @@
import { browser } from "$app/environment";
import { page } from "$app/state";
import { get } from "svelte/store";
export function formatTimeHHMM(minutes?: number) {
if (!minutes) {
export function formatTimeHHMM(seconds?: number) {
if (seconds == null || isNaN(seconds)) {
return "-";
}
const m = minutes % 60;
const h = (minutes - m) / 60;
const totalMinutes = Math.floor(seconds / 60);
const m = totalMinutes % 60;
const h = Math.floor(totalMinutes / 60);
return (h < 10 ? "0" : "") + h.toString() + "h " + (Math.round(m) < 10 ? "0" : "") + Math.round(m).toString() + "m";
return (h < 10 ? "0" : "") + h.toString() + "h " + (m < 10 ? "0" : "") + m.toString() + "m";
}
export function formatDistance(meters?: number) {

View File

@@ -62,7 +62,7 @@ export async function gpx2trail(gpxString: string, fallbackName?: string, f: (ur
.substring(0, 10);
}
trail.duration = totals.duration / 1000 / 60
trail.duration = totals.duration / 1000
trail.elevation_gain = totals.elevationGain;
trail.elevation_loss = totals.elevationLoss;
trail.distance = totals.distance

View File

@@ -959,7 +959,7 @@ export class ElevationProfile {
if (time) {
const timePrevious = this.times[i - 1];
const timeDelta = (time.getTime() - timePrevious.getTime()) / (1000 * 60);
const timeDelta = (time.getTime() - timePrevious.getTime()) / (1000);
cumulatedTime += timeDelta;
this.cumulatedTime.push(cumulatedTime)
}

View File

@@ -316,7 +316,7 @@
><i class="fa fa-clock mr-3"></i>{$_("duration")}</span
>
<p class="text-3xl font-bold">
{formatTimeHHMM(totalDuration / 60)}
{formatTimeHHMM(totalDuration)}
</p>
</div>
<div

View File

@@ -858,7 +858,7 @@
overwriteGPX = true;
const totals = route.features;
$formData.distance = totals.distance;
$formData.duration = totals.duration / 1000 / 60;
$formData.duration = totals.duration / 1000;
$formData.elevation_gain = totals.elevationGain;
$formData.elevation_loss = totals.elevationLoss;
$formData.expand!.gpx_data = route.toString();