miniflux / v2

Minimalist and opinionated feed reader
https://miniflux.app
Apache License 2.0
6.44k stars 702 forks source link

Mark entry as seen #2706

Open parski opened 5 days ago

parski commented 5 days ago

User Story

As a user I would like to scroll a feed of unseen entries and simultaneously have access to my read history with both of these states synced between my devices.

Problem

Currently clients implement a "scroll to mark as read" feature which lets you scroll a feed filtering out read entries. The problem with this approach is that there is no way to distinguish a seen entry from a read entry. You have to choose between always keeping your feed fresh and maintaining a read history.

Proposal

This could be solved in several ways but I think the best way might be to let clients use the Update Entry endpoint to pass a seen: Boolean member, like so:

PUT /v1/entries/888

{
    "seen": true
}

The seen state should then be reflected on the Entry object, for example on the Get Entry endpoint:

GET /v1/entries/888

{
    "id": 888,
    // . . .
    "url": "http://example.org/article.html",
    "seen": true,
    // . . .
}