NewsFeed

An aggregator for RSS/RDF/Atom feeds in Python/Tk

Downloads | Usage | Features | Changes | License | Contact

Overview

NewsFeed is an RSS/RDF/Atom reader and aggregator for UNIX-like operating systems, such as Linux, Mac OS X, FreeBSD*, or Windows. It is written in Python and uses the Universal Feed Parser module for downloading and parsing feeds.

NewsFeed aims to be easy to setup and use and is something of a clone of NetNewsWire Lite (of course it's not as Aqua-pretty on Linux, although it looks fairly decent on OS X). It only depends on Tk, no other libraries are required.

Feed contents are not rendered as HTML as in other feed readers, therefore NewsFeed is quite fast because e.g. images are not displayed in descriptions. OPML feed lists can be imported and exported, and HTML pages can also be watched for changes, not just feeds. Other features include the ability to play a notification sound when new items have arrived and custom refresh intervals.

NewsFeed on FreeBSD
NewsFeed on the Mac

Downloads

Online documentation (also included in the distribution)

RSS iconNewsFeed New Releases Information


Basic Usage

NewsFeed provides keyboard shortcuts for all safe actions. Go through new items with the Space bar, mark all items in a feed as read with M, open an item in the browser with O (or Return), and exit the program with Escape. The basic idea for the keyboard interface is (for a right-handed person) to have the index finger on the Space bar, the middle finger on N (to mark items), the ring finger on M, and the pinky on Shift (for doing Shift-N).

Update intervals and caching times can be set on a per-feed basis. Autodiscovery of feeds is supported. A helper script for dealing with feed://-URIs is provided. Searches are possible, with search results being shown in the feed list like a regular feed and they are also updated live. This is a good way to look group topics from different feeeds. Use "Unsubscribe" to delete a search, just as you would remove a normal feed.

A nice browser for use with NewsFeed is Dillo, as it starts up pretty much instantaneously. Just set your BROWSER environment variable accordingly. Using a different browser from your regular one has the advantage that your browsing history in your main browser is not touched. NewsFeed also has its own history feed (called RECENTLY VISITED) that contains all items that you opened in the browser so you can easily find an article again.

Finally, Snack can play an audio notification when new items are available, but this is strictly optional.

Please see the documentation for more information.

Features, Benefits (and possible Downsides)

Pros:

Cons (and some reasons why they may not amount to much):

Why Python?

Scripting languages in general make it easy to quickly adapt a program to one's needs. Just open the script in an editor, edit, save. I wish I could modify other programs on my desktop like that!

What sets Python apart from other scripting languages like Perl is that its syntax is very easy to read and that it includes a lot of useful modules in its standard distribution, as opposed to Perl, which relies heavily on CPAN.

Python also cleverly integrates some the greatest features from even more powerful languages like Common Lisp, Smalltalk, or Haskell, making it easy to use concepts like object-orientation, functional constructs, or exceptions, all with a minimal, easy-to-learn syntax. This mix-and-match approach in Python is something I find very refreshing.

Version History

v2.13.1 (2011-01-08)

Added manual offline mode from v2.14 to the single-process version too.

v2.14 update (2011-01-03)

Fixed some minor annoyances related to feed auto-discovery that were due to the new multiprocessing setup. Also, this update to 2.14 should work on Windows again. If you are using yesterday's version, you may want to download the update (same filename as before). Just compare the MD5 checksum for the archive file if you are in doubt which version you have.

v2.14 (2011-01-02)

Downloading and parsing of feeds is now done by child processes, improving GUI performance during updates. This uses Python's new multiprocessing module, so Python 2.6 or later is required.

This release also introduces toggling offline mode manually with o to suppress automatic updates, a feature suggested on the Freshmeat project page. Note that you can still update manually when this offline mode is enabled.

v2.13 (2011-01-01)

Features a new widescreen view (toggled with keyboard shortcut w) à la NetNewsWire.

v2.12 (2009-06-17)

Upgraded to the latest version of FeedParser (4.1) to address problems with certain Atom feeds.

More…

Requirements

Please note that while Python and Tk are often installed by default under Linux, Tkinter is sometimes a separate package. Try import Tkinter in Python to see if Tk and Tkinter are properly installed.

Also note that some distributions such as Red Hat include packages for both Python 1.x and 2.x. If your distribution is RPM-based and you are missing one or both packages, RPMfind may be a good place to start looking for them.

License

This software is provided under the GPL.

Notes

*Some versions of Python on FreeBSD may produce an error message when using the multiprocessing version ("This platform lacks a functioning sem_open"). You might have to recompile Python and make sure it has semaphore support as described on this forum page.

**If you happen to have the backported multiprocessing module installed, the latest version might also work on Python 2.4 and 2.5. assert sys.version >= '2.6' in newsfeed.py must be commented out then.

Related Projects

Bug reports and feature requests

Send to Martin C. Doege