Newsbeuter

Latest change: Mon Mar 09 03:24:59 CET 2009

feedback: newsbeuter at guckes dot net

Description

Newsbeuter is an RSS feed reader for the text console. Newsbeuter's look should be pretty familiar to users of the mailer 'mutt' and the newsreader 'slrn'.

Newsbeuter supports OPML import/exports, HTML rendering, podcasts (via podbeuter), offline reading, searching and storing articles to your filesystem, and much more. All commands in the interface can be changed by key binding which allows to assign every internal function to any key or even key sequence.


Signature

here is a quick summary which can be used as a signature in mail or news messages:
NEWSBEUTER - "the mutt of feed readers".
RSS/Atom feed reader for terminals.
newsbeuter 1.4 [2009-02-08]
newsbeuter 1.3 [2008-12-06]
Home:   http://www.newsbeuter.org/
Blog:   http://newsbeuter.wordpress.com/ ;-)
Docs:   http://www.newsbeuter.org/doc/newsbeuter.html
Group:  http://groups.google.com/group/newsbeuter
BTS:    http://code.google.com/p/newsbeuter/issues/list
Intro:  http://wiki.ubuntuusers.de/newsbeuter (in German)
Maintainer: Andreas Krennmaier ak(at)newsbeuter(dot)org
Dependencies: curl ruby sqlite3

BUGs

BUG:  Article Index: HOME+END do not move the cursor at all.  -> STFL
BUG:  Article Index: PgDn+PgUp move to the first item after the current page -
      but with PgDn the current item is always at the bottom of the page. -> STFL
BUG:  The "Tab" key can't be bound due to technical limitations of STFL.  :-(
BUG:  CommandLine: a DEL deletes backwards (like BackSpace should)
      while a BackSpace does not delete anything at all.
      AK says it's a problem with Gnu screen. :-/
BUG:  When you update the current internals by ":source ~/.newsbeuter/config"
      then the  news keybindings (bind-key) are not loaded... hmm..
      (should be fixed now... see next upgrade)

Misc Improvements

Q+A input:
Abort input with CTRL-G.
Delete previous char with CTRL-H.
Delete previous word with CTRL-W.
Delete complete line with CTRL-U.
Delete rest  of line with CTRL-K.

When user issues CTRL-C - ask user
for confirmation on aborting program:
"Abort Newsbeuter? (y/N)"

add commands to place the current item:
H   high    first  line
M   middle  middle line
L   low     last   lime

change sorting to include reversing of the current sort order:
Sort [(r)everse] by (d)ate/(t)itle/(f)lags/(a)uthor/(l)ink/(g)uid?

allow binding of TAB, eg to "next-unread".

Wishes

Color

Display: Predefined Color Sets
:color set -> source ~/.newsbeuter/set
like the :colorscheme command in vim
it enables you to load a color set
which changes most colors.
a default one with no colors at all,
one for a dark background - and
one for a light background.
this is also nice to show the
color capabilities of the program.

Color Attributes:
Q: what are the attributes "invis" and "protect"?

CommandLine

Add tab expansion for option names and option values.
example:
:set foo[TAB]=[TAB]
this expands to:
:set foobar-format="%a %b %c ... %z"

Display of Articles

Display: Split view for article+index.
This shows both the article and a part of the index
to give a context for the articles around the current one.

Help Line: condense the command words. allows to add "view:":
"q:Quit ENTER:Open s:Save n:Next Unread o:Open in Browser e:Enqueue ?:Help 73 %"
"q:Quit ENTER:Open s:Save n:NextUnread o:OpenInBrowser e:Enqueue ?:Help view:73%"

Display Help

sort commands by function,
eg group all jump commands
(those which move the cursor).

also show the generic keybindings and
the unbound commands/functions.

also groups these with the output
of the :dumpconfig command.

Show all currently active color definitions.

Display of Menus

show the menu name at the title, so the context is clear -
especially with screen shots.  this makes
bug reports and problem descriptions easier, too.
(index menu, article view,..)

Installation - "make"

let the Makefile produce errors for missing libraries
and give sample URLs for a possible download.

example:
ERROR4711:  could not find the library "libxml2".
Suggestion: point at an installed version of it
            using the parameter XYZ - or download the archive
            file from the following page and install it:
HomePage:   http://xmlsoft.org/
Download:   ftp://xmlsoft.org/libxml2/LATEST_LIBXML2

Logo

add a newsbeuter logo (SVG!), a newsbeuter twitter feed, and a facebook group.

Packages

