mirror of
				https://bitbucket.org/s_l_teichmann/mtsatellite
				synced 2025-11-04 09:55:34 +01:00 
			
		
		
		
	Added JSON marshaller for players.
This commit is contained in:
		@@ -1,16 +1,47 @@
 | 
			
		||||
package main
 | 
			
		||||
 | 
			
		||||
import "net/http"
 | 
			
		||||
import (
 | 
			
		||||
	"bytes"
 | 
			
		||||
	"html/template"
 | 
			
		||||
	"net/http"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
var geoJSONTmpl = template.Must(template.New("geojson").Parse(
 | 
			
		||||
	`{ "type": "Feature",
 | 
			
		||||
  "geometry": {
 | 
			
		||||
    "type": "Point",
 | 
			
		||||
    "coordinates": [{{.X}}, {{.Z}}]
 | 
			
		||||
  },
 | 
			
		||||
  "properties": {
 | 
			
		||||
    "name": {{.Name || html }}
 | 
			
		||||
  }
 | 
			
		||||
}`))
 | 
			
		||||
 | 
			
		||||
type player struct {
 | 
			
		||||
	X    float64
 | 
			
		||||
	Y    float64
 | 
			
		||||
	Z    float64
 | 
			
		||||
	Name string
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type players struct {
 | 
			
		||||
	fifo string
 | 
			
		||||
	wsf  *websocketForwarder
 | 
			
		||||
	pls  []*player
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func newPlayers(fifo string, wsf *websocketForwarder) *players {
 | 
			
		||||
	return &players{fifo: fifo, wsf: wsf}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (p *player) MarshalJSON() ([]byte, error) {
 | 
			
		||||
	var buf bytes.Buffer
 | 
			
		||||
	if err := geoJSONTmpl.Execute(&buf, p); err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	return buf.Bytes(), nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (ps *players) run() {
 | 
			
		||||
	for {
 | 
			
		||||
		// TODO: Implement me!
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user