mirror of
https://git.sr.ht/~phw/scotty
synced 2025-06-05 04:58:33 +02:00
Pass context to import backends
This commit is contained in:
parent
26d9f5e840
commit
4a66e3d432
8 changed files with 71 additions and 42 deletions
|
@ -121,12 +121,17 @@ func (b *JSPFBackend) ExportListens(ctx context.Context, oldestTimestamp time.Ti
|
|||
results <- models.ListensResult{Items: listens}
|
||||
}
|
||||
|
||||
func (b *JSPFBackend) ImportListens(export models.ListensResult, importResult models.ImportResult, progress chan models.TransferProgress) (models.ImportResult, error) {
|
||||
func (b *JSPFBackend) ImportListens(ctx context.Context, export models.ListensResult, importResult models.ImportResult, progress chan models.TransferProgress) (models.ImportResult, error) {
|
||||
for _, listen := range export.Items {
|
||||
track := listenAsTrack(listen)
|
||||
b.playlist.Tracks = append(b.playlist.Tracks, track)
|
||||
importResult.ImportCount += 1
|
||||
importResult.UpdateTimestamp(listen.ListenedAt)
|
||||
select {
|
||||
case <-ctx.Done():
|
||||
return importResult, ctx.Err()
|
||||
default:
|
||||
track := listenAsTrack(listen)
|
||||
b.playlist.Tracks = append(b.playlist.Tracks, track)
|
||||
importResult.ImportCount += 1
|
||||
importResult.UpdateTimestamp(listen.ListenedAt)
|
||||
}
|
||||
}
|
||||
|
||||
progress <- models.TransferProgress{}.FromImportResult(importResult, false)
|
||||
|
@ -160,12 +165,17 @@ func (b *JSPFBackend) ExportLoves(ctx context.Context, oldestTimestamp time.Time
|
|||
results <- models.LovesResult{Items: loves}
|
||||
}
|
||||
|
||||
func (b *JSPFBackend) ImportLoves(export models.LovesResult, importResult models.ImportResult, progress chan models.TransferProgress) (models.ImportResult, error) {
|
||||
func (b *JSPFBackend) ImportLoves(ctx context.Context, export models.LovesResult, importResult models.ImportResult, progress chan models.TransferProgress) (models.ImportResult, error) {
|
||||
for _, love := range export.Items {
|
||||
track := loveAsTrack(love)
|
||||
b.playlist.Tracks = append(b.playlist.Tracks, track)
|
||||
importResult.ImportCount += 1
|
||||
importResult.UpdateTimestamp(love.Created)
|
||||
select {
|
||||
case <-ctx.Done():
|
||||
return importResult, ctx.Err()
|
||||
default:
|
||||
track := loveAsTrack(love)
|
||||
b.playlist.Tracks = append(b.playlist.Tracks, track)
|
||||
importResult.ImportCount += 1
|
||||
importResult.UpdateTimestamp(love.Created)
|
||||
}
|
||||
}
|
||||
|
||||
progress <- models.TransferProgress{}.FromImportResult(importResult, false)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue