mirror of
https://git.sr.ht/~phw/scotty
synced 2025-05-10 02:07:05 +02:00
If import fails still save the last reported timestamp
This allows continuing a partially failed import run.
This commit is contained in:
parent
45aeeb7087
commit
1a9f9bb36c
3 changed files with 15 additions and 15 deletions
|
@ -51,7 +51,7 @@ func (p ListensImportProcessor) Import(export models.ListensResult, result model
|
|||
}
|
||||
importResult, err := p.Backend.ImportListens(export, result, progress)
|
||||
if err != nil {
|
||||
return result, err
|
||||
return importResult, err
|
||||
}
|
||||
return importResult, nil
|
||||
}
|
||||
|
@ -80,7 +80,7 @@ func (p LovesImportProcessor) Import(export models.LovesResult, result models.Im
|
|||
}
|
||||
importResult, err := p.Backend.ImportLoves(export, result, progress)
|
||||
if err != nil {
|
||||
return result, err
|
||||
return importResult, err
|
||||
}
|
||||
return importResult, nil
|
||||
}
|
||||
|
@ -89,6 +89,7 @@ func process[R models.LovesResult | models.ListensResult, P ImportProcessor[R]](
|
|||
defer close(out)
|
||||
defer close(progress)
|
||||
result := models.ImportResult{}
|
||||
p := models.Progress{}
|
||||
|
||||
if err := processor.ImportBackend().StartImport(); err != nil {
|
||||
out <- handleError(result, err, progress)
|
||||
|
@ -97,13 +98,13 @@ func process[R models.LovesResult | models.ListensResult, P ImportProcessor[R]](
|
|||
|
||||
for exportResult := range results {
|
||||
importResult, err := processor.Import(exportResult, result, out, progress)
|
||||
result.Update(importResult)
|
||||
if err != nil {
|
||||
processor.ImportBackend().FinishImport()
|
||||
out <- handleError(result, err, progress)
|
||||
return
|
||||
}
|
||||
result.Update(importResult)
|
||||
progress <- models.Progress{}.FromImportResult(result)
|
||||
progress <- p.FromImportResult(result)
|
||||
}
|
||||
|
||||
if err := processor.ImportBackend().FinishImport(); err != nil {
|
||||
|
@ -111,7 +112,7 @@ func process[R models.LovesResult | models.ListensResult, P ImportProcessor[R]](
|
|||
return
|
||||
}
|
||||
|
||||
progress <- models.Progress{}.FromImportResult(result).Complete()
|
||||
progress <- p.FromImportResult(result).Complete()
|
||||
out <- result
|
||||
}
|
||||
|
||||
|
|
|
@ -105,6 +105,7 @@ out:
|
|||
}
|
||||
|
||||
func (b *MalojaApiBackend) ImportListens(export models.ListensResult, importResult models.ImportResult, progress chan models.Progress) (models.ImportResult, error) {
|
||||
p := models.Progress{}.FromImportResult(importResult)
|
||||
for _, listen := range export.Items {
|
||||
scrobble := NewScrobble{
|
||||
Title: listen.TrackName,
|
||||
|
@ -125,7 +126,7 @@ func (b *MalojaApiBackend) ImportListens(export models.ListensResult, importResu
|
|||
|
||||
importResult.UpdateTimestamp(listen.ListenedAt)
|
||||
importResult.ImportCount += 1
|
||||
progress <- models.Progress{}.FromImportResult(importResult)
|
||||
progress <- p.FromImportResult(importResult)
|
||||
}
|
||||
|
||||
return importResult, nil
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue