Commit graph

152 commits

Author SHA1 Message Date
Philipp Wolfer
3b545a0fd6
Prepare using a context for export / import
This will allow cancelling the export if the import fails
before the export finished.

For now the context isn't passed on to the actual export functions,
hence there is not yet any cancellation happening.
2025-05-22 11:51:51 +02:00
Philipp Wolfer
536fae6a46 ScrobblerLog.ReadHeader now accepts io.Reader 2025-05-22 11:51:23 +02:00
Philipp Wolfer
a87c42059f
Use a WaitGroup to wait for both export and import goroutine to finish 2025-05-05 17:49:44 +02:00
Philipp Wolfer
17cee9cb8b
For import progress show actually processed and total count 2025-05-05 17:39:47 +02:00
Philipp Wolfer
b8e6ccffdb
Initial implementation of unified export/import progress
Both export and import progress get updated over a unified channel.
Most importantly this allows updating the import total from latest
export results.
2025-05-05 11:38:29 +02:00
Philipp Wolfer
1f48abc284
Fixed timestamp displayed after import not being the updated one 2025-05-04 15:18:14 +02:00
Philipp Wolfer
54fffce1d9
Update translation files 2025-05-04 13:31:44 +02:00
Philipp Wolfer
cb6a534fa1 Translated using Weblate (German)
Currently translated at 100.0% (55 of 55 strings)

Co-authored-by: Philipp Wolfer <phw@uploadedlobster.com>
Translate-URL: https://translate.uploadedlobster.com/projects/scotty/app/de/
Translation: Scotty/app
2025-05-04 11:25:07 +00:00
Philipp Wolfer
05f0e8d172
Change string for aborted progress bar 2025-05-04 13:24:12 +02:00
Philipp Wolfer
a8517ea249
funkwhale: fix progress abort on error 2025-05-04 13:22:51 +02:00
Philipp Wolfer
dfe6773744
Update translations 2025-05-04 13:07:02 +02:00
Philipp Wolfer
aae5123c3d
Show progress bars as aborted on export / import error 2025-05-04 13:06:48 +02:00
Philipp Wolfer
55ac41b147
If import fails still save the last reported timestamp
This allows continuing a partially failed import run.
2025-05-04 11:53:46 +02:00
Philipp Wolfer
069f0de2ee
Call "FinishImport" even on error
This gives the importer the chance to close connections
and free resources to ensure already imported items are
properly handled.
2025-05-04 11:53:45 +02:00
Philipp Wolfer
3b1adc9f1f
Fix duplicate calls to handle import errors
This fixes the import process hanging on error
2025-05-04 11:53:43 +02:00
Philipp Wolfer
1c3364dad5
Close export results channel in generic implementation
This removes the need for every implementation to handle this case.
2025-05-04 11:53:42 +02:00
Philipp Wolfer
9480c69cbb
Handle wait group for progress bar centrally
This does not need to be exposed and caller only
needs to wait for the Progress instance.
2025-05-04 11:53:35 +02:00
Philipp Wolfer
b3136bde9a
jspf: add MB extension, if it does not exist 2025-05-04 11:52:45 +02:00
Philipp Wolfer
8885e9cebc
Fix scrobblerlog timezone not being set from config 2025-05-02 21:35:14 +02:00
Philipp Wolfer
d757129bd7
jspf: also set username and recording MSID in exports 2025-05-01 15:20:37 +02:00
Philipp Wolfer
a645ec5c78
JSPF: Implemented export as loves and listens 2025-05-01 15:10:00 +02:00
Philipp Wolfer
cfc3cd522d
scrobblerlog: fix listen export not considering latest timestamp 2025-05-01 14:09:12 +02:00
Philipp Wolfer
443734e4c7
jspf: write duration to exported JSPF 2025-05-01 13:48:21 +02:00
Philipp Wolfer
91c28bac0c
Release 0.5.2 2025-05-01 12:53:32 +02:00
Philipp Wolfer
21d757e37c
listenbainz: fixed loves export not considering timestamp 2025-05-01 12:32:02 +02:00
Philipp Wolfer
c305b6c7e3
Simplify timestamp comparisons 2025-05-01 12:27:24 +02:00
Philipp Wolfer
389c7c6ec1
Release 0.5.1 2025-05-01 11:53:09 +02:00
Philipp Wolfer
0a411fe2fa
If locale detection fails fall back to English 2025-04-29 17:25:10 +02:00
Philipp Wolfer
1e91b684cb
Release 0.5.0 2025-04-29 16:16:43 +02:00
Philipp Wolfer
19852be68b
Updated translations 2025-04-29 16:12:42 +02:00
Philipp Wolfer
a6cc8d49ac Translated using Weblate (German)
Currently translated at 100.0% (54 of 54 strings)

