Scans a website's microformats and cross-posts content to 'silo' services.

Project description

SiloRider is a command-line utility that lets you implement the POSSE model on a website. This is how it works:

• It reads your website’s main page (or whatever URL you supply) and looks for Microformats markup.

• It reads a configuration file where you describe which “silos” (i.e. external services) you want to post your content to.

• It reads a local cache file to figure out which content has already been posted where, so it only posts new content.

• It actually posts that content to each silo.

Supported Silos

Right now, the following silos are supported:

• Mastodon: an open, federated social network and microblogging service.

• Twitter: a proprietary social network and microblogging service.

• Print: a debug silo that just prints entries in the console.

Quickstart

SiloRider will need to read a configuration file in INI format. The minimum requirement is to define at least one “silo” using a silo:<name> section:

[silo:my_mastodon]
type: mastodon
url: https://mastodon.social

This defines one Mastodon silo to which you want to post your entries.

You can then run:

silorider auth my_mastodon

This command will authenticate your Mastodon account and provide SiloRider with the permission to post to your timeline. The authorization tokens are stored in a cache file that defaults to silorider.db, next to the configuration file. Later, this cache will also contain the list of entries already posted to each silo.

Once authenticated, you can run:

silorider populate https://yourwebsite

This will populate the cache with the existing entries, since you probably don’t want the first run of SiloRider to cross-post your last dozen or so entries in one go.

Later, when you post something new, you can then run:

silorider process https://yourwebsite

This will pick up the new entries and post them to Mastodon. You can run this command again regularly… if there’s something new, SiloRider will cross-post it to the configured silos. If not, it will just exit.

Project details

Uploaded source
Uploaded py3