mirror of
https://github.com/navidrome/navidrome.git
synced 2025-06-06 10:23:21 +03:00
Return counter from DeleteByPath
This commit is contained in:
parent
e55397fcdc
commit
dc8368c89c
@ -59,7 +59,7 @@ type MediaFileRepository interface {
|
|||||||
GetRandom(options ...QueryOptions) (MediaFiles, error)
|
GetRandom(options ...QueryOptions) (MediaFiles, error)
|
||||||
Search(q string, offset int, size int) (MediaFiles, error)
|
Search(q string, offset int, size int) (MediaFiles, error)
|
||||||
Delete(id string) error
|
Delete(id string) error
|
||||||
DeleteByPath(path string) error
|
DeleteByPath(path string) (int64, error)
|
||||||
|
|
||||||
AnnotatedRepository
|
AnnotatedRepository
|
||||||
}
|
}
|
||||||
|
@ -124,14 +124,13 @@ func (r mediaFileRepository) Delete(id string) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// DeleteByPath delete from the DB all mediafiles that are direct children of path
|
// DeleteByPath delete from the DB all mediafiles that are direct children of path
|
||||||
func (r mediaFileRepository) DeleteByPath(path string) error {
|
func (r mediaFileRepository) DeleteByPath(path string) (int64, error) {
|
||||||
path = filepath.Clean(path)
|
path = filepath.Clean(path)
|
||||||
del := Delete(r.tableName).
|
del := Delete(r.tableName).
|
||||||
Where(And{Like{"path": filepath.Join(path, "%")},
|
Where(And{Like{"path": filepath.Join(path, "%")},
|
||||||
Eq{fmt.Sprintf("substr(path, %d) glob '*%s*'", len(path)+2, string(os.PathSeparator)): 0}})
|
Eq{fmt.Sprintf("substr(path, %d) glob '*%s*'", len(path)+2, string(os.PathSeparator)): 0}})
|
||||||
log.Debug(r.ctx, "Deleting mediafiles by path", "path", path)
|
log.Debug(r.ctx, "Deleting mediafiles by path", "path", path)
|
||||||
_, err := r.executeSQL(del)
|
return r.executeSQL(del)
|
||||||
return err
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (r mediaFileRepository) Search(q string, offset int, size int) (model.MediaFiles, error) {
|
func (r mediaFileRepository) Search(q string, offset int, size int) (model.MediaFiles, error) {
|
||||||
|
@ -82,7 +82,7 @@ var _ = Describe("MediaRepository", func() {
|
|||||||
id3 := "3333"
|
id3 := "3333"
|
||||||
Expect(mr.Put(&model.MediaFile{ID: id3, Path: P("/abc/" + id3 + ".mp3")})).To(BeNil())
|
Expect(mr.Put(&model.MediaFile{ID: id3, Path: P("/abc/" + id3 + ".mp3")})).To(BeNil())
|
||||||
|
|
||||||
Expect(mr.DeleteByPath(P("/abc"))).To(BeNil())
|
Expect(mr.DeleteByPath(P("/abc"))).To(Equal(int64(1)))
|
||||||
|
|
||||||
Expect(mr.Get(id1)).ToNot(BeNil())
|
Expect(mr.Get(id1)).ToNot(BeNil())
|
||||||
Expect(mr.Get(id2)).ToNot(BeNil())
|
Expect(mr.Get(id2)).ToNot(BeNil())
|
||||||
|
@ -287,7 +287,8 @@ func (s *TagScanner) processDeletedDir(ctx context.Context, dir string, updatedA
|
|||||||
}
|
}
|
||||||
|
|
||||||
log.Info("Finished processing deleted folder", "dir", dir, "purged", len(ct), "elapsed", time.Since(start))
|
log.Info("Finished processing deleted folder", "dir", dir, "purged", len(ct), "elapsed", time.Since(start))
|
||||||
return s.ds.MediaFile(ctx).DeleteByPath(dir)
|
_, err = s.ds.MediaFile(ctx).DeleteByPath(dir)
|
||||||
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *TagScanner) removeDeletedFolders(ctx context.Context, changed []string) {
|
func (s *TagScanner) removeDeletedFolders(ctx context.Context, changed []string) {
|
||||||
@ -303,7 +304,7 @@ func (s *TagScanner) removeDeletedFolders(ctx context.Context, changed []string)
|
|||||||
for _, path := range paths {
|
for _, path := range paths {
|
||||||
if readable, err := utils.IsDirReadable(path); !readable {
|
if readable, err := utils.IsDirReadable(path); !readable {
|
||||||
log.Info(ctx, "Path unavailable. Removing tracks from DB", "path", path, err)
|
log.Info(ctx, "Path unavailable. Removing tracks from DB", "path", path, err)
|
||||||
err = s.ds.MediaFile(ctx).DeleteByPath(path)
|
_, err = s.ds.MediaFile(ctx).DeleteByPath(path)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Error(ctx, "Error removing MediaFiles from DB", "path", path, err)
|
log.Error(ctx, "Error removing MediaFiles from DB", "path", path, err)
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user