From cf3715068c81e9a3a8b6ebd4a6a3dc298f819011 Mon Sep 17 00:00:00 2001 From: Iris Lightshard Date: Tue, 29 Oct 2024 23:38:05 -0600 Subject: [PATCH] grimoire: icecast frontend --- .gitignore | 1 + config.go | 112 +++++++++++++++++++++++++++++++++++++++++++ go.mod | 5 ++ go.sum | 2 + grimoire.go | 60 +++++++++++++++++++++++ static/banner.gif | Bin 0 -> 58429 bytes static/online.gif | Bin 0 -> 37143 bytes static/style.css | 61 +++++++++++++++++++++++ templates/err.html | 18 +++++++ templates/radio.html | 30 ++++++++++++ 10 files changed, 289 insertions(+) create mode 100644 .gitignore create mode 100644 config.go create mode 100644 go.mod create mode 100644 go.sum create mode 100644 grimoire.go create mode 100644 static/banner.gif create mode 100644 static/online.gif create mode 100644 static/style.css create mode 100644 templates/err.html create mode 100644 templates/radio.html diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..8be27a0 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +/grimoire diff --git a/config.go b/config.go new file mode 100644 index 0000000..041235a --- /dev/null +++ b/config.go @@ -0,0 +1,112 @@ +package main + +import ( + "os" + "path/filepath" + "runtime" + "strings" +) + +type Config struct { + Streams map[string]string // stream in the form stream::name=url + DataDir string // location of templates/ and static/ + Name string // name of this instance + ListenAddress string // address the webserver listens on +} + +func GetConfigLocation() string { + home := os.Getenv("HOME") + appdata := os.Getenv("APPDATA") + switch runtime.GOOS { + case "windows": + return filepath.Join(appdata, "grimoire") + case "darwin": + return filepath.Join(home, "Library", "Application Support", "grimoire") + case "plan9": + return filepath.Join(home, "lib", "grimoire") + default: + return filepath.Join(home, ".config", "grimoire") + } +} + +func ensureConfigLocationExists() { + fileInfo, err := os.Stat(GetConfigLocation()) + + if os.IsNotExist(err) { + os.MkdirAll(GetConfigLocation(), os.ModePerm) + } else if !fileInfo.IsDir() { + panic("Config location is not a directory!") + } +} + +func ReadConfig() *Config { + ensureConfigLocationExists() + return parseConfig(filepath.Join(GetConfigLocation(), "grimoire.conf")) +} + +func (self *Config) Write() error { + ensureConfigLocationExists() + return writeConfig(self, filepath.Join(GetConfigLocation(), "grimoire.conf")) +} + +func writeConfig(cfg *Config, configFile string) error { + f, err := os.Create(configFile) + if err != nil { + return err + } + + defer f.Close() + + f.WriteString("listenAddress=" + cfg.ListenAddress + "\n") + f.WriteString("dataDir=" + cfg.DataDir + "\n") + f.WriteString("name=" + cfg.Name + "\n") + for k, v := range cfg.Streams { + f.WriteString("stream::" + k + "=" + v) + } + return nil +} + +func parseConfig(configFile string) *Config { + f, err := os.ReadFile(configFile) + cfg := &Config{} + cfg.Streams = make(map[string]string) + if err != nil { + return cfg + } + + fileData := string(f[:]) + + lines := strings.Split(fileData, "\n") + + for _, l := range lines { + if len(l) == 0 { + continue + } + if !strings.Contains(l, "=") { + panic("Malformed config not in INI format") + } + + kvp := strings.Split(l, "=") + k := strings.TrimSpace(kvp[0]) + v := strings.TrimSpace(kvp[1]) + switch k { + case "listenAddress": + cfg.ListenAddress = v + case "dataDir": + cfg.DataDir = v + case "name": + cfg.Name = v + default: + if strings.HasPrefix(k, "stream::") { + stream := strings.Split(k, "stream::")[1] + if len(stream) == 0 { + panic("stream in config has no name!") + } + cfg.Streams[stream] = v + } else { + panic("Unrecognized config option: " + k) + } + } + } + return cfg +} diff --git a/go.mod b/go.mod new file mode 100644 index 0000000..eef5640 --- /dev/null +++ b/go.mod @@ -0,0 +1,5 @@ +module forge.lightcrystal.systems/lightcrystal/grimoire + +go 1.23.0 + +require hacklab.nilfm.cc/quartzgun v0.3.2 // indirect diff --git a/go.sum b/go.sum new file mode 100644 index 0000000..be61828 --- /dev/null +++ b/go.sum @@ -0,0 +1,2 @@ +hacklab.nilfm.cc/quartzgun v0.3.2 h1:PmRFZ/IgsXVWyNn1iOsQ/ZeMnOQIQy0PzFakhXBdZoU= +hacklab.nilfm.cc/quartzgun v0.3.2/go.mod h1:P6qK4HB0CD/xfyRq8wdEGevAPFDDmv0KCaESSvv93LU= diff --git a/grimoire.go b/grimoire.go new file mode 100644 index 0000000..8b13bee --- /dev/null +++ b/grimoire.go @@ -0,0 +1,60 @@ +package main + +import ( + "hacklab.nilfm.cc/quartzgun/renderer" + "hacklab.nilfm.cc/quartzgun/router" + "hacklab.nilfm.cc/quartzgun/util" + + "net/http" + "path/filepath" + "html/template" +) + +func withTitleAndStreamsAndSentry(next http.Handler, cfg Config, sentry *Sentry) http.Handler { + handlerFunc := func(w http.ResponseWriter, req *http.Request) { + util.AddContextValue(req, "title", cfg.Name) + util.AddContextValue(req, "streams", cfg.Streams) + util.AddContextValue(req, "sentry", sentry) + next.ServeHTTP(w, req) + } + + return http.HandlerFunc(handlerFunc) +} + +type Sentry struct {} + +func (self *Sentry) GetStatus(url string) int { + resp, err := http.Get(url) + if err != nil { + return 500 + } else { + return resp.StatusCode + } +} + +func main() { + cfg := ReadConfig() + + templateRoot := filepath.Join(cfg.DataDir, "templates") + + rtr := &router.Router{ + StaticPaths: map[string]string{ + "/static/": filepath.Join(cfg.DataDir, "static"), + }, + Fallback: *template.Must(template.ParseFiles( + filepath.Join(templateRoot, "err.html"), + )), + } + + + + rtr.Get("/", withTitleAndStreamsAndSentry( + renderer.Template( + filepath.Join(templateRoot, "radio.html"), + ), + *cfg, + &Sentry{}, + )) + + http.ListenAndServe(cfg.ListenAddress, rtr) +} \ No newline at end of file diff --git a/static/banner.gif b/static/banner.gif new file mode 100644 index 0000000000000000000000000000000000000000..f85a9ceb7860c9b2475a053e824496fcf44b34e9 GIT binary patch literal 58429 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 F{y#LTs5Jlp literal 0 HcmV?d00001 diff --git a/static/online.gif b/static/online.gif new file mode 100644 index 0000000000000000000000000000000000000000..ab77e84d082fbbbfe03fe0683b0b1c9dbf0b65ad GIT binary patch literal 37143 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 literal 0 HcmV?d00001 diff --git a/static/style.css b/static/style.css new file mode 100644 index 0000000..73068a1 --- /dev/null +++ b/static/style.css @@ -0,0 +1,61 @@ +* { + padding: 0; + margin: 0; +} + +body { + background:#000; + color:#fff; + text-align:center; + font-family: monospace; +} + +header { + background:url('/static/banner.gif'); + background-position:center; + background-size:cover; + width: 100vw; + padding: 2ch; + box-sizing: border-box; + margin: auto; + box-shadow: inset 0 0 0.5em 1em black; +} + +h1, li a { + color: goldenrod; + text-shadow: black 0 0 1em; + font-weight: bold; + text-decoration: none; +} + +h1 { + color: #fff !important; +} + +ul { list-style: none;padding:0;margin: 0.5em; } + +ul li { + background-position:center; + background-size:cover; + box-shadow: inset 0 0 0.5em 1em black; + max-width: fit-content; + margin: auto; +} + +ul li.online { + background-image:url('/static/online.gif'); + +} + +ul li.offline a { + color: grey; +} + +ul li.offline a::after { + content: " (offline)" +} + +ul li a { + display:inline-block; + padding: 2em; +} \ No newline at end of file diff --git a/templates/err.html b/templates/err.html new file mode 100644 index 0000000..b47a6ac --- /dev/null +++ b/templates/err.html @@ -0,0 +1,18 @@ +{{ $params := (.Context).Value "params" }} + + + + + + + + + Grimoire — Error + + +

Error

+ {{$params.ErrorCode}}: {{$params.ErrorMessage}} + + + + diff --git a/templates/radio.html b/templates/radio.html new file mode 100644 index 0000000..eaf2195 --- /dev/null +++ b/templates/radio.html @@ -0,0 +1,30 @@ +{{ $title := (.Context).Value "title" }} +{{ $stations := (.Context).Value "streams" }} +{{ $sentry := (.Context).Value "sentry" }} + + + + + + + + + {{ $title }} + + +

{{$title}}

+
+
    + {{range $name, $stationUrl := $stations}} + {{ if gt (($sentry).GetStatus $stationUrl) 400 }} +
  • {{$name}}
  • + {{else}} +
  • {{$name}}
  • + {{end}} + {{end}} +
+
+ + + +