112 lines
3.2 KiB
Plaintext
112 lines
3.2 KiB
Plaintext
MinRSS
|
|
======
|
|
MinRSS is an RSS/Atom feed reader for Linux inspired by suckless.org's IRC
|
|
clients ii and sic. Instead of presenting articles as entries in a menu, it
|
|
saves them as files in folders.
|
|
|
|
These files can either be formatted as HTML, or as JSON to help with scripting.
|
|
|
|
rss
|
|
|--news
|
|
| |--article1
|
|
| `--article2
|
|
`--blog
|
|
|--post
|
|
`--other_post
|
|
|
|
Requirements
|
|
------------
|
|
You need libcurl and libxml2 to compile MinRSS.
|
|
|
|
json-c is required for JSON output. To disable this feature, comment out the
|
|
relevant lines in Makefile.
|
|
|
|
Installation
|
|
------------
|
|
Run this command to build MinRSS:
|
|
|
|
make clean install
|
|
|
|
This will install the binary to ~/.local/bin. Make sure that this directory is
|
|
in your $PATH.
|
|
|
|
If you need to change this, set the PREFIX variable in Makefile.
|
|
|
|
Configuration
|
|
-------------
|
|
MinRSS is configured via the config.h file, which you can create by
|
|
either compiling MinRSS for the first time or copying config.def.h
|
|
to it. To save your changes, recompile MinRSS.
|
|
|
|
You are required to input a list of URLs in config.h before compilation
|
|
in order to successfully run MinRSS.
|
|
|
|
|
|
static const linkStruct links[] = {
|
|
{
|
|
.url = "https://example.com/rss/",
|
|
.feedName = "example-feed",
|
|
},
|
|
};
|
|
|
|
|
|
Manual usage
|
|
------------
|
|
If you compile with OUTPUT_HTML (as is default), you can read feeds with just
|
|
the 'minrss' binary, basic shell utilities and (preferably) a browser of any
|
|
kind.
|
|
|
|
Make a directory to store your RSS feeds, then cd into it. Then, run the minrss
|
|
binary to download all articles.
|
|
|
|
Each configured feed will now appear as a folder, and articles as HTML files
|
|
within them. You can open the files in a browser to see the summary text, and
|
|
also follow the link to see the full article.
|
|
|
|
To see which files are new, use 'ls -t' or compile with SUMMARY_FILES.
|
|
|
|
It is important to note that MinRSS does not download the full text of each
|
|
article, but only the summary. If you wish to archive the full text for offline
|
|
reading, consider writing a script for it.
|
|
|
|
Wrapper scripts
|
|
---------------
|
|
The wrapper script contrib/mrss.sh is provided with MinRSS as an example.
|
|
|
|
To install it, run the following:
|
|
|
|
cp contrib/mrss.sh ~/.local/bin/mrss
|
|
chmod 755 ~/.local/bin/mrss
|
|
|
|
The script requires compiling with configuration options OUTPUT_JSON and
|
|
SUMMARY_FILES, as well as having jq and xdg-open installed.
|
|
|
|
By default, mrss sets up a directory at ~/rss/ to store all feeds. To change
|
|
this, set MRSS_DIR.
|
|
|
|
'mrss update' will check feeds for new articles and download them. Symlinks to
|
|
new articles are also stored in ~/rss/new/.
|
|
|
|
'mrss select' shows a CLI to view each file's content. It can either open the
|
|
file, mark it as read or queue it for later.
|
|
|
|
'mrss read' can be used on article files to open them in a browser or mpv,
|
|
directly from the shell.
|
|
|
|
Run 'mrss --help' for information about other subcommands.
|
|
|
|
Compatibility
|
|
-------------
|
|
This program is designed to work on Linux, but it should be possible
|
|
to make it run on other operating systems. If you can do that
|
|
successfully, please contact me about it.
|
|
|
|
Note that if you use MinRSS on different systems, it will be possible for
|
|
attackers to write malicious filenames, so you should rewrite sanitize()
|
|
accordingly.
|
|
|
|
Contributing
|
|
------------
|
|
MinRSS is compliant to the C99 standard: please ensure your changes also
|
|
comply.
|