use a "CacheCover" folder for scaled covers

This commit is contained in:
sentriz
2020-07-24 20:24:57 +01:00
committed by Senan Kelly
parent 850f2f1216
commit dae1e03940
4 changed files with 32 additions and 15 deletions

View File

@@ -5,6 +5,7 @@ import (
"fmt"
"log"
"os"
"path"
"regexp"
"time"
@@ -17,6 +18,11 @@ import (
"go.senan.xyz/gonic/version"
)
const (
cleanTimeDuration = 10 * time.Minute
coverCachePrefix = "covers"
)
func main() {
set := flag.NewFlagSet(version.NAME, flag.ExitOnError)
listenAddr := set.String("listen-addr", "0.0.0.0:4747", "listen address (optional)")
@@ -45,6 +51,7 @@ func main() {
set.VisitAll(func(f *flag.Flag) {
log.Printf(" %-15s %s\n", f.Name, f.Value)
})
//
if _, err := os.Stat(*musicPath); os.IsNotExist(err) {
log.Fatal("please provide a valid music directory")
}
@@ -53,6 +60,12 @@ func main() {
log.Fatalf("couldn't create cache path: %v\n", err)
}
}
coverCachePath := path.Join(*cachePath, "covers")
if _, err := os.Stat(coverCachePath); os.IsNotExist(err) {
if err := os.MkdirAll(coverCachePath, os.ModePerm); err != nil {
log.Fatalf("couldn't create cover cache path: %v\n", err)
}
}
db, err := db.New(*dbPath)
if err != nil {
log.Fatalf("error opening database: %v\n", err)
@@ -63,14 +76,15 @@ func main() {
*proxyPrefix = proxyPrefixExpr.ReplaceAllString(*proxyPrefix, `/$1`)
//
server := server.New(server.Options{
DB: db,
MusicPath: *musicPath,
CachePath: *cachePath,
ProxyPrefix: *proxyPrefix,
DB: db,
MusicPath: *musicPath,
CachePath: *cachePath,
CoverCachePath: coverCachePath,
ProxyPrefix: *proxyPrefix,
})
var g run.Group
g.Add(server.StartHTTP(*listenAddr))
g.Add(server.StartSessionClean(10 * time.Minute))
g.Add(server.StartSessionClean(cleanTimeDuration))
if *scanInterval > 0 {
tickerDur := time.Duration(*scanInterval) * time.Minute
g.Add(server.StartScanTicker(tickerDur))