mirror of
https://github.com/navidrome/navidrome.git
synced 2025-06-13 13:52:31 +03:00
rename external metadata -wip
Signed-off-by: Deluan <deluan@navidrome.org>
This commit is contained in:
parent
de09390e49
commit
eccf34c6f2
@ -14,6 +14,7 @@ import (
|
|||||||
"github.com/navidrome/navidrome/core/agents/lastfm"
|
"github.com/navidrome/navidrome/core/agents/lastfm"
|
||||||
"github.com/navidrome/navidrome/core/agents/listenbrainz"
|
"github.com/navidrome/navidrome/core/agents/listenbrainz"
|
||||||
"github.com/navidrome/navidrome/core/artwork"
|
"github.com/navidrome/navidrome/core/artwork"
|
||||||
|
"github.com/navidrome/navidrome/core/extdata"
|
||||||
"github.com/navidrome/navidrome/core/ffmpeg"
|
"github.com/navidrome/navidrome/core/ffmpeg"
|
||||||
"github.com/navidrome/navidrome/core/metrics"
|
"github.com/navidrome/navidrome/core/metrics"
|
||||||
"github.com/navidrome/navidrome/core/playback"
|
"github.com/navidrome/navidrome/core/playback"
|
||||||
@ -66,7 +67,7 @@ func CreateSubsonicAPIRouter(ctx context.Context) *subsonic.Router {
|
|||||||
fileCache := artwork.GetImageCache()
|
fileCache := artwork.GetImageCache()
|
||||||
fFmpeg := ffmpeg.New()
|
fFmpeg := ffmpeg.New()
|
||||||
agentsAgents := agents.GetAgents(dataStore)
|
agentsAgents := agents.GetAgents(dataStore)
|
||||||
externalMetadata := core.NewExternalMetadata(dataStore, agentsAgents)
|
externalMetadata := extdata.NewExternalMetadata(dataStore, agentsAgents)
|
||||||
artworkArtwork := artwork.NewArtwork(dataStore, fileCache, fFmpeg, externalMetadata)
|
artworkArtwork := artwork.NewArtwork(dataStore, fileCache, fFmpeg, externalMetadata)
|
||||||
transcodingCache := core.GetTranscodingCache()
|
transcodingCache := core.GetTranscodingCache()
|
||||||
mediaStreamer := core.NewMediaStreamer(dataStore, fFmpeg, transcodingCache)
|
mediaStreamer := core.NewMediaStreamer(dataStore, fFmpeg, transcodingCache)
|
||||||
@ -90,7 +91,7 @@ func CreatePublicRouter() *public.Router {
|
|||||||
fileCache := artwork.GetImageCache()
|
fileCache := artwork.GetImageCache()
|
||||||
fFmpeg := ffmpeg.New()
|
fFmpeg := ffmpeg.New()
|
||||||
agentsAgents := agents.GetAgents(dataStore)
|
agentsAgents := agents.GetAgents(dataStore)
|
||||||
externalMetadata := core.NewExternalMetadata(dataStore, agentsAgents)
|
externalMetadata := extdata.NewExternalMetadata(dataStore, agentsAgents)
|
||||||
artworkArtwork := artwork.NewArtwork(dataStore, fileCache, fFmpeg, externalMetadata)
|
artworkArtwork := artwork.NewArtwork(dataStore, fileCache, fFmpeg, externalMetadata)
|
||||||
transcodingCache := core.GetTranscodingCache()
|
transcodingCache := core.GetTranscodingCache()
|
||||||
mediaStreamer := core.NewMediaStreamer(dataStore, fFmpeg, transcodingCache)
|
mediaStreamer := core.NewMediaStreamer(dataStore, fFmpeg, transcodingCache)
|
||||||
@ -134,7 +135,7 @@ func CreateScanner(ctx context.Context) scanner.Scanner {
|
|||||||
fileCache := artwork.GetImageCache()
|
fileCache := artwork.GetImageCache()
|
||||||
fFmpeg := ffmpeg.New()
|
fFmpeg := ffmpeg.New()
|
||||||
agentsAgents := agents.GetAgents(dataStore)
|
agentsAgents := agents.GetAgents(dataStore)
|
||||||
externalMetadata := core.NewExternalMetadata(dataStore, agentsAgents)
|
externalMetadata := extdata.NewExternalMetadata(dataStore, agentsAgents)
|
||||||
artworkArtwork := artwork.NewArtwork(dataStore, fileCache, fFmpeg, externalMetadata)
|
artworkArtwork := artwork.NewArtwork(dataStore, fileCache, fFmpeg, externalMetadata)
|
||||||
cacheWarmer := artwork.NewCacheWarmer(artworkArtwork, fileCache)
|
cacheWarmer := artwork.NewCacheWarmer(artworkArtwork, fileCache)
|
||||||
broker := events.GetBroker()
|
broker := events.GetBroker()
|
||||||
@ -150,7 +151,7 @@ func CreateScanWatcher(ctx context.Context) scanner.Watcher {
|
|||||||
fileCache := artwork.GetImageCache()
|
fileCache := artwork.GetImageCache()
|
||||||
fFmpeg := ffmpeg.New()
|
fFmpeg := ffmpeg.New()
|
||||||
agentsAgents := agents.GetAgents(dataStore)
|
agentsAgents := agents.GetAgents(dataStore)
|
||||||
externalMetadata := core.NewExternalMetadata(dataStore, agentsAgents)
|
externalMetadata := extdata.NewExternalMetadata(dataStore, agentsAgents)
|
||||||
artworkArtwork := artwork.NewArtwork(dataStore, fileCache, fFmpeg, externalMetadata)
|
artworkArtwork := artwork.NewArtwork(dataStore, fileCache, fFmpeg, externalMetadata)
|
||||||
cacheWarmer := artwork.NewCacheWarmer(artworkArtwork, fileCache)
|
cacheWarmer := artwork.NewCacheWarmer(artworkArtwork, fileCache)
|
||||||
broker := events.GetBroker()
|
broker := events.GetBroker()
|
||||||
|
@ -8,7 +8,7 @@ import (
|
|||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/navidrome/navidrome/consts"
|
"github.com/navidrome/navidrome/consts"
|
||||||
"github.com/navidrome/navidrome/core"
|
"github.com/navidrome/navidrome/core/extdata"
|
||||||
"github.com/navidrome/navidrome/core/ffmpeg"
|
"github.com/navidrome/navidrome/core/ffmpeg"
|
||||||
"github.com/navidrome/navidrome/log"
|
"github.com/navidrome/navidrome/log"
|
||||||
"github.com/navidrome/navidrome/model"
|
"github.com/navidrome/navidrome/model"
|
||||||
@ -24,7 +24,7 @@ type Artwork interface {
|
|||||||
GetOrPlaceholder(ctx context.Context, id string, size int, square bool) (io.ReadCloser, time.Time, error)
|
GetOrPlaceholder(ctx context.Context, id string, size int, square bool) (io.ReadCloser, time.Time, error)
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewArtwork(ds model.DataStore, cache cache.FileCache, ffmpeg ffmpeg.FFmpeg, em core.ExternalMetadata) Artwork {
|
func NewArtwork(ds model.DataStore, cache cache.FileCache, ffmpeg ffmpeg.FFmpeg, em extdata.ExternalMetadata) Artwork {
|
||||||
return &artwork{ds: ds, cache: cache, ffmpeg: ffmpeg, em: em}
|
return &artwork{ds: ds, cache: cache, ffmpeg: ffmpeg, em: em}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -32,7 +32,7 @@ type artwork struct {
|
|||||||
ds model.DataStore
|
ds model.DataStore
|
||||||
cache cache.FileCache
|
cache cache.FileCache
|
||||||
ffmpeg ffmpeg.FFmpeg
|
ffmpeg ffmpeg.FFmpeg
|
||||||
em core.ExternalMetadata
|
em extdata.ExternalMetadata
|
||||||
}
|
}
|
||||||
|
|
||||||
type artworkReader interface {
|
type artworkReader interface {
|
||||||
|
@ -12,6 +12,7 @@ import (
|
|||||||
"github.com/Masterminds/squirrel"
|
"github.com/Masterminds/squirrel"
|
||||||
"github.com/navidrome/navidrome/conf"
|
"github.com/navidrome/navidrome/conf"
|
||||||
"github.com/navidrome/navidrome/core"
|
"github.com/navidrome/navidrome/core"
|
||||||
|
"github.com/navidrome/navidrome/core/extdata"
|
||||||
"github.com/navidrome/navidrome/core/ffmpeg"
|
"github.com/navidrome/navidrome/core/ffmpeg"
|
||||||
"github.com/navidrome/navidrome/model"
|
"github.com/navidrome/navidrome/model"
|
||||||
)
|
)
|
||||||
@ -19,14 +20,14 @@ import (
|
|||||||
type albumArtworkReader struct {
|
type albumArtworkReader struct {
|
||||||
cacheKey
|
cacheKey
|
||||||
a *artwork
|
a *artwork
|
||||||
em core.ExternalMetadata
|
em extdata.ExternalMetadata
|
||||||
album model.Album
|
album model.Album
|
||||||
updatedAt *time.Time
|
updatedAt *time.Time
|
||||||
imgFiles []string
|
imgFiles []string
|
||||||
rootFolder string
|
rootFolder string
|
||||||
}
|
}
|
||||||
|
|
||||||
func newAlbumArtworkReader(ctx context.Context, artwork *artwork, artID model.ArtworkID, em core.ExternalMetadata) (*albumArtworkReader, error) {
|
func newAlbumArtworkReader(ctx context.Context, artwork *artwork, artID model.ArtworkID, em extdata.ExternalMetadata) (*albumArtworkReader, error) {
|
||||||
al, err := artwork.ds.Album(ctx).Get(artID.ID)
|
al, err := artwork.ds.Album(ctx).Get(artID.ID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
|
@ -14,6 +14,7 @@ import (
|
|||||||
"github.com/Masterminds/squirrel"
|
"github.com/Masterminds/squirrel"
|
||||||
"github.com/navidrome/navidrome/conf"
|
"github.com/navidrome/navidrome/conf"
|
||||||
"github.com/navidrome/navidrome/core"
|
"github.com/navidrome/navidrome/core"
|
||||||
|
"github.com/navidrome/navidrome/core/extdata"
|
||||||
"github.com/navidrome/navidrome/log"
|
"github.com/navidrome/navidrome/log"
|
||||||
"github.com/navidrome/navidrome/model"
|
"github.com/navidrome/navidrome/model"
|
||||||
"github.com/navidrome/navidrome/utils/str"
|
"github.com/navidrome/navidrome/utils/str"
|
||||||
@ -22,13 +23,13 @@ import (
|
|||||||
type artistReader struct {
|
type artistReader struct {
|
||||||
cacheKey
|
cacheKey
|
||||||
a *artwork
|
a *artwork
|
||||||
em core.ExternalMetadata
|
em extdata.ExternalMetadata
|
||||||
artist model.Artist
|
artist model.Artist
|
||||||
artistFolder string
|
artistFolder string
|
||||||
imgFiles []string
|
imgFiles []string
|
||||||
}
|
}
|
||||||
|
|
||||||
func newArtistReader(ctx context.Context, artwork *artwork, artID model.ArtworkID, em core.ExternalMetadata) (*artistReader, error) {
|
func newArtistReader(ctx context.Context, artwork *artwork, artID model.ArtworkID, em extdata.ExternalMetadata) (*artistReader, error) {
|
||||||
ar, err := artwork.ds.Artist(ctx).Get(artID.ID)
|
ar, err := artwork.ds.Artist(ctx).Get(artID.ID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
|
@ -17,7 +17,7 @@ import (
|
|||||||
|
|
||||||
"github.com/dhowden/tag"
|
"github.com/dhowden/tag"
|
||||||
"github.com/navidrome/navidrome/consts"
|
"github.com/navidrome/navidrome/consts"
|
||||||
"github.com/navidrome/navidrome/core"
|
"github.com/navidrome/navidrome/core/extdata"
|
||||||
"github.com/navidrome/navidrome/core/ffmpeg"
|
"github.com/navidrome/navidrome/core/ffmpeg"
|
||||||
"github.com/navidrome/navidrome/log"
|
"github.com/navidrome/navidrome/log"
|
||||||
"github.com/navidrome/navidrome/model"
|
"github.com/navidrome/navidrome/model"
|
||||||
@ -157,7 +157,7 @@ func fromAlbumPlaceholder() sourceFunc {
|
|||||||
return r, consts.PlaceholderAlbumArt, nil
|
return r, consts.PlaceholderAlbumArt, nil
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
func fromArtistExternalSource(ctx context.Context, ar model.Artist, em core.ExternalMetadata) sourceFunc {
|
func fromArtistExternalSource(ctx context.Context, ar model.Artist, em extdata.ExternalMetadata) sourceFunc {
|
||||||
return func() (io.ReadCloser, string, error) {
|
return func() (io.ReadCloser, string, error) {
|
||||||
imageUrl, err := em.ArtistImage(ctx, ar.ID)
|
imageUrl, err := em.ArtistImage(ctx, ar.ID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -168,7 +168,7 @@ func fromArtistExternalSource(ctx context.Context, ar model.Artist, em core.Exte
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func fromAlbumExternalSource(ctx context.Context, al model.Album, em core.ExternalMetadata) sourceFunc {
|
func fromAlbumExternalSource(ctx context.Context, al model.Album, em extdata.ExternalMetadata) sourceFunc {
|
||||||
return func() (io.ReadCloser, string, error) {
|
return func() (io.ReadCloser, string, error) {
|
||||||
imageUrl, err := em.AlbumImage(ctx, al.ID)
|
imageUrl, err := em.AlbumImage(ctx, al.ID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
17
core/extdata/extdata_suite_test.go
Normal file
17
core/extdata/extdata_suite_test.go
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
package extdata
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"github.com/navidrome/navidrome/log"
|
||||||
|
"github.com/navidrome/navidrome/tests"
|
||||||
|
. "github.com/onsi/ginkgo/v2"
|
||||||
|
. "github.com/onsi/gomega"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestExternalData(t *testing.T) {
|
||||||
|
tests.Init(t, false)
|
||||||
|
log.SetLevel(log.LevelFatal)
|
||||||
|
RegisterFailHandler(Fail)
|
||||||
|
RunSpecs(t, "ExternalData Suite")
|
||||||
|
}
|
@ -1,4 +1,4 @@
|
|||||||
package core
|
package extdata
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
@ -1,4 +1,4 @@
|
|||||||
package core
|
package extdata
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
@ -3,6 +3,7 @@ package core
|
|||||||
import (
|
import (
|
||||||
"github.com/google/wire"
|
"github.com/google/wire"
|
||||||
"github.com/navidrome/navidrome/core/agents"
|
"github.com/navidrome/navidrome/core/agents"
|
||||||
|
"github.com/navidrome/navidrome/core/extdata"
|
||||||
"github.com/navidrome/navidrome/core/ffmpeg"
|
"github.com/navidrome/navidrome/core/ffmpeg"
|
||||||
"github.com/navidrome/navidrome/core/metrics"
|
"github.com/navidrome/navidrome/core/metrics"
|
||||||
"github.com/navidrome/navidrome/core/playback"
|
"github.com/navidrome/navidrome/core/playback"
|
||||||
@ -13,11 +14,11 @@ var Set = wire.NewSet(
|
|||||||
NewMediaStreamer,
|
NewMediaStreamer,
|
||||||
GetTranscodingCache,
|
GetTranscodingCache,
|
||||||
NewArchiver,
|
NewArchiver,
|
||||||
NewExternalMetadata,
|
|
||||||
NewPlayers,
|
NewPlayers,
|
||||||
NewShare,
|
NewShare,
|
||||||
NewPlaylists,
|
NewPlaylists,
|
||||||
agents.GetAgents,
|
agents.GetAgents,
|
||||||
|
extdata.NewExternalMetadata,
|
||||||
ffmpeg.New,
|
ffmpeg.New,
|
||||||
scrobbler.GetPlayTracker,
|
scrobbler.GetPlayTracker,
|
||||||
playback.GetInstance,
|
playback.GetInstance,
|
||||||
|
@ -12,6 +12,7 @@ import (
|
|||||||
"github.com/navidrome/navidrome/conf"
|
"github.com/navidrome/navidrome/conf"
|
||||||
"github.com/navidrome/navidrome/core"
|
"github.com/navidrome/navidrome/core"
|
||||||
"github.com/navidrome/navidrome/core/artwork"
|
"github.com/navidrome/navidrome/core/artwork"
|
||||||
|
"github.com/navidrome/navidrome/core/extdata"
|
||||||
"github.com/navidrome/navidrome/core/playback"
|
"github.com/navidrome/navidrome/core/playback"
|
||||||
"github.com/navidrome/navidrome/core/scrobbler"
|
"github.com/navidrome/navidrome/core/scrobbler"
|
||||||
"github.com/navidrome/navidrome/log"
|
"github.com/navidrome/navidrome/log"
|
||||||
@ -35,7 +36,7 @@ type Router struct {
|
|||||||
streamer core.MediaStreamer
|
streamer core.MediaStreamer
|
||||||
archiver core.Archiver
|
archiver core.Archiver
|
||||||
players core.Players
|
players core.Players
|
||||||
externalMetadata core.ExternalMetadata
|
externalMetadata extdata.ExternalMetadata
|
||||||
playlists core.Playlists
|
playlists core.Playlists
|
||||||
scanner scanner.Scanner
|
scanner scanner.Scanner
|
||||||
broker events.Broker
|
broker events.Broker
|
||||||
@ -45,7 +46,7 @@ type Router struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func New(ds model.DataStore, artwork artwork.Artwork, streamer core.MediaStreamer, archiver core.Archiver,
|
func New(ds model.DataStore, artwork artwork.Artwork, streamer core.MediaStreamer, archiver core.Archiver,
|
||||||
players core.Players, externalMetadata core.ExternalMetadata, scanner scanner.Scanner, broker events.Broker,
|
players core.Players, externalMetadata extdata.ExternalMetadata, scanner scanner.Scanner, broker events.Broker,
|
||||||
playlists core.Playlists, scrobbler scrobbler.PlayTracker, share core.Share, playback playback.PlaybackServer,
|
playlists core.Playlists, scrobbler scrobbler.PlayTracker, share core.Share, playback playback.PlaybackServer,
|
||||||
) *Router {
|
) *Router {
|
||||||
r := &Router{
|
r := &Router{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user