comitium
comitium is a Gemini, Gopher, and HTTP feed aggregator that supports Atom, RSS, JSON, and Gemini feeds, as well as tracking page changes, which is output into a simple static Gemini document that you can put anywhere.
Comitium means “gathering” or “assembly” in Latin.
why another aggregator?
There sare many Gemini aggregators out there, and yet not one does everything I want it to. I want an aggregator that:
- Works with Gemini and Gopher (and possibly http)
- Supports Atom, RSS, and Gemini feeds (and possibly JSON feeds)
- Can watch a page for changes
- Simple usage that doesn't get all tangled with my bookmarks (*cough*Lagrange*cough*)
All of the aggregators always have really cool and unique features, and yet all that I've found don't meet one or more of these basic (IMO) criterion. Hence, going and writing my own.
Also, it's nice if it doesn't tie me to a specific browser/service; i.e. trivially self-hostable, ideally as CGI or static pages that can use an existing server setup.
usage
See comitium help for basic usage. For more detailed usage, see
comitium(1).
To get up and running, see the quickstart page.
building
Dependencies:
- go (module-aware)
- scdoc
Then do the standard:
$ make
# make install
A note to packagers (yes, I'm ambitious aren't I?): make sure to build with
make COMMIT=tarball, otherwise there will be an issue when building in a
non–git-repo.
contributing
Send patches and issue reports to [~nytpu/public-inbox@lists.sr.ht][mailto:~nytpu/public-inbox@lists.sr.ht]
license
comitium is Copyright © 2021 nytpu.
comitium is licensed under the terms of the GNU Affero General Public
License, either version 3 of the License, or (at your option) any later
version. For more information, see LICENSE or the GNU website
attributions
comitium took inspiration and small code snippets from:
- Amfora — how to structure saving subscriptions to JSON and refreshing subscriptions with goroutines.
- gemreader — simple Gemini feed parsing.
comitium gratefully makes use of the following libre libraries:
- go-gemini for fetching Gemini resources.
- go-gopher for fetching Gopher resources.
- gofeed for parsing Atom, RSS, and JSON feeds.
- pflag for parsing flags and arguments.
- go-homedir for locating configuration directories.