Tuesday, March 29, 2011 at 1:07 AM.


on feedUpdated (urlfeed) {
		<<3/25/11; 12:15:08 AM by DW
			<<Call the feedUpdated callbacks.
		<<11/17/10; 3:10:45 PM by DW
			<<Read the feed in this thread, instead of forking off a new one.
		<<11/17/10; 12:42:33 PM by DW
			<<Only read the feed once for each notification, and do it in a separate thread after returning to the caller.
		<<9/15/09; 10:44:58 AM by DW
			<<Only accept notification for feeds we're subscribed to.
		<<9/7/09; 4:17:36 PM by DW
			<<Add threaded call to river2Suite.readFeedAfterNotify.
		<<8/10/09; 2:52:22 PM by DW
			<<Tweaked logging for the "Notified" event.
		<<7/17/09; 2:01:50 PM by DW
	local (adrdata = river2suite.init (), startticks = clock.ticks ());
	local (adrfeed = @adrdata^.feeds.[urlfeed]);
	bundle { //stats
		adrdata^.stats.whenLastRealtimeUpdate = clock.now ();
		adrdata^.stats.urlLastRealtimeUpdate = urlfeed};
	if defined (adrfeed^) { //must be subscribed to the feed, 9/15/09 by DW
		<<thread.callscript (@river2Suite.readFeedAfterNotify, {urlfeed}) //9/7/09 by DW
		river2Suite.readFeed (urlfeed);
		bundle { //callbacks, 3/25/11 by DW
			local (adrscript);
			for adrscript in @adrdata^.callbacks.feedUpdated {
				while typeof (adrscript^) == addresstype {
					adrscript = adrscript^};
				try {adrscript^ (urlfeed)}}};
		system.temp.river2.flStaticBuild = true; //11/17/10 by DW
		bundle { //log it
			local (s);
			try {
				s = "The feed <a href=\"" + urlfeed + "\">" + adrfeed^.feedInfo.title + "</a> updated."}
			else {
				s = "Received notification that a <a href=\"" + urlfeed + "\">feed</a> we're subscribed to has updated."};
			log2.add (river2Info.name, "Notified", s, startticks)}};
	return (true)}
<<bundle //test code
	<<feedUpdated ("http://static.lifeliner.org/dave/rss.xml")

This listing is for code that runs in the OPML Editor environment. I created these listings because I wanted the search engines to index it, so that when I want to look up something in my codebase I don't have to use the much slower search functionality in my object database. Dave Winer.