Idiomdrottning’s homepage

Schapcom

Schapcom is a feed aggregator for Gemini similar to CAPCOM.

Schapcom is written in Chicken Scheme using a ton of libraries so it’s not lightweight in that regard. It’s just a quick fix to get something to work.

Schapcom uses a three-tiered model of Feeds→Curators→Aggregated Feeds.

Feeds

Schapcom is compatible with both Gemfeed and Gmisub feed formats.

Feeds are Atom feeds (a la Gemfeed) or gmisub feeds.

Curators

Curators set up lists of URLs of such feeds that they wanna follow. Each list of URLs should be in a text file, one url per line, no other lines, no comments no header no nothing.

The list of URLs can be on gemini or on http / https, to minimize the amount of work that curators need to do. They only need to be able to host a text file, anywhere.

The same goes for the feed, and for the entries within those feeds. Schapcom can handle http / https just as easily as gemini, but the output is in gemini text format.

Aggregators

Each Schapcom instance is then pointed to a list of such lists. It writes a gmi file (similar to CAPCOM’s output format) and then terminates. It shows duplicates-deleted union of entries so it’s fine if a feed is accidentally entered twice, or entered in multiple formats, or if an entry shows up several times or in several feeds.

So the intent is that a curator’s list of follows can be read and used by several Schapcom instances.

Finding cool feeds to follow is hard work, so leveraging each other’s work around that is the idea.

Run from cron or manually.

schapcom [curator-url1]  [curator-url2]  [curator-url3] > feeds.gmi

For a repo, git clone https://idiomdrottning.org/schapcom

History

I forgot that I read about Shannon a long time ago and obviously that’s got to be where I got the idea. I even wrote about it myself, but then I forgot about it but I now, a few days after releasing Schapcom, realize that the lineage is pretty clear.