System          First   Last        Nick        URL
Archlinux:      Sven    Pfleiderer  pfleidi     http://aur.archlinux.org/packages.php?ID=9551
Debian:         Nico    Golde       nion        http://packages.debian.org/newsbeuter
Gentoo:         Thomas  Anderson    gentoofan23 http://packages.gentoo.org/package/net-news/newsbeuter
FreeBSD:        Tilmann Linneweh    arved       http://www.freebsd.org/cgi/ports.cgi?query=newsbeuter&stype=all
Slackware:      ---     ---         slakmagik   http://slackbuilds.org/repository/12.2/network/newsbeuter/  jsun@freeshell.org

NetBSD:         (not possible due to incompatibility of iconv)
OpenSolaris:    any takers?
OpenBSD:        any takers?
RedHat:         any takers?
SuSE:           any takers?
Fink/Macports:  any takers?

Session File

save on exit of command line and search histories (DONE: 1.4)

Setup File

WISH: Drop the dash within the "bind-key" command.
      A transition can be done using aliases, of course.
      so - there's another reason for creating the
      possibility for aliases.

Sorting

WISH: Add sorting by time (of latest feed update).
WISH: Add sorting by name (of feed).
WISH: Add sorting by url  (of feed).
WISH: Add sorting by 
WISH: Add sorting by reverse.

Startup Options

WISH: long options "--help" and "--version"
        (when you run out of single letters options, that is)
WISH: use option "-v" for version output
        (and not to clean up the cache)
    [version output changed to "-vv"]

Top Line

---------------------------------------------------------------------------
newsbeuter 1.4 - Articles in feed 'newthinking' (16 unread, 16 total) - http://store.newthinking.de/t
---------------------------------------------------------------------------
this is too verbose.

shorter header line, eg shorten Newsbeuter to "NB",
and the number of unread and total articles to "(u/t)":
---------------------------------------------------------------------------
NB1.4 "newthinking" (16/16) http://store.newthinking.de/t...
---------------------------------------------------------------------------
and generally: make the header and footer line configurable.
this needs to go into the documentation:
DONE: New command ":dumpconfig" to create a setup file with current config.
DONE: CommandLine: Reset option to its default value. (vim: "set opt&")

Questions

Q: Article View: How do you change the date to "YYYY-MM-DD"?
Q: Article Index:
   The default order seems to be "latest news first".
   How can you change the order to "olderst first"?
Q: Article View: How do i bind 'i' (think: "index") to "quit" in reading mode?
Q: Article View: How do i bind ' ' (space) to "open" in the index?

why does each link end with "(link)"?  isnt that redundant?
  Links:
  [1]: http://www.re-publica.de/09/prepublica/ (link)
  [2]: http://www.newthinking-store.de/Veranstaltung (link)
  [3]: http://www.newthinking-store.de/files/factsheet_newthinking_store.pdf (link)
  [4]: http://www.newthinking-store.de/workshop/zope/20090319 (link)
  [5]: http://www.newthinking-store.de/Veranstaltung/ (link)
  [6]: http://www.sugarcrm.com/crm/products/new-in-sugar.html (link)
  [7]: mailto:info@newthinking.de (link)

DONE

Wishes which have become coded:

Combination

combination with other programs:
combine newsbeuter with screen and xterm
by sending an escape sequence to
change screen's/xterm's window title.

DONE: notification fo xterm already exists.

Command Line

Add a command line for changing current values - and more!
(no texttool is complete without it! ;)
DONE!

Display Article

add color: coloring requires changes in STFL.

Filter

ignore/killfile:
allow some way to ignore some feeds (esp on planets).
DONE: ignore-article

Flags

a flag categorizes message in another way.
a flag should be as simple as a letter, ie
a-z and A-Z, allowing for 52 categories.
flags should also be selectable as a pattern.
"~f a  ~f b  ! ~f x ! ~f z".
additonal points for allowing a
shorter syntax of "~f ab!xz ".

Help

no indentation necessary.
add internal function names, too.
allow searching with help text and
highlight all matches on current page.
cool: show the matching lines *only*.
DONE!

Index

allow jump to messages by index number. DONE!
add a limit command to show only matching entries/items/messages. DONE!
  a pattern language like within mutt would be very welcome!
show the size of messages in characters and/or lines.

Key Binding

Key Binding exists.
but are different bindings for each menu possible? yes!
DONE!

Menus

some menus are missing a title.
show a title for *each* menu:
"Newsbeuter 1.2.3 [YYYY-MM-DD] - MenuName".

Package

package description:
the decription of the packages needs an update!

Save

In the save dialog suggest filenames only consisting
of letters, dashes+digits+dots, and underscores.

Synchronization

Allow synchronization between accounts via "newsrc",
ie it only contain the info about the message itself
(perhaps by md5sum) and its status "read" or "unread".

Tags

tags define the categories about  a message.
there can be multiple tags for each message.
however, "tag-limit" allows only one tag.
multiple tags should be possible!

Version

