Fix bug in handling deleted entry
This commit is contained in:
parent
e8558b17f5
commit
f775681162
|
@ -32,18 +32,17 @@ func (c *ClICtrl) syncFiles(ctx context.Context, account model.Account) error {
|
||||||
model.SortAlbumFileEntry(entries)
|
model.SortAlbumFileEntry(entries)
|
||||||
defer utils.TimeTrack(time.Now(), "process_files")
|
defer utils.TimeTrack(time.Now(), "process_files")
|
||||||
var albumDiskInfo *albumDiskInfo
|
var albumDiskInfo *albumDiskInfo
|
||||||
for i, entry := range entries {
|
for i, albumFileEntry := range entries {
|
||||||
if entry.SyncedLocally {
|
if albumFileEntry.SyncedLocally {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
albumInfo, ok := albumIDToMetaMap[entry.AlbumID]
|
albumInfo, ok := albumIDToMetaMap[albumFileEntry.AlbumID]
|
||||||
if !ok {
|
if !ok {
|
||||||
log.Printf("Album %d not found in local metadata", entry.AlbumID)
|
log.Printf("Album %d not found in local metadata", albumFileEntry.AlbumID)
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
if albumInfo.IsDeleted {
|
if albumInfo.IsDeleted {
|
||||||
putErr := c.DeleteAlbumEntry(ctx, entry)
|
putErr := c.DeleteAlbumEntry(ctx, albumFileEntry)
|
||||||
if putErr != nil {
|
if putErr != nil {
|
||||||
return putErr
|
return putErr
|
||||||
}
|
}
|
||||||
|
@ -56,7 +55,7 @@ func (c *ClICtrl) syncFiles(ctx context.Context, account model.Account) error {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
fileBytes, err := c.GetValue(ctx, model.RemoteFiles, []byte(fmt.Sprintf("%d", entry.FileID)))
|
fileBytes, err := c.GetValue(ctx, model.RemoteFiles, []byte(fmt.Sprintf("%d", albumFileEntry.FileID)))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
@ -67,7 +66,7 @@ func (c *ClICtrl) syncFiles(ctx context.Context, account model.Account) error {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
log.Printf("[%d/%d] Sync %s for album %s", i, len(entries), existingEntry.GetTitle(), albumInfo.AlbumName)
|
log.Printf("[%d/%d] Sync %s for album %s", i, len(entries), existingEntry.GetTitle(), albumInfo.AlbumName)
|
||||||
err = c.downloadEntry(ctx, albumDiskInfo, *existingEntry, entry)
|
err = c.downloadEntry(ctx, albumDiskInfo, *existingEntry, albumFileEntry)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if errors.Is(err, model.ErrDecryption) {
|
if errors.Is(err, model.ErrDecryption) {
|
||||||
continue
|
continue
|
||||||
|
@ -81,7 +80,15 @@ func (c *ClICtrl) syncFiles(ctx context.Context, account model.Account) error {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
log.Fatalf("File %d not found in remote", entry.FileID)
|
// file metadata is missing in the localDB
|
||||||
|
if albumFileEntry.IsDeleted {
|
||||||
|
delErr := c.DeleteAlbumEntry(ctx, albumFileEntry)
|
||||||
|
if delErr != nil {
|
||||||
|
log.Fatalf("Error deleting album entry %d (deleted: %v) %v", albumFileEntry.FileID, albumFileEntry.IsDeleted, delErr)
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
log.Fatalf("Failed to find entry in db for file %d (deleted: %v)", albumFileEntry.FileID, albumFileEntry.IsDeleted)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue