Version 62 of RSS

Updated 2020-09-05 20:43:53 by dbohdan

RSS, which stands for RDF Site Summary (RSS 0.9, 1.0) or Rich Site Summary (RSS 0.91) or Really Simple Syndication (RSS 2.0), is an XML dialect to describe updates to websites with changing content (like news sites, or Slashdot, or this wiki).

There were some heated debates about which of the competing spec versions "was RSS". At its core it is an XML file format for providing summaries of websites with news. An RSS document consists of one or more channels with one or more items. Each item is usually a news story with a title, a link, and possibly a description. RSS 2.0 allows more properties for each item.

SC's Wiki was an early implementation of Wikit with an RSS feed. That is, you could get the "Recent Changes" page as an RSS file. This wiki has an RSS feed as well.

See also

Discussion

DKF 4 Dec 2006: We should get jcw to update wikit to put in a magic incantation like this into each page's HTML header:

 <link rel="alternate" type="application/rss+xml" title="RSS" href="/rss.xml">

as this would make browsers like Firefox add information to the display to advertise the fact of the RSS feed to users. Which would be nice. :-) ... done by colin May 2007


LV In the category what will they think of next we have [L1 ].


LV So, what does one do with RSS? For what purpose does one make data available in this format? For what can one use it that they couldn't just use the html pages?

MR Larry, it lets people easily track updates or changes from a large number of websites very quickly, using an application called a news aggregator. Rather than having to visit 50 websites for news, all the latest headlines are downloaded automatically and shown in a way that makes it very quick to see only what is new, and read just what I want. Since very recently adding it to CourseForum and ProjectForum its been a godsend, letting me monitor dozens of Wiki sites with practically zero effort.


LV Ah, Mark, so it is a format that some applications can interpret and use to display a series of links. Allows one, it appears, to do some sort of dynamic personalization of headlines or whatever the site wants to advertise.

MR Sort of. See e.g. the main window screenshot linked to from http://ranchero.com/netnewswire/


Petteri K offers

    lynx -source http://www.iki.fi/petterik/rss.cgi > rss.cgi
    tclsh rss.cgi 0b00 

as a demonstration of RSS capabilities.

LV I am uncertain what this script is for. When I run it, all I see is a series of lines from ActiveState. I do not seem to see anything from the other URLs listed in the script. I added two URLs - one for Tcler's Wiki and one for Steve's Wiki (listed above) - surely their sites should have shown up in the rss.cgi's output.


A nice discussion from another Wiki: [web.archive.org/web/20050509022346/http://twiki.sourceforge.net:80/cgi-bin/view/Codev/RichSiteSummary ].


LV What Tcl-related sites provide RSS information? Is the Tcl-URL provided in RSS? Other information? Could the Tcl-URL editors make use of RSS someway?


Scott Gamon - I, for one, would love to see a RSS feed for Tcl-URL. Or a RSS feed for news:comp.lang.tcl .

NEM: (Discussion of my, now dead, cgi usenet/rss bridge removed). Google groups do Atom feeds of news groups, including Tcl: [L2 ]


Another tool available for providing a bridge between newsgroups and RSS is http://freshmeat.net/projects/nntp2rss/ .


I recently noticed an article at http://www.macdevcenter.com/pub/a/mac/2004/03/12/rss_scripting.html which demonstrates some rather basic shell scripts for retrieving and displaying RSS. In the following comments, someone shows a tremendously simple script in REBOL for doing similar functionality, and someone mentions that perl and python both have even better facilities.

Would it be useful to promote the TclRSS extention, mentioned above, into Tcllib?


Philip Quaife 6 Feb 05, I don't know what the fuss is with RSS, but I had a bash at decoding with regexps. Works with some rss or rdf feeds, but not sourceforge.

Takes a file and splits the fields into an array. Just prints out the array as an example. YMMV.

 #
 # Read RSS Feeds
 #


 set f [open $argv r]
 set data [read $f]
 close $f

 # Process an RSS File
 if {1 || [string first <rss $data] != -1} {
 foreach {- channel} [regexp -all -inline {<channel[^>]*>(.*?)</channel>} $data] {
        #get channel options
        set chopt [join [regexp -inline {.*?(?=<item>)} $channel]]
        puts "RSS CHANNEL\\$channel\\"
        regsub -all {<(.*)>([^<]*)</\1>} $chopt "\\1 {\\2}" opts
        array set options $opts
        parray options
        puts ""
        unset options
        foreach {- item} [regexp -all -inline {<item>(.*?)</item>} $channel] {
          regsub -all {<([^ ]+)[^<]*>([^<]*)</\1>} $item "\\1 {\\2}" opts
          array set options $opts
          puts "RSS ITEM  ([array names options])"
          parray options
          puts ""
          unset options
        }

 }
 }

 # Process a RDF file
 if {[string first <rdf $data] != -1} {
 foreach {- channel} [regexp -all -inline {<channel>(.*?)</channel>} $data] {
        #get channel options
        puts "RDF CHANNEL"
        regsub -all {<(.*)>([^<]*)</\1>} $channel "\\1 {\\2}" opts
        array set options $opts
        parray options
        puts ""
        unset options
        foreach {- item} [regexp -all -inline {<item>(.*?)</item>} $data] {
          regsub -all {<([^ ]+)[^<]*>([^<]*)</\1>} $item "\\1 {\\2}" opts
          array set options $opts
          puts "RDF ITEM ([array names options])"
          parray options
          puts ""
          unset options
        }
        break
 }
 }

"Bloglines" is a popular Web-based reader. It has nothing to do with Tcl, apparently--but is an example of a popular client.


George Petasis It seems that the TIL packages (rssparser, rsswatch) are also included in ActiveTcl (its teapot repository).


LV So, is the format used by people providing podcasts some version of RSS? The reason I ask is that jPodder, the podcast application I've been using, handles some feeds I've found, but others seem to just confuse it.