a feed aggregator for gemini supporting many formats and protocols. By Alex@nytpu.com https://github.com/nytpu
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
nytpu cf20f5877e bump version to 1.8.1 3 months ago
core fix issue with pages still being shown before date 8 months ago
doc document new history functions 8 months ago
fetch fix build: go-gopher migrated to another place 3 months ago
localizations add Italian translation 8 months ago
localizations_src add Italian translation 8 months ago
.gitignore keep localizations in repo 8 months ago
.goreleaser.yml fix goreleaser 8 months ago
LICENSE initial commit 10 months ago
Makefile bump version to 1.8.1 3 months ago
README.md fix build: go-gopher migrated to another place 3 months ago
comitium.go add history flag 8 months ago
flags.go add history flag 8 months ago
go.mod fix build: go-gopher migrated to another place 3 months ago
go.sum fix build: go-gopher migrated to another place 3 months ago

README.md

comitium

comitium is currently looking for translations! See translating.md for info on how to help out!

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.

You can see a running instance in action at gemini://nytpu.com/feed.gmi.

why another aggregator?

There are many Gemini aggregators out there, and yet not one does everything I want it to. I want an aggregator that:

  1. Works with Gemini and Gopher (and possibly http)
  2. Supports Atom, RSS, and Gemini feeds (and possibly JSON feeds)
  3. Can watch a page for changes
  4. Simple and easy setup & usage

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 rather than needing vhosting and routes.

usage

See comitium help for basic usage. For more detailed usage, see comitium(1).

To get up and running, see the quickstart/tutorial page.

building & installing

downloading binaries

You can download prebuilt binaries here

building

Dependencies:

  • go (module-aware)
  • scdoc

Then do the standard:

$ git clone git://git.nytpu.com/comitium # you could also download a tarball
$ cd comitium
$ 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 or alex@nytpu.com

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.

license

comitium is Copyright © 2021 nytpu.

comitium is licensed under the terms of the GNU Affero General Public License, version 3. For more information, see LICENSE or the GNU website

pssst! what does comitium even mean?

Comitium means “gathering” or “assembly” in Latin. comitium gathers together stuff from all protocols into one centralized place. Blah blah blah, you get the picture.