Fix archive reindex and add target dedup
This commit is contained in:
parent
e612896e06
commit
c83225f5ad
9 changed files with 796 additions and 6 deletions
|
|
@ -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++
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue