generated from Hirad/Template
-
v0.3.0 Stable
released this
2026-10-28 07:49:32 +00:00 | -4 commits to master since this releasesyncfm-core 0.3.0 moves network integration to PyScrobbler and adds artwork synchronization to LoneFM.
Changes:
- Replace the pylast network backend with PyScrobblerNetworkAdapter and require PyScrobbler 0.1.5 or newer, including its singleton recent-history response fix.
- Collect paginated recent history through PyScrobbler while preserving inclusive timestamp boundaries and repeated plays.
- Carry optional artwork URLs from recent tracks through SQLite snapshots, metadata enrichment, queued submissions, and session resume. Prefer medium artwork, falling back to the first nonempty image URL.
- Upgrade the SQLite schema to version 3 without losing existing snapshots or queued work; artwork does not affect duplicate detection.
- Restore the normal terminal before displaying sync, resume, or verification-retry errors, so dashboard failures remain visible.
- Preserve legacy gnufm profile values and GNU.fm session names while using LoneFM naming for new configurations.
- Close command-owned network transports on success and failure, and retain metadata conversion, authentication-error translation, and rejected-submission handling.
Compatibility:
- Python 3.13 or newer is required.
- The former GNUFMNetwork, PyLastMapper, and PyLastNetworkAdapter exports and modules have been removed. Use NetworkFactory and PyScrobblerNetworkAdapter.
- Use NetworkType.LONEFM and --type lonefm instead of NetworkType.GNUFM. Legacy serialized profile values remain readable.
Validation: 50 tests passed using PyScrobbler 0.1.5; strict Pyright, Ruff lint, and Ruff formatting checks passed. Tests cover pagination, network configuration and cleanup, legacy resume compatibility, artwork selection and persistence, schema migration, complete sync/resume flows, and terminal error visibility. No live scrobbles were submitted during validation.
Downloads
-
Source code (ZIP)
1 download
-
Source code (TAR.GZ)
2 downloads