fead
This is a tool for advertising other blogs you like on your own by embedding the summary of their latest post(s) extracted from their web feed. It is a rewrite of openring with (rejected) concurrency support in Python without any third-party library.
Installation
On POSIX systems, run the usual make install
with configurable PREFIX
.
The following programs are needed for building and installation:
- make
- help2man
- install
Python 3.11+ is also required, both for generating the manual and at runtime.
On other systems, a package installer specific for Python might be preferred.
Usage
$ fead --help
Usage: fead [OPTION]...
Generate adverts from web feeds.
Options:
-h, --help show this help message and exit
-v, --version show program's version number and exit
-F PATH, --feeds PATH
file containing newline-separated web feed URLs
-f URL, --feed URL addtional web feed URL (multiple use)
-s, --strict abort when fail to fetch or parse a web feed
-n N, --count N maximum number of ads in total (default to 3)
-p N, --per-feed N maximum number of ads per feed (default to 1)
-l N, --length N maximum summary length (default to 256)
-t PATH, --template PATH
template file (default to stdin)
-o PATH, --output PATH
output file (default to stdout)
Any use of -f before -F is ignored.
Template
The template is used by Python str.format
to generate each advert.
It can contain the following fields, delimited by braces ({
and }
).
source_title
: title of the web feedsource_link
: URL to the feed's websitetitle
: title of the feed itemlink
: URL to the itemtime
: publication timesummary
: truncated content or description
The publication time is a Python datetime.datetime
object,
which supports at least C89 format codes, e.g. {time:%Y-%m-%d}
.
Examples
Given the these URLs in a feeds
file:
https://adol.pw/index.xml
https://cnx.gdn/feed.xml
https://xrvs.net/index.xml
Advertisement of the two latest blogs among them, along with articles by Drew DeVault, can be generated via the following command.
echo "<article>
<h3><a href='{link}'>{title}</a></h3>
{summary}—<a href='{source_link}'>{source_title}</a>, {time:%F}
</article>" | fead -F feeds -f https://drewdevault.com/blog/index.xml -n 2
Contributing
Patches should be sent to ~cnx/misc@lists.sr.ht using git send-email with the following configurations:
git config sendemail.to '~cnx/misc@lists.sr.ht'
git config format.subjectPrefix 'PATCH fead'
Bug reports and feedbacks should be sent to the same list, with the program's name mention in the subject.
Copying
This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.