table of contents
SFEED(1) | General Commands Manual | SFEED(1) |
NAME¶
sfeed
— RSS and
Atom parser
SYNOPSIS¶
sfeed |
[baseurl] |
DESCRIPTION¶
sfeed
reads RSS or Atom feed data (XML)
from stdin. It writes the feed data in a TAB-separated format to stdout. If
the baseurl argument is a valid absolute URL then the
relative links or enclosures will be made an absolute URL.
TAB-SEPARATED FORMAT FIELDS¶
The items are output per line in a TAB-separated format.
For the fields title, id and author each whitespace character is replaced by a SPACE character. Control characters are removed.
The content field can contain newlines and these are escaped. TABs, newlines and '\' are escaped with '\', so it becomes: '\t', '\n' and '\\'. Other whitespace characters except spaces are removed. Control characters are removed.
The order and content of the fields are:
- 1. timestamp
- UNIX timestamp in UTC+0, empty if missing or on a parse failure.
- 2. title
- Title text, HTML code in titles is ignored and is treated as plain-text.
- 3. link
- Link
- 4. content
- Content, can have plain-text or HTML code depending on the content-type field.
- 5. content-type
- "html" or "plain" if it has content.
- 6. id
- RSS item GUID or Atom id.
- 7. author
- Item, first author.
- 8. enclosure
- Item, first enclosure.
- 9. category
- Item, categories, multiple values are separated by the '|' character.
EXIT STATUS¶
The sfeed
utility exits 0 on
success, and >0 if an error occurs.
EXAMPLES¶
curl -s 'https://codemadness.org/atom.xml' | sfeed
To convert the character set from a feed that is not UTF-8 encoded the iconv(1) tool can be used:
curl -s 'https://codemadness.org/some_iso-8859-1_feed.xml' | \ iconv -f iso-8859-1 -t utf-8 | \ sfeed
EXAMPLE SETUP¶
1. Create a directory for the sfeedrc configuration and the feeds:
mkdir -p ~/.sfeed/feeds
2. Copy the example sfeedrc(5) configuration:
cp sfeedrc.example ~/.sfeed/sfeedrc $EDITOR ~/.sfeed/sfeedrc
Or import existing OPML subscriptions using sfeed_opml_import(1):
sfeed_opml_import < file.opml > ~/.sfeed/sfeedrc
3. To update feeds and merge the new items with existing items:
sfeed_update
4. Format feeds to a plain-text list:
sfeed_plain ~/.sfeed/feeds/*
Or format feeds to a curses interface:
sfeed_curses ~/.sfeed/feeds/*
There are also other formatting programs included. The README file has more examples.
SEE ALSO¶
sfeed_curses(1), sfeed_opml_import(1), sfeed_plain(1), sfeed_update(1), sfeed(5), sfeedrc(5)
AUTHORS¶
Hiltjo Posthuma <hiltjo@codemadness.org>
CAVEATS¶
If a timezone for the timestamp field is not in the RFC822 or RFC3339 format it is not supported and the timezone is interpreted as UTC+0.
January 7, 2023 | Debian |