I just implemented part of the Feedbin API in my Microsub server. It seems that in the future it will be quite easy to add all kinds of backends and maybe even set them per channel or similar.
Yesterday I made an improvement to support paging with ZADD and ZRANGEBYSCORE. This allows me to get range of entries based in the timestamp of the published date (converted to Unix timestamp). The problem is that the unread entries are still available in the list. It's hard to find the first unread entry in the list. That entry is the starting point of the list of entries for the first page of items.
I implemented the solution like this: keep two lists. One with all unread items and one with the read items. In principle an entry moves from one list to the other in a linear fashion, because that's the reading order. So now when there is no after or before argument the server can send the first twenty items of the list. The first and last item contain the next before and after values. Nice thing is that I now get unread count for free with ZCARD.
- search is pretty strange to implement, it now only supports full urls.
- it does support automatic fetching of feeds
- it doesn't have caching support of items. It always fetches the full page
- no support for smart or automatic feed downloading, no WebSub. It should in the future
- mute and block are not implemented