diff --git a/scanner/scanner.go b/scanner/scanner.go index 26ca5da..648c665 100644 --- a/scanner/scanner.go +++ b/scanner/scanner.go @@ -53,8 +53,8 @@ func decoded(in string) string { func withTx(db *gorm.DB, cb func(tx *gorm.DB)) { tx := db.Begin() + defer tx.Commit() cb(tx) - tx.Commit() } type Scanner struct { @@ -233,6 +233,7 @@ func (s *Scanner) handleFolder(it *item) error { s.curFolders.Push(folder) }() err := s.db. + Select("id, updated_at"). Where(model.Album{ LeftPath: it.directory, RightPath: it.filename, @@ -261,6 +262,7 @@ func (s *Scanner) handleTrack(it *item) error { // set track basics track := &model.Track{} err := s.trTx. + Select("id, updated_at"). Where(model.Track{ AlbumID: s.curFolders.PeekID(), Filename: it.filename, @@ -295,7 +297,6 @@ func (s *Scanner) handleTrack(it *item) error { track.Bitrate = trTags.Bitrate() // from the file instead of tags // // set album artist basics - artist := &model.Artist{} artistName := func() string { if ret := trTags.AlbumArtist(); ret != "" { return ret @@ -305,7 +306,9 @@ func (s *Scanner) handleTrack(it *item) error { } return "Unknown Artist" }() + artist := &model.Artist{} err = s.trTx. + Select("id"). Where("name = ?", artistName). First(artist). Error diff --git a/scanner/stack/stack_test.go b/scanner/stack/stack_test.go index 462d51e..798e111 100644 --- a/scanner/stack/stack_test.go +++ b/scanner/stack/stack_test.go @@ -7,7 +7,11 @@ import ( ) func egAlbum(id int) *model.Album { - return &model.Album{IDBase: model.IDBase{id}} + return &model.Album{ + IDBase: model.IDBase{ + ID: id, + }, + } } func TestFolderStack(t *testing.T) { @@ -19,8 +23,8 @@ func TestFolderStack(t *testing.T) { expected := "[6, 5, 4, 3, ]" actual := sta.String() if expected != actual { - t.Errorf("first stack: expected string %q, got %q", - expected, actual) + t.Errorf("first stack: expected string "+ + "%q, got %q", expected, actual) } // sta = &Stack{} @@ -34,7 +38,7 @@ func TestFolderStack(t *testing.T) { expected = "[6, 5, 4, 27, ]" actual = sta.String() if expected != actual { - t.Errorf("second stack: expected string %q, got %q", - expected, actual) + t.Errorf("second stack: expected string "+ + "%q, got %q", expected, actual) } }