Co-authored-by: Philipp Wolfer <phw@uploadedlobster.com>
Translate-URL: https://translate.uploadedlobster.com/projects/scotty/app/de/
Translation: Scotty/app
2025-04-29 14:11:31 +00:00
Philipp Wolfer
a5442b477e
Sync translations with new strings 2025-04-29 16:06:13 +02:00
Philipp Wolfer
90e101080f Translated using Weblate (German)
Currently translated at 100.0% (54 of 54 strings)

Co-authored-by: Philipp Wolfer <phw@uploadedlobster.com>
Translate-URL: https://translate.uploadedlobster.com/projects/scotty/app/de/
Translation: Scotty/app
2025-04-29 13:51:09 +00:00
Philipp Wolfer
dff34b249c
Updated translation files 2025-04-29 15:46:14 +02:00
Philipp Wolfer
bcb1834994
scrobblerlog: use camelcase for constants 2025-04-29 13:29:00 +02:00
Philipp Wolfer
d51c97c648
Code style: All uppercase acronyms URL, ISRC, ID, HTTP 2025-04-29 13:23:41 +02:00
Philipp Wolfer
1516a3a9d6
scrobblerlog: renamed setting include-skipped to ignore-skipped
This makes the setting consistent with the similar setting for spotify
2025-04-29 12:57:28 +02:00
Philipp Wolfer
159f486cdc
Upgrade musicbrainzws2 2025-04-29 10:32:59 +02:00
Philipp Wolfer
b104c2bc42
scrobblerlog: fixed listen export progress 2025-04-29 10:10:32 +02:00
Philipp Wolfer
ed191d2f15
scrobblerlog: Allow configuring fallback time zone
Fixes #6
2025-04-29 10:05:40 +02:00
Philipp Wolfer
0f4b04c641
Renamed Backend.FromConfig to Backend.InitConfig and added error handling 2025-04-29 10:03:28 +02:00
Philipp Wolfer
aad542850a
scrobblerlog: Use specific Record type
This makes the interface more generic and easier to reuse in other
projects.
2025-04-29 09:18:57 +02:00
Philipp Wolfer
aeb3a56982
Moved scrobblerlog parsing to separate package 2025-04-29 08:44:31 +02:00
Philipp Wolfer
69665bc286
scrobblerlog: consider timezone from parsed file 2025-04-29 07:54:27 +02:00
Philipp Wolfer
91f78d04dd
ListenBrainz: Handle missing loves metadata for merged recordings
If a loved recording MBID got merged into another recording, the love on
ListenBrainz has no metadata. Lookup the metadata directly from
MusicBrainz.
2025-04-27 18:59:26 +02:00
Philipp Wolfer
db78bfe457
Fixed subsonic test 2025-04-27 18:16:27 +02:00
Philipp Wolfer
20c9ada6ec
RecordingMsid -> RecordingMSID 2025-04-27 18:14:48 +02:00
Philipp Wolfer
7c0774fb8d
ListenBrainz: Fixed loves export 2025-04-27 18:11:58 +02:00
Philipp Wolfer
90bf51a00b
ListenBrainz: Log missing recording MBID on love import 2025-04-27 17:54:29 +02:00
Philipp Wolfer
910056b0a6
Subsonic: Support for some OpenSubsonic tags
Mainly this makes the MusicBrainz recording ID available
2025-04-27 17:53:51 +02:00