clean up import logic
This commit is contained in:
@@ -82,9 +82,11 @@ func handleFolderCompletion(fullPath string, info *godirwalk.Dirent) error {
|
|||||||
cover := db.Cover{
|
cover := db.Cover{
|
||||||
Path: cLastAlbum.coverPath,
|
Path: cLastAlbum.coverPath,
|
||||||
}
|
}
|
||||||
err := tx.Where(cover).First(&cover).Error // TODO: swap
|
// skip if the record exists and hasn't been modified since
|
||||||
|
// the last scan
|
||||||
|
err := tx.Where(cover).First(&cover).Error
|
||||||
if !gorm.IsRecordNotFoundError(err) &&
|
if !gorm.IsRecordNotFoundError(err) &&
|
||||||
!cLastAlbum.coverModTime.After(cover.UpdatedAt) {
|
cLastAlbum.coverModTime.Before(cover.UpdatedAt) {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
image, err := ioutil.ReadFile(cLastAlbum.coverPath)
|
image, err := ioutil.ReadFile(cLastAlbum.coverPath)
|
||||||
@@ -128,9 +130,11 @@ func handleFile(fullPath string, info *godirwalk.Dirent) error {
|
|||||||
track := db.Track{
|
track := db.Track{
|
||||||
Path: fullPath,
|
Path: fullPath,
|
||||||
}
|
}
|
||||||
err = tx.Where(track).First(&track).Error // TODO: swap
|
// skip if the record exists and hasn't been modified since
|
||||||
|
// the last scan
|
||||||
|
err = tx.Where(track).First(&track).Error
|
||||||
if !gorm.IsRecordNotFoundError(err) &&
|
if !gorm.IsRecordNotFoundError(err) &&
|
||||||
!modTime.After(track.UpdatedAt) {
|
modTime.Before(track.UpdatedAt) {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
tags, err := readTags(fullPath)
|
tags, err := readTags(fullPath)
|
||||||
@@ -208,7 +212,6 @@ func createDatabase() {
|
|||||||
|
|
||||||
func cleanDatabase() {
|
func cleanDatabase() {
|
||||||
// delete tracks not on filesystem
|
// delete tracks not on filesystem
|
||||||
o := time.Now()
|
|
||||||
var tracks []*db.Track
|
var tracks []*db.Track
|
||||||
tx.Select("id, path").Find(&tracks)
|
tx.Select("id, path").Find(&tracks)
|
||||||
for _, track := range tracks {
|
for _, track := range tracks {
|
||||||
@@ -219,8 +222,6 @@ func cleanDatabase() {
|
|||||||
tx.Delete(&track)
|
tx.Delete(&track)
|
||||||
log.Println("removed", track.Path)
|
log.Println("removed", track.Path)
|
||||||
}
|
}
|
||||||
fmt.Println("ONE", time.Since(o))
|
|
||||||
o = time.Now()
|
|
||||||
// delete albums without tracks
|
// delete albums without tracks
|
||||||
tx.Exec(`
|
tx.Exec(`
|
||||||
DELETE FROM albums
|
DELETE FROM albums
|
||||||
@@ -228,8 +229,6 @@ func cleanDatabase() {
|
|||||||
FROM tracks
|
FROM tracks
|
||||||
WHERE album_id = albums.id) = 0;
|
WHERE album_id = albums.id) = 0;
|
||||||
`)
|
`)
|
||||||
fmt.Println("TWO", time.Since(o))
|
|
||||||
o = time.Now()
|
|
||||||
// delete artists without tracks
|
// delete artists without tracks
|
||||||
tx.Exec(`
|
tx.Exec(`
|
||||||
DELETE FROM album_artists
|
DELETE FROM album_artists
|
||||||
@@ -237,7 +236,6 @@ func cleanDatabase() {
|
|||||||
FROM albums
|
FROM albums
|
||||||
WHERE album_artist_id = album_artists.id) = 0;
|
WHERE album_artist_id = album_artists.id) = 0;
|
||||||
`)
|
`)
|
||||||
fmt.Println("THREE", time.Since(o))
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
|||||||
Reference in New Issue
Block a user