r6 - 10 Aug 2007 - 15:05:56 - TedLeungYou are here: OSAF >  Projects Web  >  CommunityHome > StarterProjects > RssFeedProjects

RSS feed -- custom RSS feeds

Note: Thanks to GrantBow, MS and other wikimasters this problem is now almost completely solved. The only remaining item:
  • How to add an RSS-feed target to the standard Wiki search results page so that if you liked the results of a search you could "capture" it as an RSS feed. -- PieterHartsook - 04 Jun 2004

Build a custom RSS feed.

The Wiki can generate a custom RSS index page to feed RSS readers. The URL for the feed only works with one Wiki at a time and takes the form:

http://wiki.osafoundation.org/twiki/bin/view/*wikiname*/WebRss?skin=rss&search=*searchstring* where the variables are:

  • wikiname -- the OSAF wikis, e.g. Chandler, Journal, Jungle, Glossary

  • searchstring -- whatever you want to identify the pages that that when changed will populate your RSS feed. If you use a Wiki topic name remember that this will hit positive on that page AND any page that references that page. The search term could be as broad as you wish, e.g. 'repository' to make a feed that shows all changes to Wiki pages that have the string 'repository' in them. To test the specificity of the string, try it out in a Wiki search first.

The StarterProjects project is to come up with some wiki-fu that would make a nice end-user UI to set those two variables, the first maybe a pulldown menu with the valid Wiki names, and the second a text entry box to enter the search term. After setting the variables the use would then have a valid URL, for example ( http://wiki.osafoundation.org/twiki/bin/view/Chandler/WebRss?skin=rss&search=Teams.CpiaFramework ) to enter as a RSS feed into their RSS reader. try it out, click the link to see the changed pages that have "CipiaFramework" in them

An alternative deployment would be to add the generated RSS feed URL to all Wiki search results (in each Wiki sub-list) with the URL for the RSS feed for those search results. It would be a way to take the results of a Wiki search and execute it periodically and display the results in your RSS reader of choice.

Here's an implementation that uses a two step process. The good part is that you don't need to hack perl, however the drawback is that it does require two page loads. You must click the Set Web button (browser will reload the page) so that the second step will work. This would seem much better on a dedicated page. More details and an outline of the alternative (better) way of doing this can be found on Jungle.FirstDraftRssSelector.

   1. web(s)
   2. Custom RSS Feed:

Contact person: PieterHartsook


Build a Wiki variable for a page's name.

Using the approach above create a variable that can be placed on every Wiki page in the header of footer of the page, sitting behind an XML.gif that will generate the custom RSS feed for that page (and all the pages that have that text on it, including references to that page).

An example handcoded for this StarterProjects page would be:

<a href=http://wiki.osafoundation.org/twiki/bin/view/Chandler/WebRss?skin=rss&search=HelpUs><img src=http://wiki.osafoundation.org/twiki/pub/TWiki/TWikiDocGraphics/xml.gif></a>  

  • test using the %TOPIC% Wiki variable (seems to work!)
<a href=http://wiki.osafoundation.org/twiki/bin/view/Chandler/WebRss?skin=rss&search=%TOPIC%><img src=http://wiki.osafoundation.org/twiki/pub/TWiki/TWikiDocGraphics/xml.gif></a>  
  • set RSS_SEARCH = <a href=WebRss?skin=rss&search=

  • set XML_GIF_IMGSRC = >

  • now to try using three variables strung together: %RSS_SEARCH%RssFeedProjects%IMG_GIF_IMGSRC%
%RSS_SEARCH%%TOPIC%%IMG_GIF_IMGSRC% 
-- That sure didn't work!

So I figured out a universal variable that 'creates' an RSS feed based on the wiki page "TOPIC", the wiki name of the page. This code can be placed on every wiki page (and probably should be included in the PAGE HEADER)is:

<a href=WebRss?skin=rss&search=%TOPIC%><img src=http://wiki.osafoundation.org/twiki/pub/TWiki/TWikiDocGraphics/xml.gif></a>
Note: this creates a feed for that page AND every other page in that wiki that mentions that page name.

The way it is formatted to work within the OSAF_PAGETYPEHEADER variable thanks to help from Grant Bowman and others on #twiki, is:


The RSS feed for this page and other pages on the Projects Wiki that refer to RssFeedProjects is:
   * Set OSAF_RSSFEED_PAGEGENERATOR = <BR>The RSS feed for *this page* and other pages on the <span style="color:red"> %WEB% </span> Wiki that refer to *%TOPIC%* is:  <a href=WebRss?skin=rss&search=%TOPIC%><img src=http://wiki.osafoundation.org/twiki/pub/TWiki/TWikiDocGraphics/xml.gif></a>

PieterHartsook? RSS feed
Contact person: PieterHartsook

The #twiki folks also suggested using %INCLUDE instead of using the variables for the page types and RSS generators. Information about this can be found at:

  • IncludeVariables?
  • OsafUntypedPageTemplate?

I haven't got this method to work yet. -- PieterHartsook - 23 Apr 2004

-- PieterHartsook - 07 Apr 2004


Allow RSS updates on a given page

There is already a way to get an RSS feed that gives changes any time any page containing a particular text string changes, but there is no way to only get a particular page. For example, this custom RSS feed will show not just changes ManagementCommitteeMeetingNotes, but also to ManagementCommitteeMeetingNotes20040316, ManagementCommitteeMeetingNotes20040330, etc.

It would be great if someone could come up with some wiki-fu so that you could subscribe to a given wiki page, not to all pages with the given text.

With some help from wiki-fu masters Grant Bowman and MS over on #twiki IRC channel at calvino.freenode.net, they have come up with an improved WebRssBase?,by changing how the %SEARCH function works. This is now implemented at WebRssBase so we now are able to pass all the standard SEARCH parameters to the rss feed statement including restricting the search string to the TOPIC to restrict the results, use Regular Expressions in the search striings, and in the other direction to set web="all" to get all referring pages across all the OSAF Wikis!

Rss feed URL scope
http://wiki.osafoundation.org/twiki/bin/view/TWiki/WebRss?scope=topic&search=ManagementCommitteeMeetingNotes&skin=rss ManagementCommitteeMeetingNotes only in the current wiki "Chandler" and only in the Wiki page name (topic)
http://wiki.osafoundation.org/twiki/bin/view/TWiki/WebRss?search=ManagementCommitteeMeetingNotes&skin=rss ManagementCommitteeMeetingNotes only in the current Wiki "Chandler" , but appearing anywhere in the text of the page, i.e. pages that reference ManagementCommitteeMeetingNotes are included
http://wiki.osafoundation.org/twiki/bin/view/TWiki/WebRss?web=all&scope=topic&search=ManagementCommitteeMeetingNotes&skin=rss ManagementCommitteeMeetingNotes on ALL the public wikis, but only in the page name (topic)
http://wiki.osafoundation.org/twiki/bin/view/TWiki/WebRss?web=all&scope=topic&search=^ManagementCommitteeMeetingNotes$&skin=rss ManagementCommitteeMeetingNotes on ALL the public wikis, but only specifically the single page with the page name (topic) ManagementCommitteeMeetingNotes
  • This satisfies Ducky's request to create a feed for a specific page (solution is just to use the Regular Expression ^FooPage$ where FooPage? is the specific Wiki page name.
  • But by leaving off the "$" at the end you can get all the pages that extend on the Topic, e.g. MeetingNotes?$, MeetingNotes2004?, MeetingNotes20040426?, MeetingNotes20040426Agenda?, etc. While the parentage of a Wiki page may change, you can cluster pages together by standard naming conventions, e.g. WeeklyStatusByPerson20040428?.
  • The next step will be to be able to conduct a simple or advanced search using the TWiki Search pages and on the results page have the option to generate the RssFeed? URL for that search (once you finally get the search to give you the results you want)

Contact person: DuckySherwood

-- DuckySherwood - 07 Apr 2004


More wiki-fu requests

The first question is about these two pages:

Each of those pages has "a list of lists". The lists themselves are all automatically generated, but the "list of lists" is not automatic, and as a result the tables of content sections on those pages are already out of date (for example, no listing for Brian Kirsh, even though BrianKirsh? does appear as an entry on the MaintainedBy page).

Might it be possible to use some sort of nest search expression to generate all of the contents of those pages, so that almost nothing is hard-coded?


This is related to the next question. The definitive list of page types is defined in Projects.PageType. Right now the WikiHelpPage page type includes those definition topics as well as some others. You might be able to use a regex in a formatted search that finds all pages with the metadata page type set to WikiHelpPage whose topics themselves end with 'Page' in the topic name.

I also believe that each of those PageTypes can also have defined in them % startinclude % sections for the variables that are currently on TWiki.TWikiPreferences but I would want to do some PageTypeFeatureTesting? to verify that nothing gets in the way, using a single topic for both the contents of a "TWiki form's selection data field as well as using it for an include data source. This is certainly pushing the limits of the existing TWiki features from other TWiki sites I have worked with.

Another page to automate is Trash.AboutPageType?. All the info in that table could be generated from metadata in a form applied to the "PageType" topics. Maybe another PageType should be defined for the actual topics that contain data about the PageTypes.

If lists of lists can't be done (or it's too tough for whatever reason) with nested formatted searches, a simple perl script can be written with the functionality.

