-- Leo's gemini proxy

-- Connecting to warmedal.se:1965...

-- Connected

-- Sending request

-- Meta line: 20 text/gemini; lang=en

About Antenna

   \ \ @

This is a feed aggregator with a twist. It doesn't have a list of feeds that it repeatedly checks. Instead it takes feed URLs as user input and puts them in a queue. The queue is checked every ten minutes, and an attempt to ingest each feed is made. Once a feed has been ingested it's removed from the queue and thus forgotten.

If you want an Atom, RSS, gemsub, or twtxt feed featured here then call gemini://warmedal.se/~antenna/submit?<percent encoded URL to your feed> each time it's updated! This way Antenna will only fetch feeds that are active. No more useless hammering of dead feed files.

You write a post on your gemlog or your twtxt file.

If it was a gemlog post your atom/RSS/gemsub feed updates.

You call gemini://warmedal.se/~antenna/submit?<percent encoded URL to your feed>

A few minutes later Antenna fetches your feed and lists your entries.


The URL to a twtxt file is submitted the same way as any other feed, but twtxt posts end up on their own page in order to not clutter the gemlog listing.

Here's the gmi page for twtxt posts.

And here's a plain text version, similar to the output from a twtxt registry.

A common convention in the twtxt world is to add metadata in comments (lines beginning with #), such as a description or avatar URL. Antenna recognizes one such data field:

# nick = Your Nickname

This is not by any means mandatory. In its absence the URL to the file will be written twice instead, since it's used for both the nickname field and the URL field. It is the only way to inform Antenna of your preferred nick, however.

Common Errors and Trip-ups

Keep in mind that this service runs on limited hardware, and that my internet connection historically has had a whole lot of issues. And that I'm learning python3 as I go. If a feed you submitted once didn't show up it's likely that Antenna failed to fetch or parse it, and the error checks and recovery I have in place are insufficient.

Some common errors that make Antenna fail include:

Having none of entry author, feed author, or feed title in an Atom feed.

Having no first level heading in a gemsub feed. This is used in lieu of author, and is therefore needed.

Feed not being reachable (of course). Since this could possibly be because this Antenna is having connectivity issues the feed will remain in the queue if this happens.

The URL submitted responds with a different response code than 20, 30 or 31 (redirects - of which Antenna will follow a maximum of three per request).


>"But, ew0k, I don't have control over my publishing flow! I'm on a hosted service, or using a tool I can't modify."

Fear not! As the submission call is always the same, and you don't even need an Atom/RSS feed, you can just follow this superb advice:

>"[...] have an unlisted page on your gemlog that has a link to antenna with the querystring pre-populated" - ~palm93

>"I have this one long page that I update with new microblog entries, and it doesn't follow any of those formats. What do I do?"

Well, let's say you have a page /microblog.gmi then make another (let's say /feed.gmi) with something like this content:

# Your Name
=> microblog.gmi YYYY-MM-DD Microblog

Update the timestamp when you've added something to /microblog.gmi and submit the URL to /feed.gmi to Antenna.

>"The ordering of entries sometimes change a bit randomly."

Yes and no. The page is regenerated whenever it has fetched and parsed a feed, even if it already had all those entries. Gemsub entries only have a date, meaning that all entries fetched from gemsub feeds marked with the same date have no specific order relative to each other. It depends on how SQLite3 gives them back when sorting by timestamp.


Use this service responsibly. I take the liberty to refrain from fetching feeds or display entries from URLs that I or someone I trust have found unsavory, hateful, illegal, harmful, or just gives me really bad vibes. This is a fun passion project for me; I'll keep it up as long as I still find it fun, and I'll try to keep it fun for myself. If you submit a feed and find that it never updates this could be why. Remember that there's a human factor here, and I can't guarantee that I'll be consistent or correct in my judgements.

Reach out to me if you have questions or suspect human errors or bugs in the process!

bjorn.warmedal@gmail.com or ew0k@tilde.team



(You can check the tail of the log if you like)

-- Response ended

-- Page fetched on Wed Jan 26 16:25:28 2022