diff --git a/geo.go b/geo.go index 9542521..5aa4d75 100644 --- a/geo.go +++ b/geo.go @@ -81,8 +81,9 @@ func (a *goBlog) proxyTiles(basePath string) http.HandlerFunc { osmUrl, _ := url.Parse("https://tile.openstreetmap.org/") tileProxy := http.StripPrefix(basePath, httputil.NewSingleHostReverseProxy(osmUrl)) return func(w http.ResponseWriter, r *http.Request) { - proxyTarget := "https://tile.openstreetmap.org" + r.URL.Path - proxyRequest, _ := http.NewRequest(http.MethodGet, proxyTarget, nil) + targetUrl := *osmUrl + targetUrl.Path = r.URL.Path + proxyRequest, _ := http.NewRequest(http.MethodGet, targetUrl.String(), nil) // Copy request headers for _, k := range []string{ "Accept-Encoding", diff --git a/geoTrips.go b/geoTrack.go similarity index 80% rename from geoTrips.go rename to geoTrack.go index cba02a0..1ec8278 100644 --- a/geoTrips.go +++ b/geoTrack.go @@ -11,27 +11,27 @@ import ( "golang.org/x/text/message" ) -func (p *post) HasTrip() bool { +func (p *post) HasTrack() bool { return p.firstParameter("gpx") != "" } -type tripRenderResult struct { +type trackResult struct { HasPoints bool - Paths [][]*tripPoint + Paths [][]*trackPoint PathsJSON string Kilometers string Hours 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") if gpxString == "" { return nil, errors.New("no gpx parameter in post") } // Parse GPX - parseResult, err := tripParseGPX(gpxString) + parseResult, err := trackParseGPX(gpxString) if err != nil { return nil, err } @@ -44,7 +44,7 @@ func (a *goBlog) renderTrip(p *post) (result *tripRenderResult, err error) { return nil, err } - result = &tripRenderResult{ + result = &trackResult{ HasPoints: len(parseResult.paths) > 0 && len(parseResult.paths[0]) > 0, Paths: parseResult.paths, PathsJSON: string(pathsJSON), @@ -63,25 +63,25 @@ func (a *goBlog) renderTrip(p *post) (result *tripRenderResult, err error) { return result, nil } -type tripPoint struct { +type trackPoint struct { Lat, Lon float64 } -type tripParseResult struct { - paths [][]*tripPoint +type trackParseResult struct { + paths [][]*trackPoint gpxData *gpx.GPX md *gpx.MovingData } -func tripParseGPX(gpxString string) (result *tripParseResult, err error) { - result = &tripParseResult{} +func trackParseGPX(gpxString string) (result *trackParseResult, err error) { + result = &trackParseResult{} - type tripPath struct { + type trackPath struct { gpxMovingData *gpx.MovingData - points []*tripPoint + points []*trackPoint } - var paths []*tripPath + var paths []*trackPath result.gpxData, err = gpx.ParseString(gpxString) if err != nil { @@ -90,11 +90,11 @@ func tripParseGPX(gpxString string) (result *tripParseResult, err error) { for _, track := range result.gpxData.Tracks { for _, segment := range track.Segments { md := segment.MovingData() - path := &tripPath{ + path := &trackPath{ gpxMovingData: &md, } for _, point := range segment.Points { - path.points = append(path.points, &tripPoint{ + path.points = append(path.points, &trackPoint{ Lat: point.GetLatitude(), Lon: point.GetLongitude(), }) } diff --git a/geoTrips_test.go b/geoTrack_test.go similarity index 89% rename from geoTrips_test.go rename to geoTrack_test.go index b03fd1c..475ad64 100644 --- a/geoTrips_test.go +++ b/geoTrack_test.go @@ -9,7 +9,7 @@ import ( "github.com/stretchr/testify/require" ) -func Test_renderTrip(t *testing.T) { +func Test_geoTrack(t *testing.T) { app := &goBlog{ cfg: &config{ 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) assert.True(t, resEn.HasPoints) @@ -50,7 +50,7 @@ func Test_renderTrip(t *testing.T) { post.Blog = "de" - resDe, err := app.renderTrip(post) + resDe, err := app.getTrack(post) require.NoError(t, err) assert.True(t, resDe.HasPoints) diff --git a/render.go b/render.go index 65c8268..2a6d443 100644 --- a/render.go +++ b/render.go @@ -61,7 +61,7 @@ func (a *goBlog) initRendering() error { "likelink": a.likeLink, "liketitle": a.likeTitle, "photolinks": a.photoLinks, - "rendertrip": a.renderTrip, + "gettrack": a.getTrack, // Others "dateformat": dateFormat, "isodate": isoDateFormat, diff --git a/templates/assets/js/geotrip.js b/templates/assets/js/geotrack.js similarity index 100% rename from templates/assets/js/geotrip.js rename to templates/assets/js/geotrack.js diff --git a/templates/post.gohtml b/templates/post.gohtml index d54e4db..268d2e1 100644 --- a/templates/post.gohtml +++ b/templates/post.gohtml @@ -2,7 +2,7 @@ {{ with .Data.RenderedTitle }}{{ . }} - {{end}}{{ mdtitle .Blog.Title }} {{ include "postheadmeta" . }} {{ with shorturl .Data }}{{ end }} - {{ include "tripheader" . }} + {{ include "trackheader" . }} {{ end }} {{ define "main" }} @@ -18,7 +18,7 @@ {{ content .Data false }} {{ end }} - {{ include "tripdetails" . }} + {{ include "trackdetails" . }} {{ include "posttax" . }} {{ include "author" . }} diff --git a/templates/trackdetails.gohtml b/templates/trackdetails.gohtml new file mode 100644 index 0000000..712aa5e --- /dev/null +++ b/templates/trackdetails.gohtml @@ -0,0 +1,11 @@ +{{ define "trackdetails" }} + {{ if .Data.HasTrack }} + {{ $track := (gettrack .Data) }} + {{ if $track.HasPoints }} + {{ $lang := .Blog.Lang }} +

{{ with $track.Name }}{{ . }} {{ end }}{{ with $track.Kilometers }}🏁 {{ . }} {{ string $lang "kilometers" }} {{ end }}{{ with $track.Hours }}⌛ {{ . }}{{ end }}

+
+ + {{ end }} + {{ end }} +{{ end }} \ No newline at end of file diff --git a/templates/tripheader.gohtml b/templates/trackheader.gohtml similarity index 67% rename from templates/tripheader.gohtml rename to templates/trackheader.gohtml index da767ef..f7b76e1 100644 --- a/templates/tripheader.gohtml +++ b/templates/trackheader.gohtml @@ -1,5 +1,5 @@ -{{ define "tripheader" }} - {{ if .Data.HasTrip }} +{{ define "trackheader" }} + {{ if .Data.HasTrack }} {{ end }} diff --git a/templates/tripdetails.gohtml b/templates/tripdetails.gohtml deleted file mode 100644 index 8df9977..0000000 --- a/templates/tripdetails.gohtml +++ /dev/null @@ -1,11 +0,0 @@ -{{ define "tripdetails" }} - {{ if .Data.HasTrip }} - {{ $trip := (rendertrip .Data) }} - {{ if $trip.HasPoints }} - {{ $lang := .Blog.Lang }} -

{{ with $trip.Name }}{{ . }} {{ end }}{{ with $trip.Kilometers }}🏁 {{ . }} {{ string $lang "kilometers" }} {{ end }}{{ with $trip.Hours }}⌛ {{ . }}{{ end }}

-
- - {{ end }} - {{ end }} -{{ end }} \ No newline at end of file