Ekster now contains a new feature. The backend now supports two types of Redis based timeline backends. The default is still the timeline based on sorted sets. The new type is based on streams. The notification channel will now use this new stream type. Not many entries are posted to this channel, but I will use it for more things in the future.

The last few days, I made improvements to Ekster. I simplified the conversion from MF2 to JF2. The first version of this code was ad-hoc, because I didn't understand what I could expect from the MF2 library. Now that I know what the inputs look like, I have written a better converter. The code now converts directly from microformat.Microformat to jf2.Item with less layers of map[string][]interface{} in between. At the same time I added logging that shows the properties that were used, but weren't accepted by this new code.

The implied name improvements in the microformats2 parser by @willnorris helps quite a bit in showing nice entries in Ekster. The name is shown as the title, but sometimes included the whole html of the entry.

I have added the -verbose flag to ek. This makes it possible to see the HTTP requests that are sent to the Microsub server and the responses that are returned. It can be a tool when creating your own Microsub server of client.

I thought I didn't port mark unread in Ekster to the Redis backend. But it seems it's not spec-ed and I did not implement it.
I started with using "refs" in the microsub items. When it's available in the original feed, Ekster will try to add it to the refs array.
Today I improved the flow when logging in from micropub clients to Ekster. Now you continue with the Indieauth when you aren't logged in. Also now the app name and logo are shown when you login with a Micropub client.
I justed re-added filtering as a setting in Ekster. This allows for easy mentions from all feeds, because it will match all incoming items with a regexes and add the matching items.
Blocking items also works (but it's channel only)
Ekster now supports actual Indieauth to the Microsub channels. It's now possible for example to connect with indiepaper.io and "archive" pages to a channel. But of course the possibilities are endless.
Perhaps it's possible with some kind of introspection to copy fields from a microformats.Data object to a normal struct, just like how "encoding/json" works. You could create your own structs and copy those fields from the MF2 into your own data model.

Peter Stuifzand created a new issue for pstuifzand/ekster

Add set and hash of feeds to Redis to improve subscriptions

The subscriptions of the feeds, are kept in keys named "feed:<id>", but these are difficult to reference at the moment. There should be a set of "feed:<id>" items and a hash of urls to "feed:<id>". That way I can deduplicate feeds and make it easier to resubscribe.

Peter Stuifzand replied to pstuifzand/ekster issue #1

Resubscription was added, now I need to find some feeds with WebSub and see if those work.

Peter Stuifzand created a new issue for pstuifzand/ekster

Add tracking to channels (include from all)

In the original version I had a filter that added all items matching a regex to a channel. In the settings page there should be a place to add keywords to a channel (even if it has no feeds) and gather all items matching those keywords (or perhaps) regex.

Peter Stuifzand created a new issue for pstuifzand/ekster

Add filtering to feeds (exclude)

Should be able to add keywords to a channel, that will be filtered on. If an entry contains the keyword, it won't be added to the channel.
Using time.Time will by default not result in a nice serialization in Redis. Now I use unix time as int64, which is much easier to work with.
I did some updates on the WebSub part of my Microsub server Ekster. It now tries to subscribe to feeds and send resubscribes. Before it already received incoming posts.

I just made a change to Ekster that allows it to receive Micropub requests from Indiepaper. In a way this already worked, but only with source_id and JF2 request bodies. This change allows the auth token to be in the Authorization header and JSON micropub requests.

I really like the oldest-first ordering of posts of Ekster (my microsub server), but it means that when you have read everything, that I doesn't show the old posts anymore.
It always starts with showing the oldest unread post. I would like to have a way to show the older posts. This could be done with "before" in timelines, but it doesn't seem to be implemented in Monocle for example.

Peter Stuifzand replied to a post on publog.stuifzandapp.com

I love how easy Go makes using these interfaces. The server implements it (as a file and Redis backend) and client calls it (instructed from the command line). Even the HTTP part calls the server backend through this interface.

Load more