Identify the program with name+version, eg "Newsbeuter 1.2.3".
no "alpha" or "beta", please, and certainly no "pre".
just three numbers, divided by two dots.
a release date date might come in handy, too.
"Newsbeuter 1.2.3 [YYYY-MM-DD]".

  $ newsbeuter -V
  Warning: program compiled against libxml 207 using older 206
  newsbeuter 1.4 - http://www.newsbeuter.org/
  Copyright (C) 2006-2009 Andreas Krennmair

  System: Linux 2.6.18-6-xen-amd64 (x86_64)
  Compiler: g++ 4.2.3 20071123 (prerelease) (Debian 4.2.2-4)
  ncurses: ncurses 5.6.20071215 (compiled with 5.6)
  libcurl: libcurl/7.17.1 OpenSSL/0.9.8g zlib/1.2.3.3 libidn/1.1 libssh2/0.17
  (compiled with 7.19.3)
  SQLite: 3.5.9 (compiled with 3.5.9)
  libxml2: compiled with 2.7.3

Current help Layout:

newsbeuter 1.4 - Help
ENTER   open                    Open feed/article
q       quit                    Return to previous dialog/Quit
r       reload                  Reload currently selected feed
R       reload-all              Reload all feeds
A       mark-feed-read          Mark feed read
C       mark-all-feeds-read     Mark all feeds read
n       next-unread             Go to next unread article
p       prev-unread             Go to previous unread article
^K      random-unread           Go to a random unread article
o       open-in-browser         Open article in browser
?       help                    Open help dialog
l       toggle-show-read-feeds  Toggle show read feeds/articles
^T      clear-tag               Clear current tag
t       set-tag                 Select tag
/       open-search             Open search dialog
^L      redraw                  Redraw screen
:       cmdline                 Open the commandline
F       set-filter              Set a filter
f       select-filter           Select a predefined filter
^F      clear-filter            Clear currently set filter
,       macro-prefix            Call a macro
E       edit-urls               Edit subscribed URLs
v       view-dialogs            View list of open dialogs
^V      next-dialog             Go to next dialog
^G      prev-dialog             Go to previous dialog
NEW Help Layout

newsbeuter 1.4 - Help
Generic:
q       quit                    Return to previous dialog/Quit
?       help                    Open help dialog

Misc:
ENTER   open-article-cur        Open the current article/feed
SPACE   open-article-cur        Open the current article/feed
^L      redraw                  Redraw screen
E       edit-urls               Edit subscribed URLs
o       open-article-in-browser Open the current article in browser
,       macro-prefix            Call a macro
:       cmdline                 Open the commandline
/       open-search             Open search dialog

Dialogs:
v       dialog-view             View list of open dialogs
^G      dialog-prev             Go to previous dialog
^V      dialog-next             Go to next dialog

Filter:
f       filter-select           Select a predefined filter
F       filter-set              Set a filter
^F      filter-clear            Clear currently set filter

Jumps:
^K      jump-art-unread-random  Jump to a random unread article
n       jump-unread-next        Go to next unread article
p       jump-unread-prev        Go to previous unread article

Load:
r       reload-feed-cur         Reload the currently selected feed
R       reload-feed-all         Reload all feeds

Marks:
A       mark-read-cur           Mark the current feed as "read"
C       mark-read-all           Mark all feeds as "read"

Tags:
l       toggle-show-read-feeds  Toggle show read feeds/articles
^T      tag-cur-clear           Clear current tag
t       tag-select              Select articles by a tag
2009-02-18
guckes@kudu:~> newsbeuter
Warning: program compiled against libxml 207 using older 206
Starting newsbeuter 1.4...
Error: an instance of newsbeuter is already running (PID: 31992)
zsh: segmentation fault  nb

why does newsbeuter segfault here at all?

why does newsbeuter use libxml-206 instead of libxml-207?

does newsbeuter really check whether the
PID in the lock file is still running?
if so, can newbeuter also show to which
(pseudo) terminal it is connected to?
2009-02-20
koan is Koen Vervloesem
hi, I have a feed from a webserver which has a redirect loop,
when newsbeuter tries to read the feed it keeps trying
I wonder if it's possible for newsbeuter to detect this loop,
like Firefox does, and then stop trying
I have version 0.9.1-1+lenny3 on Debian
2009-03-09
when reading an article -
how can you toggle the numbering of links?

index:
how to show the date+time of the last update to each feed?

how to show how many more new articles
have been added with the last update.

after an update of all feeds i would really like
to see how many new articles have been added -
so.. "#new|#unread|#read"

how can i bind 'F' to flag messages as read?
vim  speak:   :map         F >c-e<A<cr>
mutt speak:   :macro index F \EA\n
2009-05-27
http://debaday.debian.net/2007/09/16/newsbeuter-rss-feed-reader-for-the-text-console/
EOF