Rename ExternalInfo to ExternalMetadata
This commit is contained in:
+2
-2
@@ -42,9 +42,9 @@ func CreateSubsonicAPIRouter() *subsonic.Router {
|
|||||||
mediaStreamer := core.NewMediaStreamer(dataStore, transcoderTranscoder, transcodingCache)
|
mediaStreamer := core.NewMediaStreamer(dataStore, transcoderTranscoder, transcodingCache)
|
||||||
archiver := core.NewArchiver(dataStore)
|
archiver := core.NewArchiver(dataStore)
|
||||||
players := core.NewPlayers(dataStore)
|
players := core.NewPlayers(dataStore)
|
||||||
externalInfo := core.NewExternalInfo2(dataStore)
|
externalMetadata := core.NewExternalMetadata(dataStore)
|
||||||
scanner := GetScanner()
|
scanner := GetScanner()
|
||||||
router := subsonic.New(dataStore, artwork, mediaStreamer, archiver, players, externalInfo, scanner)
|
router := subsonic.New(dataStore, artwork, mediaStreamer, archiver, players, externalMetadata, scanner)
|
||||||
return router
|
return router
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -18,13 +18,13 @@ import (
|
|||||||
|
|
||||||
const unavailableArtistID = "-1"
|
const unavailableArtistID = "-1"
|
||||||
|
|
||||||
type ExternalInfo interface {
|
type ExternalMetadata interface {
|
||||||
UpdateArtistInfo(ctx context.Context, id string, count int, includeNotPresent bool) (*model.Artist, error)
|
UpdateArtistInfo(ctx context.Context, id string, count int, includeNotPresent bool) (*model.Artist, error)
|
||||||
SimilarSongs(ctx context.Context, id string, count int) (model.MediaFiles, error)
|
SimilarSongs(ctx context.Context, id string, count int) (model.MediaFiles, error)
|
||||||
TopSongs(ctx context.Context, artist string, count int) (model.MediaFiles, error)
|
TopSongs(ctx context.Context, artist string, count int) (model.MediaFiles, error)
|
||||||
}
|
}
|
||||||
|
|
||||||
type externalInfo struct {
|
type externalMetadata struct {
|
||||||
ds model.DataStore
|
ds model.DataStore
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -33,11 +33,11 @@ type auxArtist struct {
|
|||||||
Name string
|
Name string
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewExternalInfo2(ds model.DataStore) ExternalInfo {
|
func NewExternalMetadata(ds model.DataStore) ExternalMetadata {
|
||||||
return &externalInfo{ds: ds}
|
return &externalMetadata{ds: ds}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (e *externalInfo) initAgents(ctx context.Context) []agents.Interface {
|
func (e *externalMetadata) initAgents(ctx context.Context) []agents.Interface {
|
||||||
order := strings.Split(conf.Server.Agents, ",")
|
order := strings.Split(conf.Server.Agents, ",")
|
||||||
order = append(order, agents.PlaceholderAgentName)
|
order = append(order, agents.PlaceholderAgentName)
|
||||||
var res []agents.Interface
|
var res []agents.Interface
|
||||||
@@ -54,7 +54,7 @@ func (e *externalInfo) initAgents(ctx context.Context) []agents.Interface {
|
|||||||
return res
|
return res
|
||||||
}
|
}
|
||||||
|
|
||||||
func (e *externalInfo) getArtist(ctx context.Context, id string) (*auxArtist, error) {
|
func (e *externalMetadata) getArtist(ctx context.Context, id string) (*auxArtist, error) {
|
||||||
var entity interface{}
|
var entity interface{}
|
||||||
entity, err := GetEntityByID(ctx, e.ds, id)
|
entity, err := GetEntityByID(ctx, e.ds, id)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -87,7 +87,7 @@ func clearName(name string) string {
|
|||||||
return name
|
return name
|
||||||
}
|
}
|
||||||
|
|
||||||
func (e *externalInfo) UpdateArtistInfo(ctx context.Context, id string, similarCount int, includeNotPresent bool) (*model.Artist, error) {
|
func (e *externalMetadata) UpdateArtistInfo(ctx context.Context, id string, similarCount int, includeNotPresent bool) (*model.Artist, error) {
|
||||||
allAgents := e.initAgents(ctx)
|
allAgents := e.initAgents(ctx)
|
||||||
artist, err := e.getArtist(ctx, id)
|
artist, err := e.getArtist(ctx, id)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -141,7 +141,7 @@ func (e *externalInfo) UpdateArtistInfo(ctx context.Context, id string, similarC
|
|||||||
return &artist.Artist, nil
|
return &artist.Artist, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (e *externalInfo) SimilarSongs(ctx context.Context, id string, count int) (model.MediaFiles, error) {
|
func (e *externalMetadata) SimilarSongs(ctx context.Context, id string, count int) (model.MediaFiles, error) {
|
||||||
allAgents := e.initAgents(ctx)
|
allAgents := e.initAgents(ctx)
|
||||||
artist, err := e.getArtist(ctx, id)
|
artist, err := e.getArtist(ctx, id)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -175,7 +175,7 @@ func (e *externalInfo) SimilarSongs(ctx context.Context, id string, count int) (
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
func (e *externalInfo) TopSongs(ctx context.Context, artistName string, count int) (model.MediaFiles, error) {
|
func (e *externalMetadata) TopSongs(ctx context.Context, artistName string, count int) (model.MediaFiles, error) {
|
||||||
allAgents := e.initAgents(ctx)
|
allAgents := e.initAgents(ctx)
|
||||||
artist, err := e.findArtistByName(ctx, artistName)
|
artist, err := e.findArtistByName(ctx, artistName)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -199,7 +199,7 @@ func (e *externalInfo) TopSongs(ctx context.Context, artistName string, count in
|
|||||||
return mfs, nil
|
return mfs, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (e *externalInfo) findMatchingTrack(ctx context.Context, mbid string, artistID, title string) (*model.MediaFile, error) {
|
func (e *externalMetadata) findMatchingTrack(ctx context.Context, mbid string, artistID, title string) (*model.MediaFile, error) {
|
||||||
if mbid != "" {
|
if mbid != "" {
|
||||||
mfs, err := e.ds.MediaFile(ctx).GetAll(model.QueryOptions{
|
mfs, err := e.ds.MediaFile(ctx).GetAll(model.QueryOptions{
|
||||||
Filters: squirrel.Eq{"mbz_track_id": mbid},
|
Filters: squirrel.Eq{"mbz_track_id": mbid},
|
||||||
@@ -233,7 +233,7 @@ func isDone(ctx context.Context) bool {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (e *externalInfo) callGetMBID(ctx context.Context, allAgents []agents.Interface, artist *auxArtist) {
|
func (e *externalMetadata) callGetMBID(ctx context.Context, allAgents []agents.Interface, artist *auxArtist) {
|
||||||
start := time.Now()
|
start := time.Now()
|
||||||
for _, a := range allAgents {
|
for _, a := range allAgents {
|
||||||
if isDone(ctx) {
|
if isDone(ctx) {
|
||||||
@@ -252,7 +252,7 @@ func (e *externalInfo) callGetMBID(ctx context.Context, allAgents []agents.Inter
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (e *externalInfo) callGetTopSongs(ctx context.Context, allAgents []agents.Interface, artist *auxArtist,
|
func (e *externalMetadata) callGetTopSongs(ctx context.Context, allAgents []agents.Interface, artist *auxArtist,
|
||||||
count int) ([]agents.Song, error) {
|
count int) ([]agents.Song, error) {
|
||||||
start := time.Now()
|
start := time.Now()
|
||||||
for _, a := range allAgents {
|
for _, a := range allAgents {
|
||||||
@@ -272,7 +272,7 @@ func (e *externalInfo) callGetTopSongs(ctx context.Context, allAgents []agents.I
|
|||||||
return nil, nil
|
return nil, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (e *externalInfo) callGetURL(ctx context.Context, allAgents []agents.Interface, artist *auxArtist, wg *sync.WaitGroup) {
|
func (e *externalMetadata) callGetURL(ctx context.Context, allAgents []agents.Interface, artist *auxArtist, wg *sync.WaitGroup) {
|
||||||
wg.Add(1)
|
wg.Add(1)
|
||||||
go func() {
|
go func() {
|
||||||
defer wg.Done()
|
defer wg.Done()
|
||||||
@@ -295,7 +295,7 @@ func (e *externalInfo) callGetURL(ctx context.Context, allAgents []agents.Interf
|
|||||||
}()
|
}()
|
||||||
}
|
}
|
||||||
|
|
||||||
func (e *externalInfo) callGetBiography(ctx context.Context, allAgents []agents.Interface, artist *auxArtist, wg *sync.WaitGroup) {
|
func (e *externalMetadata) callGetBiography(ctx context.Context, allAgents []agents.Interface, artist *auxArtist, wg *sync.WaitGroup) {
|
||||||
wg.Add(1)
|
wg.Add(1)
|
||||||
go func() {
|
go func() {
|
||||||
defer wg.Done()
|
defer wg.Done()
|
||||||
@@ -321,7 +321,7 @@ func (e *externalInfo) callGetBiography(ctx context.Context, allAgents []agents.
|
|||||||
}()
|
}()
|
||||||
}
|
}
|
||||||
|
|
||||||
func (e *externalInfo) callGetImage(ctx context.Context, allAgents []agents.Interface, artist *auxArtist, wg *sync.WaitGroup) {
|
func (e *externalMetadata) callGetImage(ctx context.Context, allAgents []agents.Interface, artist *auxArtist, wg *sync.WaitGroup) {
|
||||||
wg.Add(1)
|
wg.Add(1)
|
||||||
go func() {
|
go func() {
|
||||||
defer wg.Done()
|
defer wg.Done()
|
||||||
@@ -354,7 +354,7 @@ func (e *externalInfo) callGetImage(ctx context.Context, allAgents []agents.Inte
|
|||||||
}()
|
}()
|
||||||
}
|
}
|
||||||
|
|
||||||
func (e *externalInfo) callGetSimilar(ctx context.Context, allAgents []agents.Interface, artist *auxArtist, limit int, wg *sync.WaitGroup) {
|
func (e *externalMetadata) callGetSimilar(ctx context.Context, allAgents []agents.Interface, artist *auxArtist, limit int, wg *sync.WaitGroup) {
|
||||||
wg.Add(1)
|
wg.Add(1)
|
||||||
go func() {
|
go func() {
|
||||||
defer wg.Done()
|
defer wg.Done()
|
||||||
@@ -382,7 +382,7 @@ func (e *externalInfo) callGetSimilar(ctx context.Context, allAgents []agents.In
|
|||||||
}()
|
}()
|
||||||
}
|
}
|
||||||
|
|
||||||
func (e *externalInfo) mapSimilarArtists(ctx context.Context, similar []agents.Artist, includeNotPresent bool) (model.Artists, error) {
|
func (e *externalMetadata) mapSimilarArtists(ctx context.Context, similar []agents.Artist, includeNotPresent bool) (model.Artists, error) {
|
||||||
var result model.Artists
|
var result model.Artists
|
||||||
var notPresent []string
|
var notPresent []string
|
||||||
|
|
||||||
@@ -407,7 +407,7 @@ func (e *externalInfo) mapSimilarArtists(ctx context.Context, similar []agents.A
|
|||||||
return result, nil
|
return result, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (e *externalInfo) findArtistByName(ctx context.Context, artistName string) (*auxArtist, error) {
|
func (e *externalMetadata) findArtistByName(ctx context.Context, artistName string) (*auxArtist, error) {
|
||||||
artists, err := e.ds.Artist(ctx).GetAll(model.QueryOptions{
|
artists, err := e.ds.Artist(ctx).GetAll(model.QueryOptions{
|
||||||
Filters: squirrel.Like{"name": artistName},
|
Filters: squirrel.Like{"name": artistName},
|
||||||
Max: 1,
|
Max: 1,
|
||||||
@@ -425,7 +425,7 @@ func (e *externalInfo) findArtistByName(ctx context.Context, artistName string)
|
|||||||
return artist, nil
|
return artist, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (e *externalInfo) loadSimilar(ctx context.Context, artist *auxArtist, includeNotPresent bool) error {
|
func (e *externalMetadata) loadSimilar(ctx context.Context, artist *auxArtist, includeNotPresent bool) error {
|
||||||
var ids []string
|
var ids []string
|
||||||
for _, sa := range artist.SimilarArtists {
|
for _, sa := range artist.SimilarArtists {
|
||||||
if sa.ID == unavailableArtistID {
|
if sa.ID == unavailableArtistID {
|
||||||
@@ -12,7 +12,7 @@ var Set = wire.NewSet(
|
|||||||
GetImageCache,
|
GetImageCache,
|
||||||
NewArchiver,
|
NewArchiver,
|
||||||
NewNowPlayingRepository,
|
NewNowPlayingRepository,
|
||||||
NewExternalInfo2,
|
NewExternalMetadata,
|
||||||
NewCacheWarmer,
|
NewCacheWarmer,
|
||||||
NewPlayers,
|
NewPlayers,
|
||||||
transcoder.New,
|
transcoder.New,
|
||||||
|
|||||||
@@ -28,21 +28,21 @@ type Router struct {
|
|||||||
Streamer core.MediaStreamer
|
Streamer core.MediaStreamer
|
||||||
Archiver core.Archiver
|
Archiver core.Archiver
|
||||||
Players core.Players
|
Players core.Players
|
||||||
ExternalInfo core.ExternalInfo
|
ExternalMetadata core.ExternalMetadata
|
||||||
Scanner scanner.Scanner
|
Scanner scanner.Scanner
|
||||||
|
|
||||||
mux http.Handler
|
mux http.Handler
|
||||||
}
|
}
|
||||||
|
|
||||||
func New(ds model.DataStore, artwork core.Artwork, streamer core.MediaStreamer, archiver core.Archiver, players core.Players,
|
func New(ds model.DataStore, artwork core.Artwork, streamer core.MediaStreamer, archiver core.Archiver, players core.Players,
|
||||||
externalInfo core.ExternalInfo, scanner scanner.Scanner) *Router {
|
externalMetadata core.ExternalMetadata, scanner scanner.Scanner) *Router {
|
||||||
r := &Router{
|
r := &Router{
|
||||||
DataStore: ds,
|
DataStore: ds,
|
||||||
Artwork: artwork,
|
Artwork: artwork,
|
||||||
Streamer: streamer,
|
Streamer: streamer,
|
||||||
Archiver: archiver,
|
Archiver: archiver,
|
||||||
Players: players,
|
Players: players,
|
||||||
ExternalInfo: externalInfo,
|
ExternalMetadata: externalMetadata,
|
||||||
Scanner: scanner,
|
Scanner: scanner,
|
||||||
}
|
}
|
||||||
r.mux = r.routes()
|
r.mux = r.routes()
|
||||||
|
|||||||
@@ -18,11 +18,11 @@ import (
|
|||||||
|
|
||||||
type BrowsingController struct {
|
type BrowsingController struct {
|
||||||
ds model.DataStore
|
ds model.DataStore
|
||||||
ei core.ExternalInfo
|
em core.ExternalMetadata
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewBrowsingController(ds model.DataStore, ei core.ExternalInfo) *BrowsingController {
|
func NewBrowsingController(ds model.DataStore, em core.ExternalMetadata) *BrowsingController {
|
||||||
return &BrowsingController{ds: ds, ei: ei}
|
return &BrowsingController{ds: ds, em: em}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *BrowsingController) GetMusicFolders(w http.ResponseWriter, r *http.Request) (*responses.Subsonic, error) {
|
func (c *BrowsingController) GetMusicFolders(w http.ResponseWriter, r *http.Request) (*responses.Subsonic, error) {
|
||||||
@@ -236,7 +236,7 @@ func (c *BrowsingController) GetArtistInfo(w http.ResponseWriter, r *http.Reques
|
|||||||
count := utils.ParamInt(r, "count", 20)
|
count := utils.ParamInt(r, "count", 20)
|
||||||
includeNotPresent := utils.ParamBool(r, "includeNotPresent", false)
|
includeNotPresent := utils.ParamBool(r, "includeNotPresent", false)
|
||||||
|
|
||||||
artist, err := c.ei.UpdateArtistInfo(ctx, id, count, includeNotPresent)
|
artist, err := c.em.UpdateArtistInfo(ctx, id, count, includeNotPresent)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
@@ -285,7 +285,7 @@ func (c *BrowsingController) GetSimilarSongs(w http.ResponseWriter, r *http.Requ
|
|||||||
}
|
}
|
||||||
count := utils.ParamInt(r, "count", 50)
|
count := utils.ParamInt(r, "count", 50)
|
||||||
|
|
||||||
songs, err := c.ei.SimilarSongs(ctx, id, count)
|
songs, err := c.em.SimilarSongs(ctx, id, count)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
@@ -318,7 +318,7 @@ func (c *BrowsingController) GetTopSongs(w http.ResponseWriter, r *http.Request)
|
|||||||
}
|
}
|
||||||
count := utils.ParamInt(r, "count", 50)
|
count := utils.ParamInt(r, "count", 50)
|
||||||
|
|
||||||
songs, err := c.ei.TopSongs(ctx, artist, count)
|
songs, err := c.em.TopSongs(ctx, artist, count)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -19,8 +19,8 @@ func initSystemController(router *Router) *SystemController {
|
|||||||
|
|
||||||
func initBrowsingController(router *Router) *BrowsingController {
|
func initBrowsingController(router *Router) *BrowsingController {
|
||||||
dataStore := router.DataStore
|
dataStore := router.DataStore
|
||||||
externalInfo := router.ExternalInfo
|
externalMetadata := router.ExternalMetadata
|
||||||
browsingController := NewBrowsingController(dataStore, externalInfo)
|
browsingController := NewBrowsingController(dataStore, externalMetadata)
|
||||||
return browsingController
|
return browsingController
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -95,5 +95,5 @@ var allProviders = wire.NewSet(
|
|||||||
NewMediaRetrievalController,
|
NewMediaRetrievalController,
|
||||||
NewStreamController,
|
NewStreamController,
|
||||||
NewBookmarksController,
|
NewBookmarksController,
|
||||||
NewLibraryScanningController, core.NewNowPlayingRepository, wire.FieldsOf(new(*Router), "DataStore", "Artwork", "Streamer", "Archiver", "ExternalInfo", "Scanner"),
|
NewLibraryScanningController, core.NewNowPlayingRepository, wire.FieldsOf(new(*Router), "DataStore", "Artwork", "Streamer", "Archiver", "ExternalMetadata", "Scanner"),
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ var allProviders = wire.NewSet(
|
|||||||
NewBookmarksController,
|
NewBookmarksController,
|
||||||
NewLibraryScanningController,
|
NewLibraryScanningController,
|
||||||
core.NewNowPlayingRepository,
|
core.NewNowPlayingRepository,
|
||||||
wire.FieldsOf(new(*Router), "DataStore", "Artwork", "Streamer", "Archiver", "ExternalInfo", "Scanner"),
|
wire.FieldsOf(new(*Router), "DataStore", "Artwork", "Streamer", "Archiver", "ExternalMetadata", "Scanner"),
|
||||||
)
|
)
|
||||||
|
|
||||||
func initSystemController(router *Router) *SystemController {
|
func initSystemController(router *Router) *SystemController {
|
||||||
|
|||||||
Reference in New Issue
Block a user