Free RSS Reader

Russian version - Русская версия
 TOC 

Table Of Content


Intro

Modern internet is a very dynamic and enormous big source of information. Many web-serfers has personal lists of most popular sites from where they get latest news and updates. But some type of such updates are irrelevant, something is duplicated and surfing to dozens sites at the moment is a challange both for browser and internet connection. Trouble? No! Wize hackers invented the ultimate solution - RSS.

What is RSS

RSS stand for "Rich Site Summary". I'm not going to copy-n-paste Wikipedia article, so please examine it on your own. ;-)

If you want to read essential parts of several sites via single interface, RSS is the answer.

The link to RSS feed could be found on home-page of almost every site - just look for icon like or or

News (articles) display in FreeRSS

Technically each site, that we decided to monitor, generate so-called "feed". Feed is a bunch of latest articles (also called "messages", "news", "posts") from monitored site.
Article has unique title, textual content (optionally accompanied with illustrations and/or videos) and a link to original publication.
Some sites attach to their articles so-called "Categories" - a set of textual tags, associated with covered topic.

Here is an example of RSS article, formatted by FreeRSS:
 
 
    The Marthians did it again  | Associated Stress |   InterPlanetNews 12 hours ago

 Categories: marthians breaking news did it again

The Marthians got tons of extra clones for their future invasions. Our representative in Planetary Defence Comission reports about 17000 concealed creatures, created by evil scientists in illegal laboratories.
This action violates Charter of Mars Liberation #92017322/B and several local laws.
We'll keep you informed about future developments.
Share via facebook
Share via google_plus
Share via twitter
 
 

The articles are very similar to e-mails: their titles (like "subject" in e-mails) are shown in news-list as a single-line reference, while content could be opened on demand. The "sender" here is not a person, but original site (linked on this picture with icon []).

Categories are listed inside article's body, right before the content [].

In the right-top corner appears "article menu" icon [] that opens dialog for article title lookup in external search engines.

FreeRSS automatically provide "sharing" icons for Facebook [], Google+ [] and Twitter [].

About product

Motivation and status

In March 2013 Google decided to retire "Google Reader" and switch it off on July 1, 2013. Many commercial and free products became useless, since RSS news aggregation was based mainly on this service. Thus I decided to develop my own RSS reader with aggregation functionality "on-the-board", along with lots of features I've dreamed about: automatic news tagging & filtering, browser integration, etc.

My product is compatible with OPML subscriptions list (from Google Reader and other commercial/free products).

Currently there is no support for user authentication, thus this is "single user" product (per installation).

Please consider this implementation as "quick-n-dirty" - my goal was to get "Google Reader substitute" ASAP. Anyway, critics/suggestions/bug-reports are always welcomed.

Technical details

It's based on Perl, POE and SQLite.

The only IDE, used during development was VIM. In other words, it's nearly "100% hand-written" product.

Technically it was developed on MS Win station (Win-7), but can run on any platform that supports Perl: Windows, Linux, Unix.

Client OS & browser compatibility was checked against MS Win (XP and 7), Linux (RH5), Android (cellphone - 2.3.6, tablet - 4.2.1) on all popular browsers, and even on Smart-TV box (LG). Best viewed with Google Chrome.

For technical support, bug reports and features suggestions please contact the author (see contact information on homepage).

Translation

Currently available support for Russian language, but internal web-server functionality allows quick transition to any left-to-right language (no RTL support).

In order to upload language-specific messages into web-server, take respective *.xml file using "International settings" inside "Viewing options" menu. Russian language file could be found under data/xml sub-directory.

If you want to participate in translation into your language, please contact the author - your name will be mentioned in product records.

Author

Free RSS Reader is an open-source free product developed by Felix Liberman

Credits

I want to thank all my friends that participated in pre-release testing.
Special credit goes to my friend (IRL and in LiveJournal)
quinn_mellory - your end-user experience helped this product to became more attractive and clean.

Installation

Requirements

As mentioned previously, this program can run on any platform that supports Perl. You've to install Perl interpreter and make it available via search-path.

Once Perl interpreter is ready, you can start the server and connect to it from any device on your local network: Windows/Linux/MacOS/Android with any dhtml-compatible browser.

For Windows users there is a compiled version that can run on every modern MS Win PC

Version, sources & downloading

