Skip to main content

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>

Metadata

Release files for pod-feeder-v2 1.0.9

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pod-feeder-v2 1.0.9
File Size Uploaded Provenance Actions
pod_feeder_v2-1.0.9.tar.gz 13.6 kB Without provenance Details for pod_feeder_v2-1.0.9.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for pod-feeder-v2 1.0.9
File Interpreter ABI Platform Actions
pod_feeder_v2-1.0.9-py3-none-any.whl Python 3 none any Details for pod_feeder_v2-1.0.9-py3-none-any.whl

Total release size: 27.1 kB

Release files / pod_feeder_v2-1.0.9.tar.gz

Download URL pod_feeder_v2-1.0.9.tar.gz
Size 13.6 kB
Tags Source
SHA-256 checksum
How to use checksums
1dbf6cdc0f02b8fc4ca9b6a4831c4410a09a247a240ec461cb104590db12e3af
BLAKE2b-256 checksum
How to use checksums
d4252cb27e24d2376b718d7fba6c56d3849dbf4a2e069c49dd55fa947bcafd7e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.20

Release files / pod_feeder_v2-1.0.9-py3-none-any.whl

Download URL pod_feeder_v2-1.0.9-py3-none-any.whl
Size 13.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
cf0184cf89ddb42f9a88a298986d94bf795a25e084d5ec385dd4d7444f95df3c
BLAKE2b-256 checksum
How to use checksums
92b512a0edb005f176de60e7ba5af81cba4c0426a164cbdff0f2bd3729358800
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.20

Security for pod-feeder-v2 1.0.9

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page