-- GrantBowman - 03 May 2004


Second question: Is it possible to somehow implement the page type

header boxes so that the code for them is better factored, rather than each one being basically a copy of the one before, the way it is now? http://wiki.o11n.org/twiki/bin/view/TWiki/TWikiPreferences#Standard_page_type_header_boxes_

PieterHartsook was working on this using % includes after a discussion on irc.freenode.net #twiki with MS who frequents that channel. See TWiki.TWikiVariables for syntax.

Third question: Is there other stuff that Grant has noticed we should be

doing different? Things we're doing the hard way, or things we're failing to do? Or really wonderful plugins that we don't even have installed?


-- PieterHartsook - 04 Jun 2004

PageInfo
PageType ProjectPage?
MaintainedBy PieterHartsook
PageStatus Source of truth -- this page reflects current OSAF thinking? go.png
Trash.CommentsWelcome2 Feel free to contribute comments?, either by adding to the Comments Welcome section of this page, or by posting to the dev list, or by sending mail directly to the person listed as maintaining the page.
Edit | WYSIWYG | Attach | Printable | Raw View | Backlinks: Web, All Webs | History: r6 < r5 < r4 < r3 < r2 | More topic actions
 
Open Source Applications Foundation
Except where otherwise noted, this site and its content are licensed by OSAF under an Creative Commons License, Attribution Only 3.0.
See list of page contributors for attributions.