The latest version released for public domain is 1.05b ("Perl is over - beta").

All source code is open - you can re-use and modify it (please mention the origin in documentation)
To download the latest version use this link>> Self-installing version available here>>

Unzipping the archive

The archive could be unzipped in any area with reasonable disk space. Use any available archive un-packer that supports tar+gz or rar (according to platform)

Usage

Starting application

If you run Windows install program it already prepared all required services, so just open the right URL using recommendations below

If you want only to try this applicaton on Windows platform - run "free_rss.bat" file.

On Linux/Unix platform run "free_rss.csh" shell script.

This program is a simple console application that does not require any user interaction.

To access application front-end from the same computer just open this link: 127.0.0.1:5001. To do it from other device on the same network - just type in address line the host's name/ip with port number, f.ex. http://homepc:5001 or http://192.168.1.104:5001

Important notice: for getting full-function web-interface it's recommended to disable AdBlock for this URL in client browser. I'm not pushing any advertising content, simply some of FreeRSS internal URLs resemble popular ad-related patterns. Trust me - I'm an engineer ;-)

Import/export OPML file

OPML file contains list of your subscriptions. If you've Google Reader account - just follow their instructions for migration to another system - at the end you'll get OPML file. OPML import is one-time action that should not be repeated again (since all subscriptions are cleaned during this operation). On main screen click on "settings" button and in "Administration" box select a file and click on "Take subscriptions from OPML-file".

For backup purposes you can export modified subscriptions list to OPML file - follow the same screens as for Import, but the button is "Export subscriptions to OPML file". The file will be saved under data sub-directory as "user.opml" (old one renamed to *.bak).

Browsing

When RSS-reader is configured you can go to "Read RSS" page.

Top tool-bar has buttons for global actions, in left menu you can select for browsing either RSS feed, or feeds group, or "watch".

Please mind that any article can appear both in original site feed, feeds group or "watch" - in all cases you operate with the same article, so after marking it as "read" the article will disappear from "unread" watch-list.

For user convenience there are several keyboard accelerators that could be used instead of buttons:
KeysAction
Ctrl+ZMark current page as read and go to next page
Ctrl+MMark current RSS/group/watch as read
Alt+SGo to settings menu
Alt+CClean old (obsolete) posts
Alt+RRefresh (update) RSS newspapers by downloading new posts
Arrow downGo to next article inside the page
Arrow upGo to previous article inside the page
Arrow rightOpen article content (when only article heading displayed)
Arrow leftHide article content (if content already displayed)
Ctrl+Arrow downMark current article as read and go to next, inside the page

Keyboard shortcuts are customizable, but make sure not to mix them with your browser and desktop operating system settings

Maintenance

For future data recovery it's recommended periodically to make a copy of main database file from "data" directory. Also could be a good idea to export filters (watches) list into YAML file - in case of any crash your filters could be easily recovered.

Database should be periodically cleaned from unnecessary records. In current version you'll be automatically prompted to run old records cleanup process.

In addition to database cleanup, it's copied to pre-defined backup area - see respective message at the end of process.

Features list per release

Version 0.1 "pesah-2013"

- Tags (watches) support
- Import YAML file with tags descriptions
- Statistics report
- Newspaper title
- Leave at least N elements while cleaning each feed
- Add RSS under new/existing group
- Keyboard accelerators
- Interactive update of article "read" state
- Nespaper name & reference in post title

Version 0.5 "rainy weekend"

- Links to Facebook and Google+ for article sharing
- Edit filters list
- Export filters to YAML
- Button "Re-apply filtes"
- Correct display of zero "unread" counter in dynamic HTML
- Minimal messages on start
- Fixed bug in "mark read and next" for page with "read" elements
- Dynamic set/remove bold on read/unread menu items

Version 0.6 "lag ba-omer"

- Database vacuum action
- Fixed bug with Windoze TCP buffer for LWP
- Single executable for Windoze
- Fixed bug: no rule with same name allowed
- Fixed bug: incorrect page number cause wrong page display
- Correct page transfer on OPML export

Version 0.7 "hamsin"

