sfeed

Simple RSS and Atom feed parser
git clone https://git.sinitax.com/codemadness/sfeed
Log | Files | Refs | README | LICENSE | Upstream | sfeed.txt

commit 9fdf2b8606a56318a11074387a5aebc957c47247
parent 2a4bb1df424bf6e5ddddb2db0724934ae3d98f75
Author: Hiltjo Posthuma <hiltjo@codemadness.org>
Date:   Sun, 31 Jan 2016 15:21:34 +0100

README: small improvements and rewordings

Diffstat:
MREADME | 92++++++++++++++++++++++++++++++++++++++++---------------------------------------
1 file changed, 47 insertions(+), 45 deletions(-)

diff --git a/README b/README @@ -1,7 +1,7 @@ sfeed v0.9 ---------- -Simple RSS and Atom parser (and some format programs). +RSS and Atom parser (and some format programs). Build and install @@ -18,18 +18,18 @@ Initial setup: mkdir -p "$HOME/.sfeed/feeds" cp sfeedrc.example "$HOME/.sfeed/sfeedrc" - cp style.css "$HOME/.sfeed/" + cp style.css "$HOME/.sfeed/style.css" -Edit the feeds: +Edit the configuration file containing your feed to update: $EDITOR "$HOME/.sfeed/sfeedrc" -or you you can use sfeed_opml_import to import your existing -subscriptions from OPML format: +or you you can use sfeed_opml_import(1) to import your existing +subscriptions from the OPML format: sfeed_opml_import < file.opml > "$HOME/sfeed/sfeedrc" -Update feeds, this scripts merges and sorts the items aswell: +Update feeds, this script merges and sorts the items aswell: sfeed_update @@ -49,14 +49,14 @@ HTML view with frames and content, copy style.css for a default style: cd "$HOME/.sfeed/frames" && sfeed_frames $HOME/.sfeed/feeds/* To automatically update your feeds periodically and format them in a view you -like you can make a simple wrapper script and add it as a cronjob. +like you can make a wrapper script and add it as a cronjob. -Most protocols are supported because curl is used by default, also possible -proxy settings from the environment ($http_proxy environment variable) are -respected. +Most protocols are supported because curl(1) is used by default, therefore +proxy settings from the environment (such as $http_proxy environment variable) +are used. See the section "Usage and examples" below and the man-pages for more -information how to use sfeed and the additional tools. +information how to use sfeed(1) and the additional tools. Dependencies @@ -69,13 +69,14 @@ Dependencies Optional dependencies --------------------- -- make (for Makefile). -- POSIX shell - used by sfeed_update and sfeed_opml_export. -- curl binary: http://curl.haxx.se/ - used by sfeed_update, can be replaced with any tool like wget, fetch. -- iconv command-line utilities: http://www.gnu.org/software/libiconv/ - used by sfeed_update. If the text in your RSS/Atom feeds are already UTF-8 +- make(1) (for Makefile). +- POSIX sh(1), + used by sfeed_update(1) and sfeed_opml_export(1). +- curl(1) binary: http://curl.haxx.se/ , + used by sfeed_update(1), can be replaced with any tool like wget(1), + OpenBSD ftp(1). +- iconv(1) command-line utilities, + used by sfeed_update(1). If the text in your RSS/Atom feeds are already UTF-8 encoded then you don't need this. For an alternative minimal iconv implementation: http://git.etalabs.net/cgit/noxcuse/tree/src/iconv.c - mandoc for documentation: http://mdocml.bsd.lv/ . @@ -85,48 +86,49 @@ Platforms tested ---------------- - Linux (glibc+gcc, musl-gcc, clang). -- OpenBSD - NetBSD +- OpenBSD - Windows (cygwin gcc, mingw). Files ----- -sfeed - Binary (from sfeed.c); read XML RSS or Atom feed data from - stdin. Write feed data in TAB-separated format to stdout. +sfeed - Read XML RSS or Atom feed data from stdin. Write feed data + in TAB-separated format to stdout. sfeed_frames - Format feed data (TSV) to HTML file(s) with frames. sfeed_html - Format feed data (TSV) to HTML. sfeed_opml_export - Generate an OPML XML file from a sfeedrc config file. sfeed_opml_import - Generate a sfeedrc config file from an OPML XML file. sfeed_mbox - Format feed data (TSV) to mbox. sfeed_plain - Format feed data (TSV) to a plain-text list. -sfeed_update - Shellscript; update feeds and merge with old feeds in the - directory $HOME/.sfeed/feeds by default. +sfeed_update - Update feeds and merge with old feeds in the directory + $HOME/.sfeed/feeds by default. sfeed_web - Find urls to RSS/Atom feed from a webpage. sfeed_xmlenc - Detect character-set encoding from XML stream. sfeedrc.example - Example config file. Can be copied to $HOME/.sfeed/sfeedrc. -style.css - Example stylesheet to use with sfeed_html and sfeed_frames. +style.css - Example stylesheet to use with sfeed_html(1) and + sfeed_frames(1). -Files read at runtime by sfeed_update -------------------------------------- +Files read at runtime by sfeed_update(1) +---------------------------------------- -sfeedrc - Config file. This file is evaluated as a shellscript in sfeed_update. - You can for example override the fetchfeed() function to use wget, - fetch or an other download program or you can override the merge() - function to change the merge logic. The function feeds() is called to - fetch the feeds. The function feed() can safely be executed - concurrently as a background job in your sfeedrc config file to make - updating faster. +sfeedrc - Config file. This file is evaluated as a shellscript in + sfeed_update(1). You can for example override the fetchfeed() + function to use wget(1), OpenBSD ftp(1) an other download program or + you can override the merge() function to change the merge logic. The + function feeds() is called to fetch the feeds. The function feed() + can safely be executed concurrently as a background job in your + sfeedrc(5) config file to make updating faster. -Files written at runtime by sfeed_update ----------------------------------------- +Files written at runtime by sfeed_update(1) +------------------------------------------- feedname - TAB-separated format containing all items per feed. The - sfeed_update script merges new items with this file. -feedname.new - Temporary file used by sfeed_update to merge items. + sfeed_update(1) script merges new items with this file. +feedname.new - Temporary file used by sfeed_update(1) to merge items. TAB-separated format fields @@ -137,9 +139,9 @@ The items are saved in a TSV-like format. The fields: title, id, author are not allowed to have newlines and TABs. All whitespace is replaced by a space character. Control characters are removed. -The content field can contain newlines and is escaped. TABs, newlines and '\' -are escaped with '\', so: '\n', '\t', and '\\'. Other whitespace characters -except space are removed. Control characters are removed. +The content field can contain newlines and TABS and are escaped. TABs, newlines +and '\' are escaped with '\', so: '\n', '\t', and '\\'. Other whitespace +characters except space are removed. Control characters are removed. The timestamp field is converted to a UNIX timestamp. The timestamp is also added as a formatted text field. @@ -204,7 +206,7 @@ View in your editor: - - - -Example script to view feeds with dmenu, opens selected url in $BROWSER: +Example script to view feeds with dmenu(1), opens selected url in $BROWSER: #!/bin/sh url=$(sfeed_plain $HOME/.sfeed/feeds/* | dmenu -l 35 -i | @@ -289,7 +291,7 @@ Now compile and run: - - - Convert mbox to separate maildirs per feed and filter duplicate messages -using fdm: https://github.com/nicm/fdm . +using fdm(1): https://github.com/nicm/fdm . fdm config file (~/.sfeed/fdm.conf): @@ -330,7 +332,7 @@ Now you can view feeds in mutt(1) for example. - - - Convert mbox to separate maildirs per feed and filter duplicate messages -using procmail. +using procmail(1). procmail_maildirs.sh file: @@ -357,9 +359,9 @@ procmail_maildirs.sh file: done wait -Procmailrc file: +Procmailrc(5) file: - # Example for use with sfeed_maildir. + # Example for use with sfeed_mbox(1). # The header X-Feedname is used to split into separate maildirs. It is # assumed this name is sane.