Rsstail

Rsstail is a command-line syndication feed monitor with behaviour similar to tail -f. Rsstail (Python/feedparser) is inspired by rsstail (C/libmrss), but provides more customizable output formatting and additional features.

Usage

$ rsstail --help
Usage: rsstail [options] <url> [<url> ...]

General Options:
-v --verbose            increase verbosity
-V --version            show version and exit
-h --help               show this help message and exit
-x --help-format        show formatting help and exit

Feed Options:
-i --interval <arg>     poll every <arg> seconds
-e --iterations <arg>   poll <arg> times and quit
-n --initial <arg>      initially show <arg> items
-w --newer <arg>        show items newer than <arg>
-b --bytes <arg>        show only <arg> description/comment bytes
-r --reverse            show in reverse order
-s --striphtml          strip html tags
-o --nofail             do not exit on error

Format Options:
-t --timestamp          show timestamp
-l --title              show title
-u --url                show url
-d --desc               show description
-p --pubdate            show publication date
-a --author             show author
-c --comments           show comments
-g --no-heading         do not show headings
-m --time-format <arg>  date/time format
-f --format <arg>       output format (overrides other format options)

Examples:
rsstail --timestamp --pubdate --title --author <url1> <url2> <url3>
rsstail --reverse --title <url> <username:password@url>
rsstail --interval 60|60s|5m|1h --newer "2011/12/20 23:50:12" <url>
rsstail --format '%(timestamp)-30s %(title)s %(author)s\n' <url>
rsstail --format '{timestamp:<30} {title} {author}\n' <url>
$ rsstail --help-format
Format specifiers must take one the following forms:
    %(placeholder)[flags]s
    {placeholder:flags}

Examples:
    --format '%(timestamp)s %(pubdate)-30s %(author)s\n'
    --format '%(title)s was written by %(author)s on %(pubdate)s\n'
    --format '{timestamp:<20} {pubdate:^30} {author:>30}\n'

Time format takes standard 'sprftime' specifiers:
    --time-format '%Y/%m/%d %H:%M:%S'
    --time-format 'Day of the year: %j Month: %b'

Useful flags in this context are:
    %(placeholder)-10s - left align and pad
    %(placeholder)10s  - right align and pad
    {placeholder:<10}  - left align and pad
    {placeholder:>10}  - right align and pad
    {placeholder:^10}  - center align and pad

Available placeholders:
id
link
desc
title
author
updated
pubdate
expired
created
comments
timestamp

Please note that {placeholder:flags} style placeholders are available only with Python >= 2.7.

Installing

The latest stable version of rsstail can be installed from pypi:

$ pip install rsstail

Or simply put the standalone rsstail script in your $PATH and make it executable:

https://github.com/gvalkov/rsstail.py/raw/master/rsstail.pyz

Colorizing output

Rsstail’s’ output can be piped to one of the many console colorizers. Consider using one of the following tools: clide, multitail, ccze, colorize, colorex or colout.

Example with clide:

$ rsstail <options> \
| clide -e '/(Title|Pubdate|Author|Link|Description):/g,fg=yellow,bold' \
        -e '/^.*FAILURE.*$/,fg=red,bold \

Example with multitail:

# add to /etc/multitail.conf
colorscheme:rsstail.py:console syndication feed monitor
cs_re:red,,bold:^.*FAILURE.*$
cs_re:cyan:(:|/)
cs_re:yellow:^.......... ..:..:..
cs_re:green:(Title|Author|Link|Pubdate):

$ multitail -cS "rsstail.py" -l "rsstail <options>"

These two examples are barely touching the surface of what clide and multitail can do. Refer to the documentation of these excellent projects for more information.

Shell completion

Rsstail comes with shell completion scripts for bash and zsh.

If you are installing system-wide, the setup script will attempt to place these files in the right place.

Similar projects

License

Rsstail is released under the terms of the Revised BSD License.