- OPML file upload from client side to application
- Read RSS title and site address using RSS link
- Remove/edit RSS feed
- Newspaper settings editing and reset to defaults
- Page content query optimized with "limit"
- "read" items correct display in newspaper
- Support 3 types of newspaper format: titles/text/full
- Reaction for sort/unread listboxes changes
- Mark with "star"
- Interactive global DIV element with feeds refresh progress
- Twitter sharing option in article view
- IE-compatibility bug fixed
- Cleanup options tuning
- Special watches always displayed with both read/unread elements inside
- Fixed bug, related to big amounts of records in posts table
- Fixed bug in page navigation buttons display

Version 0.8 "shavuot"

- Fixed bug in new feed definition
- Correct feeds re-display after sorting/filtering options change
- Full re-org of settings screen
- Updated icons set
- Internal fix for CGI names
- Tips (hints) with 3 states (hidden/title/open)

Version 0.9 "rosh-a-shana"

- Fixed bug in complicated rules editing
- Fixed garbage messages on MSWin application start
- Correct stages reporting on MSWin application start
- Tags and categories became independent
- Tags re-calculated from scratch on "re-run filters" stage
- Better spacing for UI elements
- Pattern / category search

Version 0.95 "hanuka"

- Fixed bug in empty watch/rss/group counter update
- Added categories report with statistics and "mark all as read" button
- Extra accelerators for cleanup, reload and administration menu
- Fixed bug: added keyboard mapping in empty newspaper screen
- Added massive check/uncheck action for current page
- Fixed bug in empty RSS display
- Icons re-design

Version 1.01 "purim"

- Empty page displayed with possible refresh options
- "Starred" article title colored with blue
- Implemented "mark/unmark star" for whole page
- Fully implemented "trash" watch (filter)
- Added "associate with..." option per category
- Added menu for moving rules between watches
- Special display for latest timestamps (today,N hours ago,M minutes ago)
- Pre-check form fields in New RSS screen
- Correct DB cleanup in MS Windoze
- Info & reminder in report about old records clean / DB vacuum
- Fixed bug in references/images URL inside article

Version 1.02 "rain in may"

- Automatic popup, reminding about DB cleanup
- Automatic popup, reminding about feeds refresh
- Cleanup and vacuum joined into single operation
- Added keyboard control for article selection, marking as read, content show/hide
- Operation "mark read and next" got progress indicator and screens deactivation shade
- Fixed bug in statistics caclulation after "trash" filter application
- Unified style for "nothing to display" dashboard
- Added missing defaults in "viewing settings"
- Keyboard control got "post-action" that prevents current article display out of scroll area

Version 1.03 "back to school"

- Interface language selection (provided Russian language support)
- New option: open specific view after articles refresh
- Feeds placement control (in settings screen)
- Confirmation before YAML upload (DB cleanup)
- Keyboard navigation for empty newspaper
- Bug fixes in web-service communication
- Bug fix in query arguments passing
- Added DB schema upgrade on demand

Version 1.04 "hot november"

- Filters got option for limited use inside RSS group
- Initial statistics collection indicated by "processing" screen
- Fixes in "search" field
- Added option "links" in view selection listbox
- Size correction for big pictures inside article
- Links correction inside articles
- Removed irrelevant debug messages in production log

Version 1.05 "Perl is over"

- Added new automatic group "unfiltered"
- Automatic DB backup
- Download progress updated in window title
- Removed separate 'compress' button from maintenance menu

Version 1.05b "Perl is over (beta)"

- Article extra menu - open dialog for lookup in external search engines
- External search engines specified in JSON file
- Tag re-assignment menu for current article
- Enable/disable specific feed download
- Minor bug fixes and code cleanup
- Display errors & statistics at the end of refresh and offer feeds report/editing
- Hide navigation buttons during feeds refresh
- Floating header over scrolled feeds newspaper
- Force site icon dimensions to fixed, reasonable values
- Suggest new/sample subscription(s) on empty database
- Refresh buttons in feed editing screen
- Possibility to define feed using site URL or RSS feed URL
- Install/un-install utility (for MS WindoZe)
- Auto-hiding main toolbar menu with modern style button (including mobile)
- Windows installer runs web-server as service without console window

To be implemented soon

- Individual display options for views/feeds/groups
- Save/restore unread/marked articles in XML/YAML format
- Select what page to be opened after filters re-run and after cleanup
- Warn about non-saved option(s) on settings page close
- Download of OPML/YAML files on client side
- Left menu control (selection hooks) instead of re-draw
Free Web Hosting