Small refactorings

This commit is contained in:
Deluan 2021-07-20 18:43:15 -04:00
parent 08840f6170
commit 7540881695
8 changed files with 13 additions and 19 deletions

View File

@ -8,13 +8,12 @@ import (
"github.com/navidrome/navidrome/resources" "github.com/navidrome/navidrome/resources"
) )
func getBanner() string { func loadBanner() string {
data, _ := resources.Asset("banner.txt") data, _ := resources.Asset("banner.txt")
return strings.TrimRightFunc(string(data), unicode.IsSpace) return strings.TrimRightFunc(string(data), unicode.IsSpace)
} }
func Banner() string { func Banner() string {
version := "Version: " + Version() version := "Version: " + Version()
padding := strings.Repeat(" ", 52-len(version)) return fmt.Sprintf("%s\n%52s\n", loadBanner(), version)
return fmt.Sprintf("%s\n%s%s\n", getBanner(), padding, version)
} }

View File

@ -127,7 +127,7 @@ func (a *artwork) getArtwork(ctx context.Context, id string, path string, size i
defer func() { defer func() {
if err != nil { if err != nil {
log.Warn(ctx, "Error extracting image", "path", path, "size", size, err) log.Warn(ctx, "Error extracting image", "path", path, "size", size, err)
reader, err = resources.Assets().Open(consts.PlaceholderAlbumArt) reader, err = resources.FS.Open(consts.PlaceholderAlbumArt)
} }
}() }()

View File

@ -2,21 +2,16 @@ package resources
import ( import (
"embed" "embed"
"io/fs"
"io/ioutil" "io/ioutil"
) )
//go:embed * //go:embed *
var filesystem embed.FS var FS embed.FS
func Asset(path string) ([]byte, error) { func Asset(path string) ([]byte, error) {
f, err := filesystem.Open(path) f, err := FS.Open(path)
if err != nil { if err != nil {
return nil, err return nil, err
} }
return ioutil.ReadAll(f) return ioutil.ReadAll(f)
} }
func Assets() fs.FS {
return filesystem
}

View File

@ -31,7 +31,7 @@ var (
func newTranslationRepository(context.Context) rest.Repository { func newTranslationRepository(context.Context) rest.Repository {
dir := utils.NewMergeFS( dir := utils.NewMergeFS(
http.FS(resources.Assets()), http.FS(resources.FS),
http.Dir(filepath.Join(conf.Server.DataFolder, "resources")), http.Dir(filepath.Join(conf.Server.DataFolder, "resources")),
) )
if err := loadTranslations(dir); err != nil { if err := loadTranslations(dir); err != nil {

View File

@ -16,7 +16,7 @@ var _ = Describe("Translations", func() {
Describe("I18n files", func() { Describe("I18n files", func() {
var fs http.FileSystem var fs http.FileSystem
BeforeEach(func() { BeforeEach(func() {
fs = http.FS(resources.Assets()) fs = http.FS(resources.FS)
}) })
It("contains only valid json language files", func() { It("contains only valid json language files", func() {
dir, _ := fs.Open(consts.I18nFolder) dir, _ := fs.Open(consts.I18nFolder)

View File

@ -65,7 +65,7 @@ func (s *Server) initRoutes() {
r.Use(clientUniqueIdAdder) r.Use(clientUniqueIdAdder)
r.Use(loggerInjector) r.Use(loggerInjector)
r.Use(requestLogger) r.Use(requestLogger)
r.Use(robotsTXT(ui.Assets())) r.Use(robotsTXT(ui.BuildAssets()))
r.Use(authHeaderMapper) r.Use(authHeaderMapper)
r.Use(jwtVerifier) r.Use(jwtVerifier)
@ -99,7 +99,7 @@ func (s *Server) initRoutes() {
func (s *Server) frontendAssetsHandler() http.Handler { func (s *Server) frontendAssetsHandler() http.Handler {
r := chi.NewRouter() r := chi.NewRouter()
r.Handle("/", serveIndex(s.ds, ui.Assets())) r.Handle("/", serveIndex(s.ds, ui.BuildAssets()))
r.Handle("/*", http.StripPrefix(s.appRoot, http.FileServer(http.FS(ui.Assets())))) r.Handle("/*", http.StripPrefix(s.appRoot, http.FileServer(http.FS(ui.BuildAssets()))))
return r return r
} }

View File

@ -46,7 +46,7 @@ func (c *MediaRetrievalController) GetAvatar(w http.ResponseWriter, r *http.Requ
} }
func (c *MediaRetrievalController) getPlaceHolderAvatar(w http.ResponseWriter, r *http.Request) (*responses.Subsonic, error) { func (c *MediaRetrievalController) getPlaceHolderAvatar(w http.ResponseWriter, r *http.Request) (*responses.Subsonic, error) {
f, err := resources.Assets().Open(consts.PlaceholderAvatar) f, err := resources.FS.Open(consts.PlaceholderAvatar)
if err != nil { if err != nil {
log.Error(r, "Image not found", err) log.Error(r, "Image not found", err)
return nil, newError(responses.ErrorDataNotFound, "Avatar image not found") return nil, newError(responses.ErrorDataNotFound, "Avatar image not found")

View File

@ -5,10 +5,10 @@ import (
"io/fs" "io/fs"
) )
//go:embed build/* //go:embed build
var filesystem embed.FS var filesystem embed.FS
func Assets() fs.FS { func BuildAssets() fs.FS {
build, _ := fs.Sub(filesystem, "build") build, _ := fs.Sub(filesystem, "build")
return build return build
} }