I wrote rss2html with my own xml parser and http protocol (0deps) so many years 
ago to read my feeds.

Actually, the only useful feature was the 'planet' option which sorts/merges 
all your feeds in a single timeline.

The html output of my tool supports templates so i use it to create a 
planet.foo website to read news.

I end up using twitter. RSS is so retro.

Do your tool supports this?

I also wanted to have a way to keep synced my already read links. But that was 
a boring task.

http://hg.youterm.com/rss2html

On Aug 5, 2012, at 15:18, Hiltjor Posthuma <hil...@codemadness.org> wrote:

> Greetings fellow people of suckless,
> 
> 
> I would like to announce a simple RSS and Atom parser and reader I've
> been working on.
> 
> Some of the current features are:
> 
> - items are stored in a format to easily interact with, so I used a
> TSV-like format.
> - separate programs to display this data (sfeed_plain (plain-text),
> sfeed_html (HTML)).
> - relatively little dependencies (although I use libexpat to parse XML).
> - simple to interact with and play nice with existing tools (works
> great with dmenu, links and your trusty term).
> - works on most platforms (works on Linux, OpenBSD, Cygwin etc).
> - easy to sync your feeds TO THE CLOUD ;P
> - parallel downloading of feeds (sfeed_update).
> - time conversion to your timezone.
> 
> 
> Programs included and purpose of each program
> ---------------------------------------------
> 
> Name                Purpose
> 
> sfeed             - read XML RSS or Atom feed data from stdin. Write feed data
>                    in tab-separated format to stdout.
> sfeed_update      - Shellscript; update feeds and merge with old feeds in the
>                    file $HOME/.sfeed/feeds by default.
> sfeed_plain       - Format feeds file (TSV) from sfeed_update to plain text.
> sfeed_html        - Format feeds file (TSV) from sfeed_update to HTML.
> sfeed_opml_import - Generate a sfeedrc config file based on an opml file.
> sfeed_opml_export - Generate an opml file based on a sfeedrc config file.
> 
> 
> Example output of format programs
> ---------------------------------
> 
> Example output of sfeed_plain:
>    http://www.codemadness.nl/downloads/projects/sfeed/EXAMPLE.txt
> 
> Example output of sfeed_html:
>    http://www.codemadness.nl/downloads/projects/sfeed/EXAMPLE.html
> 
> Screenshot of sfeed_plain with dmenu (see usage examples):
>    http://www.codemadness.nl/downloads/screenshots/sfeed-screenshot.png
> 
> 
> TAB-SEPARATED format
> --------------------
> 
> The items are saved in a TSV-like format except newlines, tabs and
> backslash are escaped with \ (\n, \t and \\). Other whitespace except
> spaces are removed.
> 
> The timestamp field is converted to a unix timestamp. The timestamp is also
> stored as formatted as a separate field. The other fields are left untouched
> (including HTML).
> 
> The order and format of the fields are:
> 
> item unix timestamp      - string unix timestamp (GMT+0)
> item formatted timestamp - string timestamp (YYYY-mm-dd HH:MM:SS tz[+-]HHMM)
> item title               - string
> item link                - string
> item description         - string
> item contenttype         - string ("html" or "plain")
> item id                  - string
> item author              - string
> feed type                - string ("rss" or "atom")
> feed name                - string (extra field added by sfeed_update)
> feed url                 - string (extra field added by sfeed_update)
> item baseurl site        - string (extra field added by sfeed_update)
> 
> 
> Some usage examples
> -------------------
> 
> Basic usage to get items from a single newsfeed which also explains
> the design of sfeed (iconv is optional, it's only used if feeds are
> non-UTF8 encoded):
> 
>    curl -s 'http://kernel.org/kdist/rss.xml' | iconv -cs -f "iso-8859-1"
> -t "utf-8" | sfeed | sfeed_plain
>    
> 
> Config file syntax (shell script) for sfeed_update:
> 
>    feeds() {
>        # feed <name> <feedurl> [basesiteurl] [encoding]
>        feed "codemadness" "http://www.codemadness.nl/blog/rss.xml"; &
>        feed "xkcd" "http://xkcd.com/atom.xml"; &
>        feed "linux kernel" "http://kernel.org/kdist/rss.xml";
> "http://kernel.org"; "iso-8859-1" &
>    }
> 
> 
> update items and merge (default config location is $HOME/.sfeed/sfeedrc).
>    sfeed_update
> 
> 
> format feeds to plain-text:
>    sfeed_plain < $HOME/.sfeed/feeds > $HOME/.sfeed/feeds.txt
> 
> 
> format feeds to HTML:
>    sfeed_html < $HOME/.sfeed/feeds > $HOME/.sfeed/feeds.html
> 
> 
> view feeds with dmenu, opens selected url in $BROWSER:
> 
>    url=$(sfeed_plain < "$HOME/.sfeed/feeds" | dmenu -l 35 -i |
>        sed 's@^.* \([a-zA-Z]*://\)\(.*\)$@\1\2@')
>    [ ! "$url" = "" ] && $BROWSER "$url"
> 
> 
> Generate a sfeedrc config file from your exported list of feeds in opml
> format (newsbeuter, google reader, snownews, thunderbird, etc):
> 
>    sfeed_opml_import < opmlfile.xml > $HOME/.sfeed/sfeedrc
> 
> 
> Export an opml file of your feeds from a sfeedrc config file:
> 
>    sfeed_opml_export configfile > myfeeds.opml
> 
> 
> This is the first version I publicly share with people so I'm sure
> there are some bugs. Patches, bug reports and constructive criticism
> are very welcome.
> 
> 
> You can get the latest code with git at:
> 
>    git clone http://www.codemadness.nl/downloads/projects/sfeed/src/sfeed.git
> 
> A direct link to the latest README with more information is available here:
>    
>    http://www.codemadness.nl/downloads/projects/sfeed/README
> 
> Link to blog with some screenshot and example files:
> 
>    http://www.codemadness.nl/blog/2011/04/01/sfeed-simple-feed-parser/
> 
> 
> Credits
> 
> Thanks to raph_ael on #suckless for the idea of an opml converter and
> __20h__ for suggesting I should add a public code repo for easier
> patch management.
> 
> 
> Kind regards,
>    Hiltjo (Evil_Bob on #suckless)
> 

Reply via email to