first commit

This commit is contained in:
Drew Weymouth
2022-12-17 16:52:13 -08:00
parent cd1f795bb4
commit c21d7d03eb
16 changed files with 2069 additions and 0 deletions
+36
View File
@@ -0,0 +1,36 @@
package backend
import (
"image"
"github.com/bluele/gcache"
subsonic "github.com/dweymouth/go-subsonic"
)
type ImageManager struct {
s *subsonic.Client
thumbnailCache gcache.Cache
}
func NewImageManager(s *subsonic.Client) *ImageManager {
cache := gcache.New(100).LRU().Build()
return &ImageManager{
s: s,
thumbnailCache: cache,
}
}
func (i *ImageManager) GetAlbumThumbnail(albumID string) (image.Image, error) {
if i.thumbnailCache.Has(albumID) {
if img, err := i.thumbnailCache.Get(albumID); err == nil {
return img.(image.Image), nil
}
}
// TODO: on disc cache
img, err := i.s.GetCoverArt(albumID, map[string]string{"size": "250"})
if err != nil {
return nil, err
}
i.thumbnailCache.Set(albumID, img)
return img, nil
}