Rename "trip" to "track"

This commit is contained in:
Jan-Lukas Else 2021-11-10 16:27:27 +01:00
parent 1a6b1e6776
commit 581822dd88
9 changed files with 38 additions and 37 deletions

5
geo.go
View File

@ -81,8 +81,9 @@ func (a *goBlog) proxyTiles(basePath string) http.HandlerFunc {
osmUrl, _ := url.Parse("https://tile.openstreetmap.org/") osmUrl, _ := url.Parse("https://tile.openstreetmap.org/")
tileProxy := http.StripPrefix(basePath, httputil.NewSingleHostReverseProxy(osmUrl)) tileProxy := http.StripPrefix(basePath, httputil.NewSingleHostReverseProxy(osmUrl))
return func(w http.ResponseWriter, r *http.Request) { return func(w http.ResponseWriter, r *http.Request) {
proxyTarget := "https://tile.openstreetmap.org" + r.URL.Path targetUrl := *osmUrl
proxyRequest, _ := http.NewRequest(http.MethodGet, proxyTarget, nil) targetUrl.Path = r.URL.Path
proxyRequest, _ := http.NewRequest(http.MethodGet, targetUrl.String(), nil)
// Copy request headers // Copy request headers
for _, k := range []string{ for _, k := range []string{
"Accept-Encoding", "Accept-Encoding",

View File

@ -11,27 +11,27 @@ import (
"golang.org/x/text/message" "golang.org/x/text/message"
) )
func (p *post) HasTrip() bool { func (p *post) HasTrack() bool {
return p.firstParameter("gpx") != "" return p.firstParameter("gpx") != ""
} }
type tripRenderResult struct { type trackResult struct {
HasPoints bool HasPoints bool
Paths [][]*tripPoint Paths [][]*trackPoint
PathsJSON string PathsJSON string
Kilometers string Kilometers string
Hours string Hours string
Name string Name string
} }
func (a *goBlog) renderTrip(p *post) (result *tripRenderResult, err error) { func (a *goBlog) getTrack(p *post) (result *trackResult, err error) {
gpxString := p.firstParameter("gpx") gpxString := p.firstParameter("gpx")
if gpxString == "" { if gpxString == "" {
return nil, errors.New("no gpx parameter in post") return nil, errors.New("no gpx parameter in post")
} }
// Parse GPX // Parse GPX
parseResult, err := tripParseGPX(gpxString) parseResult, err := trackParseGPX(gpxString)
if err != nil { if err != nil {
return nil, err return nil, err
} }
@ -44,7 +44,7 @@ func (a *goBlog) renderTrip(p *post) (result *tripRenderResult, err error) {
return nil, err return nil, err
} }
result = &tripRenderResult{ result = &trackResult{
HasPoints: len(parseResult.paths) > 0 && len(parseResult.paths[0]) > 0, HasPoints: len(parseResult.paths) > 0 && len(parseResult.paths[0]) > 0,
Paths: parseResult.paths, Paths: parseResult.paths,
PathsJSON: string(pathsJSON), PathsJSON: string(pathsJSON),
@ -63,25 +63,25 @@ func (a *goBlog) renderTrip(p *post) (result *tripRenderResult, err error) {
return result, nil return result, nil
} }
type tripPoint struct { type trackPoint struct {
Lat, Lon float64 Lat, Lon float64
} }
type tripParseResult struct { type trackParseResult struct {
paths [][]*tripPoint paths [][]*trackPoint
gpxData *gpx.GPX gpxData *gpx.GPX
md *gpx.MovingData md *gpx.MovingData
} }
func tripParseGPX(gpxString string) (result *tripParseResult, err error) { func trackParseGPX(gpxString string) (result *trackParseResult, err error) {
result = &tripParseResult{} result = &trackParseResult{}
type tripPath struct { type trackPath struct {
gpxMovingData *gpx.MovingData gpxMovingData *gpx.MovingData
points []*tripPoint points []*trackPoint
} }
var paths []*tripPath var paths []*trackPath
result.gpxData, err = gpx.ParseString(gpxString) result.gpxData, err = gpx.ParseString(gpxString)
if err != nil { if err != nil {
@ -90,11 +90,11 @@ func tripParseGPX(gpxString string) (result *tripParseResult, err error) {
for _, track := range result.gpxData.Tracks { for _, track := range result.gpxData.Tracks {
for _, segment := range track.Segments { for _, segment := range track.Segments {
md := segment.MovingData() md := segment.MovingData()
path := &tripPath{ path := &trackPath{
gpxMovingData: &md, gpxMovingData: &md,
} }
for _, point := range segment.Points { for _, point := range segment.Points {
path.points = append(path.points, &tripPoint{ path.points = append(path.points, &trackPoint{
Lat: point.GetLatitude(), Lon: point.GetLongitude(), Lat: point.GetLatitude(), Lon: point.GetLongitude(),
}) })
} }

View File

@ -9,7 +9,7 @@ import (
"github.com/stretchr/testify/require" "github.com/stretchr/testify/require"
) )
func Test_renderTrip(t *testing.T) { func Test_geoTrack(t *testing.T) {
app := &goBlog{ app := &goBlog{
cfg: &config{ cfg: &config{
Db: &configDb{ Db: &configDb{
@ -41,7 +41,7 @@ func Test_renderTrip(t *testing.T) {
}, },
} }
resEn, err := app.renderTrip(post) resEn, err := app.getTrack(post)
require.NoError(t, err) require.NoError(t, err)
assert.True(t, resEn.HasPoints) assert.True(t, resEn.HasPoints)
@ -50,7 +50,7 @@ func Test_renderTrip(t *testing.T) {
post.Blog = "de" post.Blog = "de"
resDe, err := app.renderTrip(post) resDe, err := app.getTrack(post)
require.NoError(t, err) require.NoError(t, err)
assert.True(t, resDe.HasPoints) assert.True(t, resDe.HasPoints)

View File

@ -61,7 +61,7 @@ func (a *goBlog) initRendering() error {
"likelink": a.likeLink, "likelink": a.likeLink,
"liketitle": a.likeTitle, "liketitle": a.likeTitle,
"photolinks": a.photoLinks, "photolinks": a.photoLinks,
"rendertrip": a.renderTrip, "gettrack": a.getTrack,
// Others // Others
"dateformat": dateFormat, "dateformat": dateFormat,
"isodate": isoDateFormat, "isodate": isoDateFormat,

View File

@ -2,7 +2,7 @@
<title>{{ with .Data.RenderedTitle }}{{ . }} - {{end}}{{ mdtitle .Blog.Title }}</title> <title>{{ with .Data.RenderedTitle }}{{ . }} - {{end}}{{ mdtitle .Blog.Title }}</title>
{{ include "postheadmeta" . }} {{ include "postheadmeta" . }}
{{ with shorturl .Data }}<link rel="shortlink" href="{{ . }}">{{ end }} {{ with shorturl .Data }}<link rel="shortlink" href="{{ . }}">{{ end }}
{{ include "tripheader" . }} {{ include "trackheader" . }}
{{ end }} {{ end }}
{{ define "main" }} {{ define "main" }}
@ -18,7 +18,7 @@
{{ content .Data false }} {{ content .Data false }}
</div> </div>
{{ end }} {{ end }}
{{ include "tripdetails" . }} {{ include "trackdetails" . }}
{{ include "posttax" . }} {{ include "posttax" . }}
</article> </article>
{{ include "author" . }} {{ include "author" . }}

View File

@ -0,0 +1,11 @@
{{ define "trackdetails" }}
{{ if .Data.HasTrack }}
{{ $track := (gettrack .Data) }}
{{ if $track.HasPoints }}
{{ $lang := .Blog.Lang }}
<p>{{ with $track.Name }}<b>{{ . }}</b> {{ end }}{{ with $track.Kilometers }}🏁 {{ . }} {{ string $lang "kilometers" }} {{ end }}{{ with $track.Hours }}⌛ {{ . }}{{ end }}</p>
<div class="p" id="map" data-paths="{{ $track.PathsJSON }}" data-tiles="/tiles/{z}/{x}/{y}.png"></div>
<script defer src="{{ asset "js/geotrack.js" }}"></script>
{{ end }}
{{ end }}
{{ end }}

View File

@ -1,5 +1,5 @@
{{ define "tripheader" }} {{ define "trackheader" }}
{{ if .Data.HasTrip }} {{ if .Data.HasTrack }}
<link rel="stylesheet" href="/x/leaflet/leaflet.css"/> <link rel="stylesheet" href="/x/leaflet/leaflet.css"/>
<script src="/x/leaflet/leaflet.js"></script> <script src="/x/leaflet/leaflet.js"></script>
{{ end }} {{ end }}

View File

@ -1,11 +0,0 @@
{{ define "tripdetails" }}
{{ if .Data.HasTrip }}
{{ $trip := (rendertrip .Data) }}
{{ if $trip.HasPoints }}
{{ $lang := .Blog.Lang }}
<p>{{ with $trip.Name }}<b>{{ . }}</b> {{ end }}{{ with $trip.Kilometers }}🏁 {{ . }} {{ string $lang "kilometers" }} {{ end }}{{ with $trip.Hours }}⌛ {{ . }}{{ end }}</p>
<div class="p" id="map" data-paths="{{ $trip.PathsJSON }}" data-tiles="/tiles/{z}/{x}/{y}.png"></div>
<script defer src="{{ asset "js/geotrip.js" }}"></script>
{{ end }}
{{ end }}
{{ end }}