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.9.tar.gz (13.6 kB view details)

Uploaded Source

Built Distribution

pod_feeder_v2-1.0.9-py3-none-any.whl (13.4 kB view details)

Uploaded Python 3

File details

Details for the file pod_feeder_v2-1.0.9.tar.gz.

File metadata

  • Download URL: pod_feeder_v2-1.0.9.tar.gz
  • Upload date:
  • Size: 13.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.20

File hashes

Hashes for pod_feeder_v2-1.0.9.tar.gz
Algorithm Hash digest
SHA256 1dbf6cdc0f02b8fc4ca9b6a4831c4410a09a247a240ec461cb104590db12e3af
MD5 9a4b741b48b9ac4b2ce4b796f0889f13
BLAKE2b-256 d4252cb27e24d2376b718d7fba6c56d3849dbf4a2e069c49dd55fa947bcafd7e

See more details on using hashes here.

File details

Details for the file pod_feeder_v2-1.0.9-py3-none-any.whl.

File metadata

File hashes

Hashes for pod_feeder_v2-1.0.9-py3-none-any.whl
Algorithm Hash digest
SHA256 cf0184cf89ddb42f9a88a298986d94bf795a25e084d5ec385dd4d7444f95df3c
MD5 8f58652736cd27d1784f2925f7ba0714
BLAKE2b-256 92b512a0edb005f176de60e7ba5af81cba4c0426a164cbdff0f2bd3729358800

See more details on using hashes here.

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