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
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
Philipp Wolfer
2d66d41873
ListenBrainz: Fix love import progress
...
Exporting existing loves must not mark the progress as completed.
2025-04-27 16:57:30 +02:00
Philipp Wolfer
da6c920789
ListenBrainz: Fix loves import loading all existing loves
...
Fixes import if the user had more than 1000 loves already
2025-04-27 16:57:13 +02:00
Philipp Wolfer
01e7569051
Fixed progress for subsonic loves export
2025-04-27 16:21:59 +02:00
Philipp Wolfer
0d9bc74bc0
More conversion to mbtypes.MBID
2025-04-03 15:19:26 +02:00