diff --git a/internal/backends/listenbrainz/listenbrainz.go b/internal/backends/listenbrainz/listenbrainz.go index 97f721d..e9c407b 100644 --- a/internal/backends/listenbrainz/listenbrainz.go +++ b/internal/backends/listenbrainz/listenbrainz.go @@ -233,15 +233,18 @@ func (b *ListenBrainzApiBackend) ImportLoves(export models.LovesResult, importRe if len(b.existingMBIDs) == 0 { existingLovesChan := make(chan models.LovesResult) go b.ExportLoves(time.Unix(0, 0), existingLovesChan, progress) - existingLoves := <-existingLovesChan - if existingLoves.Error != nil { - return importResult, existingLoves.Error - } // TODO: Store MBIDs directly - b.existingMBIDs = make(map[mbtypes.MBID]bool, len(existingLoves.Items)) - for _, love := range existingLoves.Items { - b.existingMBIDs[love.RecordingMBID] = true + b.existingMBIDs = make(map[mbtypes.MBID]bool, MaxItemsPerGet) + + for existingLoves := range existingLovesChan { + if existingLoves.Error != nil { + return importResult, existingLoves.Error + } + + for _, love := range existingLoves.Items { + b.existingMBIDs[love.RecordingMBID] = true + } } } @@ -268,6 +271,8 @@ func (b *ListenBrainzApiBackend) ImportLoves(export models.LovesResult, importRe ok = err == nil && resp.Status == "ok" if err != nil { errMsg = err.Error() + } else { + b.existingMBIDs[recordingMBID] = true } }