• 0.1.0 f5224bf8ad

    0.1.0 Stable

    Hirad released this 2026-08-14 06:42:20 +00:00 | 2 commits to master since this release

    syncfm-core 0.1.0

    The first release of syncfm-core provides a reusable Python synchronization engine and a command-line interface for copying missing scrobbles between Last.fm, Libre.fm, and GNU.fm-compatible networks.

    Highlights

    • Synchronize missing scrobbles between reusable source and target network profiles, with optional Unix timestamp bounds.
    • Resume, inspect, or discard interrupted synchronization sessions.
    • Store durable synchronization state, snapshots, and queues in SQLite for recovery after failures.
    • Enrich scrobbles with metadata before submission and retry recoverable network operations.
    • Manage network profiles through the CLI, with secrets stored in the system keyring or configuration file.
    • Connect through HTTP, HTTPS, and SOCKS proxies configured per profile.
    • Follow synchronization activity through an interactive Rich dashboard, with a plain-text fallback for non-interactive terminals.
    • Embed the typed Python application layer independently of the CLI.

    CLI

    The syncfm command includes:

    • syncfm profile add|list|show|remove
    • syncfm sync --source <profile> --target <profile> [--start <timestamp>] [--end <timestamp>]
    • syncfm status
    • syncfm resume
    • syncfm discard

    Run syncfm --help or syncfm <command> --help for complete usage information.

    Requirements

    • Python 3.12 or newer
    • Credentials for each network being synchronized
    • A supported system keyring when keyring-backed credential storage is selected

    Notes

    This is the initial release. Synchronization is directional: scrobbles present on the source but missing from the target are submitted to the target. Review the selected source, target, and timestamp range before starting a sync.

    Full history: https://git.hirad.it/Hirad/syncfm-core/commits/tag/0.1.0

    Downloads