aboutsummaryrefslogtreecommitdiff
BranchCommit messageAuthorAge
mainrss-bundler 0.2.0trimill4 months
 
 
AgeCommit messageAuthorFilesLines
2025-10-24rss-bundler 0.2.0HEADmaintrimill12-1117/+499
2022-11-29clippyTriMill4-8/+8
2022-11-29added hooksTriMill9-94/+139
2022-07-04Added LICENSE and READMETriMill2-0/+725
2022-07-03forgot to delete slashesTriMill1-2/+2
2022-07-03fix to allow for reverse proxyingTriMill1-1/+2
2022-07-03Initial commitTriMill8-0/+1426
 
Clone
https://g.trimill.xyz/rss-bundler

RSS Bundler

RSS Bundler is a Rust program that allows you to combine multiple RSS feeds into one.

Running

The binary takes only one argument: a path to the config file. The resulting feed is located at ./site/rss.xml, and the status page at ./site/status

Config

The config file is written in JSON. The following fields are required:

Field Description
title The feed's title
link A link to the feed's website
sources A list of sources. Each source must have a name field containing the source's name and a rss field with a link to an RSS feed.

The following fields are optional:

Field Description Default value
description The feed's description Empty
default_title Title to use for posts that do not have a title field <untitled>
status_page Generate the status page (see below) true
hook Path to hook to run upon receiving new blog posts ./hook.sh

Here is an example configuration:

{
    "title": "Example bundle",
    "description": "Demonstration of RSS Bundler",
    "link": "https://g.trimill.xyz/rss-bundler",
    "sources": [
        { "name": "trimill", "rss": "https://trimill.xyz/blog/rss.xml" }
    ]
}

Hook

Every time a new post is loaded, the hook program (if specified) will be executed. This is based on GUIDs, so feeds that do not fill the guid field will not trigger hooks. The following environment variables will be set: - TITLE - the original title of the post - TITLE_FMT - the formatted title of the post - AUTHOR - the post's author - LINK - the link to the post - GUID - the post's GUID - PUB_DATE - the post's publishing date

Status page

RSS Bundler also generates a status page, available at /site/status. This page shows the last date a feed was fetched and parsed successfully and, if the last try was erroneous, the error that occured. If an error occurs while fetching or parsing a feed, the last good version will be used instead.