From 25686c1742978bd0133e3e01c28ec174216dc040 Mon Sep 17 00:00:00 2001 From: Deluan Date: Tue, 14 Jan 2020 21:51:35 -0500 Subject: [PATCH] Preparing for new scanner --- domain/checksum.go | 6 ++++++ persistence/checksum_repository.go | 6 +++--- persistence/checksum_repository_test.go | 4 ++-- {scanner => scanner_legacy}/importer.go | 2 +- {scanner => scanner_legacy}/importer_test.go | 2 +- {scanner => scanner_legacy}/itunes_scanner.go | 13 +++++-------- {scanner => scanner_legacy}/itunes_scanner_test.go | 2 +- {scanner => scanner_legacy}/wire_providers.go | 2 +- server/app.go | 6 +++--- wire_gen.go | 10 +++++----- wire_injectors.go | 6 +++--- 11 files changed, 31 insertions(+), 28 deletions(-) create mode 100644 domain/checksum.go rename {scanner => scanner_legacy}/importer.go (99%) rename {scanner => scanner_legacy}/importer_test.go (98%) rename {scanner => scanner_legacy}/itunes_scanner.go (97%) rename {scanner => scanner_legacy}/itunes_scanner_test.go (96%) rename {scanner => scanner_legacy}/wire_providers.go (85%) diff --git a/domain/checksum.go b/domain/checksum.go new file mode 100644 index 000000000..bdba76d71 --- /dev/null +++ b/domain/checksum.go @@ -0,0 +1,6 @@ +package domain + +type CheckSumRepository interface { + Get(id string) (string, error) + SetData(newSums map[string]string) error +} diff --git a/persistence/checksum_repository.go b/persistence/checksum_repository.go index 5f0c0e66d..e2eb6792e 100644 --- a/persistence/checksum_repository.go +++ b/persistence/checksum_repository.go @@ -2,8 +2,8 @@ package persistence import ( "github.com/astaxie/beego/orm" + "github.com/cloudsonic/sonic-server/domain" "github.com/cloudsonic/sonic-server/log" - "github.com/cloudsonic/sonic-server/scanner" ) type checkSumRepository struct { @@ -17,7 +17,7 @@ type Checksum struct { Sum string } -func NewCheckSumRepository() scanner.CheckSumRepository { +func NewCheckSumRepository() domain.CheckSumRepository { r := &checkSumRepository{} return r } @@ -76,4 +76,4 @@ func (r *checkSumRepository) SetData(newSums map[string]string) error { return nil } -var _ scanner.CheckSumRepository = (*checkSumRepository)(nil) +var _ domain.CheckSumRepository = (*checkSumRepository)(nil) diff --git a/persistence/checksum_repository_test.go b/persistence/checksum_repository_test.go index eed3b8695..f7ec41103 100644 --- a/persistence/checksum_repository_test.go +++ b/persistence/checksum_repository_test.go @@ -1,13 +1,13 @@ package persistence import ( - "github.com/cloudsonic/sonic-server/scanner" + "github.com/cloudsonic/sonic-server/domain" . "github.com/onsi/ginkgo" . "github.com/onsi/gomega" ) var _ = Describe("ChecksumRepository", func() { - var repo scanner.CheckSumRepository + var repo domain.CheckSumRepository BeforeEach(func() { Db().Delete(&Checksum{ID: checkSumId}) diff --git a/scanner/importer.go b/scanner_legacy/importer.go similarity index 99% rename from scanner/importer.go rename to scanner_legacy/importer.go index a3669b059..ebe3cc00e 100644 --- a/scanner/importer.go +++ b/scanner_legacy/importer.go @@ -1,4 +1,4 @@ -package scanner +package scanner_legacy import ( "fmt" diff --git a/scanner/importer_test.go b/scanner_legacy/importer_test.go similarity index 98% rename from scanner/importer_test.go rename to scanner_legacy/importer_test.go index 6c703cf2d..b75b7cc32 100644 --- a/scanner/importer_test.go +++ b/scanner_legacy/importer_test.go @@ -1,4 +1,4 @@ -package scanner +package scanner_legacy import ( "testing" diff --git a/scanner/itunes_scanner.go b/scanner_legacy/itunes_scanner.go similarity index 97% rename from scanner/itunes_scanner.go rename to scanner_legacy/itunes_scanner.go index 3d4898a7e..fc4946554 100644 --- a/scanner/itunes_scanner.go +++ b/scanner_legacy/itunes_scanner.go @@ -1,4 +1,4 @@ -package scanner +package scanner_legacy import ( "crypto/md5" @@ -28,19 +28,14 @@ type ItunesScanner struct { pplaylists map[string]plsRelation pmediaFiles map[int]*domain.MediaFile lastModifiedSince time.Time - checksumRepo CheckSumRepository + checksumRepo domain.CheckSumRepository newSums map[string]string } -func NewItunesScanner(checksumRepo CheckSumRepository) *ItunesScanner { +func NewItunesScanner(checksumRepo domain.CheckSumRepository) *ItunesScanner { return &ItunesScanner{checksumRepo: checksumRepo} } -type CheckSumRepository interface { - Get(id string) (string, error) - SetData(newSums map[string]string) error -} - type plsRelation struct { pID string parentPID string @@ -88,6 +83,8 @@ func (s *ItunesScanner) ScanLibrary(lastModifiedSince time.Time, path string) (i } } + log.Debug("Finished processing tracks.", "artists", len(s.artists), "albums", len(s.albums), "songs", len(s.mediaFiles)) + for albumId, count := range songsPerAlbum { s.albums[albumId].SongCount = count } diff --git a/scanner/itunes_scanner_test.go b/scanner_legacy/itunes_scanner_test.go similarity index 96% rename from scanner/itunes_scanner_test.go rename to scanner_legacy/itunes_scanner_test.go index 89cacbcc3..b7de75007 100644 --- a/scanner/itunes_scanner_test.go +++ b/scanner_legacy/itunes_scanner_test.go @@ -1,4 +1,4 @@ -package scanner +package scanner_legacy import ( "testing" diff --git a/scanner/wire_providers.go b/scanner_legacy/wire_providers.go similarity index 85% rename from scanner/wire_providers.go rename to scanner_legacy/wire_providers.go index f63e77eb0..107bd7e44 100644 --- a/scanner/wire_providers.go +++ b/scanner_legacy/wire_providers.go @@ -1,4 +1,4 @@ -package scanner +package scanner_legacy import "github.com/google/wire" diff --git a/server/app.go b/server/app.go index 0a8add617..8cff24d0c 100644 --- a/server/app.go +++ b/server/app.go @@ -9,7 +9,7 @@ import ( "github.com/cloudsonic/sonic-server/conf" "github.com/cloudsonic/sonic-server/log" - "github.com/cloudsonic/sonic-server/scanner" + "github.com/cloudsonic/sonic-server/scanner_legacy" "github.com/go-chi/chi" "github.com/go-chi/chi/middleware" "github.com/go-chi/cors" @@ -18,11 +18,11 @@ import ( const Version = "0.2" type Server struct { - Importer *scanner.Importer + Importer *scanner_legacy.Importer router *chi.Mux } -func New(importer *scanner.Importer) *Server { +func New(importer *scanner_legacy.Importer) *Server { a := &Server{Importer: importer} showBanner(Version) initMimeTypes() diff --git a/wire_gen.go b/wire_gen.go index 14f9ce03c..79b96b196 100644 --- a/wire_gen.go +++ b/wire_gen.go @@ -11,7 +11,7 @@ import ( "github.com/cloudsonic/sonic-server/engine" "github.com/cloudsonic/sonic-server/itunesbridge" "github.com/cloudsonic/sonic-server/persistence" - "github.com/cloudsonic/sonic-server/scanner" + "github.com/cloudsonic/sonic-server/scanner_legacy" "github.com/cloudsonic/sonic-server/server" "github.com/google/wire" ) @@ -21,14 +21,14 @@ import ( func CreateApp(musicFolder string) *server.Server { provider := createPersistenceProvider() checkSumRepository := provider.CheckSumRepository - itunesScanner := scanner.NewItunesScanner(checkSumRepository) + itunesScanner := scanner_legacy.NewItunesScanner(checkSumRepository) mediaFileRepository := provider.MediaFileRepository albumRepository := provider.AlbumRepository artistRepository := provider.ArtistRepository artistIndexRepository := provider.ArtistIndexRepository playlistRepository := provider.PlaylistRepository propertyRepository := provider.PropertyRepository - importer := scanner.NewImporter(musicFolder, itunesScanner, mediaFileRepository, albumRepository, artistRepository, artistIndexRepository, playlistRepository, propertyRepository) + importer := scanner_legacy.NewImporter(musicFolder, itunesScanner, mediaFileRepository, albumRepository, artistRepository, artistIndexRepository, playlistRepository, propertyRepository) serverServer := server.New(importer) return serverServer } @@ -84,7 +84,7 @@ func createPersistenceProvider() *Provider { type Provider struct { AlbumRepository domain.AlbumRepository ArtistRepository domain.ArtistRepository - CheckSumRepository scanner.CheckSumRepository + CheckSumRepository domain.CheckSumRepository ArtistIndexRepository domain.ArtistIndexRepository MediaFileRepository domain.MediaFileRepository MediaFolderRepository domain.MediaFolderRepository @@ -93,7 +93,7 @@ type Provider struct { PropertyRepository domain.PropertyRepository } -var allProviders = wire.NewSet(itunesbridge.NewItunesControl, engine.Set, scanner.Set, api.NewRouter, wire.FieldsOf(new(*Provider), "AlbumRepository", "ArtistRepository", "CheckSumRepository", +var allProviders = wire.NewSet(itunesbridge.NewItunesControl, engine.Set, scanner_legacy.Set, api.NewRouter, wire.FieldsOf(new(*Provider), "AlbumRepository", "ArtistRepository", "CheckSumRepository", "ArtistIndexRepository", "MediaFileRepository", "MediaFolderRepository", "NowPlayingRepository", "PlaylistRepository", "PropertyRepository"), createPersistenceProvider, ) diff --git a/wire_injectors.go b/wire_injectors.go index e19c7c471..342a0064a 100644 --- a/wire_injectors.go +++ b/wire_injectors.go @@ -8,7 +8,7 @@ import ( "github.com/cloudsonic/sonic-server/engine" "github.com/cloudsonic/sonic-server/itunesbridge" "github.com/cloudsonic/sonic-server/persistence" - "github.com/cloudsonic/sonic-server/scanner" + "github.com/cloudsonic/sonic-server/scanner_legacy" "github.com/cloudsonic/sonic-server/server" "github.com/google/wire" ) @@ -16,7 +16,7 @@ import ( type Provider struct { AlbumRepository domain.AlbumRepository ArtistRepository domain.ArtistRepository - CheckSumRepository scanner.CheckSumRepository + CheckSumRepository domain.CheckSumRepository ArtistIndexRepository domain.ArtistIndexRepository MediaFileRepository domain.MediaFileRepository MediaFolderRepository domain.MediaFolderRepository @@ -28,7 +28,7 @@ type Provider struct { var allProviders = wire.NewSet( itunesbridge.NewItunesControl, engine.Set, - scanner.Set, + scanner_legacy.Set, api.NewRouter, wire.FieldsOf(new(*Provider), "AlbumRepository", "ArtistRepository", "CheckSumRepository", "ArtistIndexRepository", "MediaFileRepository", "MediaFolderRepository", "NowPlayingRepository",