Skip to content

Add native Miniflux account type and sync support - #5405

Open
dave-atx wants to merge 1 commit into
Ranchero-Software:mainfrom
dave-atx:miniflux
Open

Add native Miniflux account type and sync support#5405
dave-atx wants to merge 1 commit into
Ranchero-Software:mainfrom
dave-atx:miniflux

Conversation

@dave-atx

Copy link
Copy Markdown
Contributor

Closes #4743 and #3593.

Adds Miniflux as a first-class account type alongside Feedbin, Feedly, NewsBlur, and Reader API accounts, on both macOS and iOS. The big benefits for users are:

  • Faster sync times
  • More discoverable for Miniflux users
  • Doesn’t require special configuration of miniflux like the Reader API does
  • Easier (actually, just straight up possible) to develop new features leveraging either side in the future

Refreshes are incremental: the changed_after parameter means read and starred status ride along with the entries in a single pass instead of needing separate status scans. Articles missing locally are backfilled by ID via GET /v1/entries/{id}; a 404 means the entry is gone server-side, so its statuses are deleted and it is not requested again on every refresh. Starred changes go out as idempotent batch updates.

Requires Miniflux 2.0.49 or newer. The server version is detected at runtime via GET /v1/version and persisted in AccountSettings. Servers older than 2.3.2 have no /v1/entries/ids and no batch starred updates, so those paths fall back transparently to paged /v1/entries and per-entry bookmark toggles.

Both HTTP Basic and API-token authentication are supported, selectable in the account sheet on either platform. Entered URLs are normalized (scheme added, trailing slash and /v1 suffix stripped), and adding a second account for a server that already has one is rejected.

Tests cover folder sync, model decoding, version parsing, the pre-2.3.2 fallback paths, and duplicate-endpoint detection, with JSON fixtures for the API responses.

The runtime version detection and the duplicate-endpoint check were informed by IngmarStein's independent Miniflux implementation in #5335.

Adds Miniflux as a first-class account type alongside Feedbin, Feedly,
NewsBlur, and Reader API accounts, on both macOS and iOS.

Refreshes are incremental: the changed_after parameter means read and
starred status ride along with the entries in a single pass instead of
needing separate status scans. Articles missing locally are backfilled by
ID via GET /v1/entries/{id}; a 404 means the entry is gone server-side, so
its statuses are deleted and it is not requested again on every refresh.
Starred changes go out as idempotent batch updates.

Requires Miniflux 2.0.49 or newer. The server version is detected at
runtime via GET /v1/version and persisted in AccountSettings. Servers
older than 2.3.2 have no /v1/entries/ids and no batch starred updates, so
those paths fall back transparently to paged /v1/entries and per-entry
bookmark toggles.

Both HTTP Basic and API-token authentication are supported, selectable in
the account sheet on either platform. Entered URLs are normalized (scheme
added, trailing slash and /v1 suffix stripped), and adding a second
account for a server that already has one is rejected.

Tests cover folder sync, model decoding, version parsing, the pre-2.3.2
fallback paths, and duplicate-endpoint detection, with JSON fixtures for
the API responses.

The runtime version detection and the duplicate-endpoint check were
informed by IngmarStein's independent Miniflux implementation in Ranchero-Software#5335.

Co-Authored-By: Ingmar Stein <490610+IngmarStein@users.noreply.github.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@dave-atx

Copy link
Copy Markdown
Contributor Author

I think the current failing lint check affects all of the CI system... at least the failure doesn't seem to reference any of the files this PR touches.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Feature-Request: Add support for Miniflux API

1 participant