From d810fc9cacb2fccbc9b536d363785e616c431cd6 Mon Sep 17 00:00:00 2001 From: Philipp Wolfer Date: Wed, 22 Nov 2023 11:55:31 +0100 Subject: [PATCH] Ensure exporters finish the progress --- backends/funkwhale/funkwhale.go | 1 + backends/listenbrainz/listenbrainz.go | 1 + backends/scrobblerlog/scrobblerlog.go | 3 ++- backends/subsonic/subsonic.go | 2 ++ 4 files changed, 6 insertions(+), 1 deletion(-) diff --git a/backends/funkwhale/funkwhale.go b/backends/funkwhale/funkwhale.go index 8398096..785761c 100644 --- a/backends/funkwhale/funkwhale.go +++ b/backends/funkwhale/funkwhale.go @@ -107,6 +107,7 @@ out: for { result, err := b.client.GetFavoriteTracks(page, perPage) if err != nil { + progress <- p.Complete() results <- models.LovesResult{Error: err} return } diff --git a/backends/listenbrainz/listenbrainz.go b/backends/listenbrainz/listenbrainz.go index 0d2a801..9e75003 100644 --- a/backends/listenbrainz/listenbrainz.go +++ b/backends/listenbrainz/listenbrainz.go @@ -106,6 +106,7 @@ out: for { result, err := b.client.GetFeedback(b.username, 1, offset) if err != nil { + progress <- p.Complete() results <- models.LovesResult{Error: err} return } diff --git a/backends/scrobblerlog/scrobblerlog.go b/backends/scrobblerlog/scrobblerlog.go index f040642..f4a7681 100644 --- a/backends/scrobblerlog/scrobblerlog.go +++ b/backends/scrobblerlog/scrobblerlog.go @@ -103,6 +103,7 @@ func (b *ScrobblerLogBackend) ExportListens(oldestTimestamp time.Time, results c defer close(progress) file, err := os.Open(b.filePath) if err != nil { + progress <- models.Progress{}.Complete() results <- models.ListensResult{Error: err} return } @@ -111,8 +112,8 @@ func (b *ScrobblerLogBackend) ExportListens(oldestTimestamp time.Time, results c log, err := Parse(file, b.includeSkipped) if err != nil { + progress <- models.Progress{}.Complete() results <- models.ListensResult{Error: err} - close(results) return } diff --git a/backends/subsonic/subsonic.go b/backends/subsonic/subsonic.go index b38ac7c..f22a3be 100644 --- a/backends/subsonic/subsonic.go +++ b/backends/subsonic/subsonic.go @@ -49,12 +49,14 @@ func (b *SubsonicApiBackend) ExportLoves(oldestTimestamp time.Time, results chan defer close(progress) err := b.client.Authenticate(b.password) if err != nil { + progress <- models.Progress{}.Complete() results <- models.LovesResult{Error: err} return } starred, err := b.client.GetStarred2(map[string]string{}) if err != nil { + progress <- models.Progress{}.Complete() results <- models.LovesResult{Error: err} return }