diff --git a/internal/handlers/handlers.go b/internal/handlers/handlers.go index 9ec40a5..8ca9e75 100644 --- a/internal/handlers/handlers.go +++ b/internal/handlers/handlers.go @@ -5,26 +5,14 @@ import ( "dwelling-radio/internal/radio" "dwelling-radio/pkg/logging" "dwelling-radio/pkg/utils" - "embed" + "dwelling-radio/web" "encoding/json" - "html/template" - "io/fs" "net/http" "time" - - "github.com/Joker/jade" ) const FormatISO8601 = "2006-01-02T15:04:05-0700" -var compiledTemplates map[string]*template.Template - -//go:embed web/assets -var assetsDir embed.FS - -//go:embed web/templates -var templatesDir embed.FS - type NotFoundData struct { MainSite string } @@ -41,7 +29,7 @@ type RadioHandlers struct { } func NewRadioHandlers(conf *configuration.Configuration, lErr *logging.Logger) *RadioHandlers { - compileTemplates(lErr) + web.CompileTemplates(lErr) return &RadioHandlers{ conf: conf, @@ -49,12 +37,11 @@ func NewRadioHandlers(conf *configuration.Configuration, lErr *logging.Logger) * } func (h *RadioHandlers) AssetsFS() http.FileSystem { - f, _ := fs.Sub(assetsDir, "web/assets") - return http.FS(f) + return web.Assets() } func (h *RadioHandlers) Robots(w http.ResponseWriter, r *http.Request) { - fc, _ := assetsDir.ReadFile("web/assets/robots.txt") + fc, _ := web.AssetsGetFile("web/assets/robots.txt") w.Write(fc) } @@ -135,25 +122,6 @@ func (h *RadioHandlers) LastSong(w http.ResponseWriter, r *http.Request) { func (h *RadioHandlers) Playlist(w http.ResponseWriter, _ *http.Request) { w.Header().Add("Content-Disposition", "attachment; filename=\"radio.arav.top.m3u\"") - fc, _ := assetsDir.ReadFile("web/assets/radio.arav.top.m3u") + fc, _ := web.AssetsGetFile("web/assets/radio.arav.top.m3u") w.Write(fc) } - -func compileTemplates(lErr *logging.Logger) { - compiledTemplates = make(map[string]*template.Template) - - t, _ := fs.Sub(templatesDir, "web/templates") - templatesFS := http.FS(t) - - indexStr, err := jade.ParseFileFromFileSystem("index.jade", templatesFS) - if err != nil { - lErr.Fatalln(err) - } - - indexTpl, err := template.New("index").Parse(indexStr) - if err != nil { - lErr.Fatalln(err) - } - - compiledTemplates["index"] = indexTpl -}