Fix archive reindex and add target dedup

This commit is contained in:
DonVoo 2026-07-14 20:57:09 +02:00
parent e612896e06
commit c83225f5ad
9 changed files with 796 additions and 6 deletions

View file

@ -114,12 +114,17 @@ func migrateAccount(a Account, selectedFolders map[string]bool) error {
_ = finishJob(jobID, 0, 0, 1, "error")
return err
}
folderMap, err := FolderMap(a.ID)
if err != nil {
_ = finishJob(jobID, 0, 0, 1, "error")
return err
}
total, done, errs := 0, 0, 0
for _, folder := range folders {
if len(selectedFolders) > 0 && !selectedFolders[folder.Name] {
continue
}
dstFolder := MapSourceToTarget(folder.Name, folder.Attrs, folder.Delim, dst.Delim(), targets, "")
dstFolder := MapSourceToTarget(folder.Name, folder.Attrs, folder.Delim, dst.Delim(), targets, folderMap[folder.Name])
if dstFolder == "" {
dstFolder = folder.Name
}
@ -173,6 +178,12 @@ func migrateAccount(a Account, selectedFolders map[string]bool) error {
log.Printf("%s %s mbox index error %s: %v", a.Name, folder.Name, m.MessageID, err)
return nil
}
if err := UpdateMboxIndexState(a.ID, folder.Name, appendInfo.FileOffset+appendInfo.FrameLen); err != nil {
errs++
folderErrs++
log.Printf("%s %s mbox index state error %s: %v", a.Name, folder.Name, m.MessageID, err)
return nil
}
if err := MarkCopied(a.ID, folder.Name, m.MessageID); err != nil {
errs++
folderErrs++