Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feeds ids parsing in the Greader API seems inconsistent #2960

Open
kaiyou opened this issue Nov 24, 2024 · 0 comments
Open

Feeds ids parsing in the Greader API seems inconsistent #2960

kaiyou opened this issue Nov 24, 2024 · 0 comments

Comments

@kaiyou
Copy link

kaiyou commented Nov 24, 2024

The Greader API is blurry at best when it comes to feed ids. The best source I could find is: https://github.com/mihaip/google-reader-api/blob/master/wiki/ItemId.wiki

Basically the API supports short decimal ids and long, tag-prefixed, hexadecimal ids. 16 is equivalent to tag:google.com,2005:reader/item/10.

Hence, the fix from https://github.com/miniflux/v2/pull/1517/files looks consistent with the Google API, except for some very specific implementations of the API, which ignored some of the spec. Because Miniflux implements /items/ids and /items/contents, many clients first request /items/ids, which returns short ids, then pass those ids unchanged to /items/contents. Those clients (including Liferea) currently do not work with Miniflux because aforementioned fix was later reverted: 3eb3ac0..

Some clients (e.g. RSSGuard) do convert short ids to long ids and succeed. I wonder which clients did convert to base16 without prefixing, and explain why you reverted your fix. I could not find any reference in an issue or PR.

Currently Miniflux Google Reader API is broken for at least one client (Liferea) that still seems to conform to the historic API. It sounds like the fix belongs in Miniflux, and I suggest we check for user agents or client ids when converting ids to handle any unsupported behavior.

I am ready to provide a PR. Since passing short-base10 or long-base16 are consistent with the API, I would rather make an exception for those that pass short-base16 ids, if you could remember which.

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

No branches or pull requests

1 participant