Philipp Wolfer
1244405747
Moved archive package to public pkg/
2025-05-25 12:51:36 +02:00
Philipp Wolfer
28c618ffce
Implemented tests and added documentation for archive
2025-05-25 12:46:44 +02:00
Philipp Wolfer
4da5697435
If dump does no write to file, output the result as log
2025-05-24 20:54:20 +02:00
Philipp Wolfer
312d9860cf
Fixed import log output duplicating
2025-05-24 20:43:02 +02:00
Philipp Wolfer
b1b0df7763
listenbrainz: fixed timestamp update with duplicates
2025-05-24 18:52:15 +02:00
Philipp Wolfer
c29b2e20cd
deezer: fixed endless export loop if user's listen history is empty
2025-05-24 18:22:42 +02:00
Philipp Wolfer
93767df567
Allow editing config option after renaming
2025-05-24 17:54:24 +02:00
Philipp Wolfer
1ef498943b
Renamed parameter for lbarchive also to "archive-file"
2025-05-24 17:38:19 +02:00
Philipp Wolfer
7fb77da135
Allow reading Spotify history directly from ZIP file
2025-05-24 17:35:19 +02:00
Philipp Wolfer
ef6780701a
Use ExtendTrackMetadata also for LB API loves export
2025-05-24 17:08:15 +02:00
Philipp Wolfer
7542657925
Use LB API to lookup missing metadata for loves
...
This is faster than using the MBID API individually
2025-05-24 16:46:10 +02:00
Philipp Wolfer
dddd2e4eec
Implemented lbarchive loves export
2025-05-24 11:59:35 +02:00
Philipp Wolfer
d250952678
Extend dump backend to be able to write to a file
2025-05-24 11:59:09 +02:00
Philipp Wolfer
cf5319309a
Renamed listenbrainz.Archive to listenbrainz.ExportArchive
2025-05-24 00:51:28 +02:00
Philipp Wolfer
8462b9395e
Keep listenbrainz package internal for now
2025-05-24 00:47:40 +02:00
Philipp Wolfer
92e7216fac
Implemented listenbrainz-archive backend with listen export support
2025-05-24 00:37:16 +02:00
Philipp Wolfer
5c56e480f1
Moved general LB related code to separate package
2025-05-24 00:37:16 +02:00
Philipp Wolfer
34b6bb9aa3
Use filepath.Join instead of file.Join
2025-05-24 00:37:05 +02:00
Philipp Wolfer
5927f41a83
Revert "jspf/scrobblerlog: return results in batches"
...
This reverts commit a8ce2be5d7
.
2025-05-23 08:52:23 +02:00
Philipp Wolfer
a8ce2be5d7
jspf/scrobblerlog: return results in batches
...
This allows the importer to start working while export is still in progress
2025-05-23 07:48:42 +02:00
Philipp Wolfer
c7af90b585
More granular progress report for JSPF and scrobblerlog
2025-05-23 07:47:52 +02:00
Philipp Wolfer
20853f7601
Simplify context cancellation checks
2025-05-22 14:13:31 +02:00
Philipp Wolfer
4a66e3d432
Pass context to import backends
2025-05-22 11:53:08 +02:00
Philipp Wolfer
26d9f5e840
Pass context to export backends
2025-05-22 11:53:05 +02:00
Philipp Wolfer
b5bca1d4ab
Use context aware musicbrainzws2
2025-05-22 11:51:53 +02:00
Philipp Wolfer
d1642b7f1f
Make web service clients context aware
2025-05-22 11:51:53 +02:00
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
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
a8517ea249
funkwhale: fix progress abort on error
2025-05-04 13:22:51 +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
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
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
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