fix regression in cover caching

This commit is contained in:
Drew Weymouth
2022-12-25 17:15:05 -08:00
parent f792b473e8
commit 6e553f9181
+8 -5
View File
@@ -6,6 +6,7 @@ import (
"image/jpeg" "image/jpeg"
"log" "log"
"os" "os"
"path"
"path/filepath" "path/filepath"
"github.com/20after4/configdir" "github.com/20after4/configdir"
@@ -40,8 +41,8 @@ func (i *ImageManager) GetAlbumThumbnail(albumID string) (image.Image, error) {
} }
// on disc cache // on disc cache
path := filepath.Join(i.coverCacheDir(), fmt.Sprintf("%s.jpg", albumID)) path := filepath.Join(i.ensureCoverCacheDir(), fmt.Sprintf("%s.jpg", albumID))
if i.coverCacheDir() != "" { if i.ensureCoverCacheDir() != "" {
if _, err := os.Stat(path); err == nil { if _, err := os.Stat(path); err == nil {
// serve image from on-disc cache // serve image from on-disc cache
// TODO: image may have changed on server. // TODO: image may have changed on server.
@@ -61,7 +62,7 @@ func (i *ImageManager) GetAlbumThumbnail(albumID string) (image.Image, error) {
if err != nil { if err != nil {
return nil, err return nil, err
} }
if i.coverCacheDir() != "" { if i.ensureCoverCacheDir() != "" {
if f, err := os.Create(path); err == nil { if f, err := os.Create(path); err == nil {
defer f.Close() defer f.Close()
if err := jpeg.Encode(f, img, nil /*options*/); err != nil { if err := jpeg.Encode(f, img, nil /*options*/); err != nil {
@@ -73,6 +74,8 @@ func (i *ImageManager) GetAlbumThumbnail(albumID string) (image.Image, error) {
return img, nil return img, nil
} }
func (i *ImageManager) coverCacheDir() string { func (i *ImageManager) ensureCoverCacheDir() string {
return configdir.LocalCache(i.baseCacheDir, i.s.ServerID.String(), "covers") path := path.Join(i.baseCacheDir, i.s.ServerID.String(), "covers")
configdir.MakePath(path)
return path
} }