Skip to main content

A utility to publish RSS/Atom feeds to Diaspora*

Project description

pod_feeder_v2

Publishes RSS/Atom feeds to Diaspora*

This is a lightweight, customizable "bot" script to harvest RSS/Atom feeds and re-publish them to the Diaspora social network. It is posted here without warranty, for public use.

v2 is a complete re-write of the original pod_feeder script which was written (poorly) in perl and is no longer supported. Migrating to this version is recommended.

Installation

pod_feeder_v2 requires python3. You can easily install the dependencies with pip:

System-wide

sudo pip3 install pod-feeder-v2

Individual user

pip3 install --user pod-feeder-v2

When installing as a non-privilegd user, make sure you have ~/.local/bin in your $PATH

Migrating from pod_feeder "classic"

  1. pod_feeder_v2's database schema is backward-compatible with the original, so you can point the script at your existing feed.db file (or whatever yours is called).

  2. The --title-tags and --url-tags arguments have not been carried forward because in practice they generally create lots of spurious tags, and the 'stop words' feature is difficult to implement. --user-agent is not currently implemented because the feedparser library does not support it.

  3. Several new options, --summary, --debug, and --quiet have been added.

Usage

This script is intended to be run as a cron job, which might look something like this:

@hourly pod-feeder --feed-id myfeed --feed-url http://example.com/feeds/rss --pod-url https://diaspora.example.com --username user --password ******** --quiet

There is also a database cleaner script that you can run as often as you like to keep your database size under control:

@weekly pf-clean-db feed.db > /dev/null 2>&1

usage: pod-feeder [-h] [--aspect-id ASPECT_ID] [--auto-tag AUTO_TAG]
                  [--category-tags] [--database DATABASE] [--embed-image]
                  --feed-id FEED_ID --feed-url FEED_URL
                  [--ignore-tag IGNORE_TAG] [--limit LIMIT] [--no-branding]
                  --pod-url POD_URL [--post-raw-link] [--timeout TIMEOUT]
                  [--username USERNAME] [--via VIA] [--summary | --full]
                  (--password PASSWORD | --fetch-only) [--debug | --quiet]

optional arguments:
  -h, --help            show this help message and exit
  --aspect-id ASPECT_ID
                        Numerical aspect ID to share with. May be specified
                        multiple times (default: 'public')
  --auto-tag AUTO_TAG   Hashtags to add to all posts. May be specified
                        multiple times
  --category-tags       Automatically hashtagify RSS item 'categories' if any
  --database DATABASE   The file to store feed data (default: 'feed.db')
  --embed-image         Embed an image in the post if a link exists
  --feed-id FEED_ID     An arbitrary label for this feed
  --feed-url FEED_URL   The feed URL
  --ignore-tag IGNORE_TAG
                        Hashtag to filter out. May be specified multiple times
  --limit LIMIT         Only post n items per script run, to prevent post-
                        spamming
  --no-branding         Do not include 'via pod_feeder_v2' footer to posts
  --pod-url POD_URL     The pod URL
  --post-raw-link       Post the raw link instead of hyperlinking the article
                        title
  --timeout TIMEOUT     How many hours to keep re-trying failed posts (default
                        72)
  --username USERNAME   The D* login username
  --via VIA             Sets the 'posted via' footer text (default:
                        'pod_feeder_v2')
  --summary             Post the summary text of the feed item
  --full, --body        Post the full text of the feed item
  --password PASSWORD   The D* user password
  --fetch-only          Don't publish to Diaspora, queue the new feed items
                        for later
  --debug               Show debugging output
  --quiet               Suppress normal output

A Note on YouTube Feeds

It is possible to publish a YouTube channel's feed, by using the following URL format:

https://www.youtube.com/feeds/videos.xml?channel_id=<channel id>

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pod-feeder-v2-1.0.0.tar.gz (8.1 kB view hashes)

Uploaded Source

Built Distribution

pod_feeder_v2-1.0.0-py3-none-any.whl (9.5 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page