99 lines
2.5 KiB
Go
99 lines
2.5 KiB
Go
|
package main
|
||
|
|
||
|
import (
|
||
|
"git.okoyono.de/oko-intern/okospaceapi/pkg/spaceapi"
|
||
|
"net/http"
|
||
|
)
|
||
|
|
||
|
//go:generate ../generate-spaceapi-types.sh
|
||
|
|
||
|
func main() {
|
||
|
definition := spaceapi.Root{
|
||
|
// TODO: Fill up with stuff
|
||
|
ApiCompatibility: []string{"14"},
|
||
|
Space: "økoyono",
|
||
|
Url: "https://okoyono.de/",
|
||
|
Contact: &spaceapi.Contact{
|
||
|
Email: "oko@datenhalter.de", // TODO: Better email
|
||
|
Mastodon: "@f@social.okoyono.de", // TODO: Replace with real handle
|
||
|
Matrix: "#public:matrix.okoyono.de",
|
||
|
},
|
||
|
Location: &spaceapi.Location{
|
||
|
Lat: 0.0, // TODO: Fill with cool coordinates
|
||
|
Lon: 0.0, // TODO: Fill with cool coordinates
|
||
|
Timezone: "Europe/Berlin",
|
||
|
},
|
||
|
Logo: "https://okoyono.de/images/ant.svg",
|
||
|
Links: []*spaceapi.LinksItems{
|
||
|
{
|
||
|
Description: "Website",
|
||
|
Name: "website",
|
||
|
Url: "https://okoyono.de",
|
||
|
},
|
||
|
{
|
||
|
Description: "Forgejo (Sourcecode)",
|
||
|
Name: "forgejo",
|
||
|
Url: "https://git.okoyono.de",
|
||
|
},
|
||
|
{
|
||
|
Description: "Mastodon (Social Media)",
|
||
|
Name: "mastodon",
|
||
|
Url: "https://social.okoyono.de",
|
||
|
},
|
||
|
{
|
||
|
Description: "OwnCast (Tube)",
|
||
|
Name: "owncast",
|
||
|
Url: "https://tube.okoyono.de",
|
||
|
},
|
||
|
{
|
||
|
Description: "SearXNG (Search)",
|
||
|
Name: "searxng",
|
||
|
Url: "https://search.okoyono.de",
|
||
|
},
|
||
|
{
|
||
|
Description: "Etherpad (pad)",
|
||
|
Name: "etherpad",
|
||
|
Url: "https://pad.okoyono.de",
|
||
|
},
|
||
|
},
|
||
|
Projects: []string{
|
||
|
"https://buchdesmonats.okoyono.de/",
|
||
|
"https://comicdesmonats.okoyono.de/",
|
||
|
"https://git.okoyono.de/okoyono/weatherstation",
|
||
|
},
|
||
|
Sensors: &spaceapi.Sensors{
|
||
|
TotalMemberCount: []*spaceapi.TotalMemberCountItems{
|
||
|
{
|
||
|
Description: "We are a small group of people from south Germany, meeting remote on a regular basis.",
|
||
|
Location: "Remote",
|
||
|
Value: 6,
|
||
|
},
|
||
|
},
|
||
|
//Temperature: []*spaceapi.TemperatureItems{
|
||
|
// {
|
||
|
// Location: "@f",
|
||
|
// Name: "weatherstatiøn",
|
||
|
// Description: "Weatherstatiøn located at @f.",
|
||
|
// Value: sensors.TemperatureF(),
|
||
|
// },
|
||
|
//},
|
||
|
},
|
||
|
}
|
||
|
|
||
|
json, err := definition.MarshalJSON()
|
||
|
if err != nil {
|
||
|
panic(err)
|
||
|
}
|
||
|
|
||
|
err = http.ListenAndServe(":8080", http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
|
||
|
w.Header().Set("Content-Type", "application/json")
|
||
|
_, err := w.Write(json)
|
||
|
if err != nil {
|
||
|
http.Error(w, err.Error(), http.StatusInternalServerError)
|
||
|
}
|
||
|
}))
|
||
|
if err != nil {
|
||
|
panic(err)
|
||
|
}
|
||
|
}
|