Monday, April 04, 2011 at 1:07 AM.

radio2Suite.initFeed

on initFeed (adrfeed) {
	<<Changes
		<<3/15/11; 10:38:37 AM by DW
			<<Comment initialization of cloud prefs, that's now a top-level pref.
		<<3/12/11; 1:05:03 PM by DW
			<<Callbacks. Now you can manage your own data in each feed table.
		<<3/1/11; 8:40:04 AM by DW
			<<Initialize prefs and stats for HTML archive.
		<<1/7/11; 9:40:58 AM by DW
			<<Commented out the initialization of the legacy s3 stuff and the fresca stuff.
		<<12/25/10; 2:27:19 PM by DW
			<<Created. 
	if not defined (adrfeed^) {
		new (tabletype, adrfeed)};
	bundle { //prefs
		if not defined (adrfeed^.prefs) {
			new (tabletype, @adrfeed^.prefs)};
		if not defined (adrfeed^.prefs.enabled) {
			adrfeed^.prefs.enabled = false};
		if not defined (adrfeed^.prefs.title) {
			adrfeed^.prefs.title = "My New Feed"};
		if not defined (adrfeed^.prefs.link) {
			adrfeed^.prefs.link = "http://my.reallysimple.org/"};
		if not defined (adrfeed^.prefs.docs) {
			adrfeed^.prefs.docs = "http://cyber.law.harvard.edu/rss/rss.html"};
		if not defined (adrfeed^.prefs.description) {
			adrfeed^.prefs.description = ""};
		if not defined (adrfeed^.prefs.language) {
			adrfeed^.prefs.language = "en-us"};
		<<bundle //cloud, use REST, 7/24/09 by DW
			<<if not defined (adrfeed^.prefs.cloud)
				<<new (tabletype, @adrfeed^.prefs.cloud)
			<<if not defined (adrfeed^.prefs.cloud.server)
				<<adrfeed^.prefs.cloud.server = "rpc.rsscloud.org"
			<<if not defined (adrfeed^.prefs.cloud.port)
				<<adrfeed^.prefs.cloud.port = 5337
			<<if not defined (adrfeed^.prefs.cloud.path)
				<<adrfeed^.prefs.cloud.path = "/rsscloud/pleaseNotify"
			<<if not defined (adrfeed^.prefs.cloud.protocol)
				<<adrfeed^.prefs.cloud.protocol = "http-post"
			<<if not defined (adrfeed^.prefs.cloud.registerProcedure)
				<<adrfeed^.prefs.cloud.registerProcedure = ""
		bundle { //html archive, 3/1/11 by DW
			if not defined (adrfeed^.prefs.htmlArchive) {
				new (tabletype, @adrfeed^.prefs.htmlArchive)};
			if not defined (adrfeed^.prefs.htmlArchive.filename) {
				adrfeed^.prefs.htmlArchive.filename = string.popsuffix (nameof (adrfeed^)) + ".html"};
			if not defined (adrfeed^.prefs.htmlArchive.pagetitle) {
				adrfeed^.prefs.htmlArchive.pagetitle = "HTML archive for " + nameof (adrfeed^)};
			if not defined (adrfeed^.prefs.htmlArchive.maxct) {
				adrfeed^.prefs.htmlArchive.maxct = infinity}}};
		<<bundle //old stuff
			<<bundle //fresca prefs, 12/25/10 by DW
				<<if not defined (adrfeed^.prefs.fresca)
					<<new (tabletype, @adrfeed^.prefs.fresca)
				<<if not defined (adrfeed^.prefs.fresca.enabled)
					<<adrfeed^.prefs.fresca.enabled = false
				<<if not defined (adrfeed^.prefs.fresca.domain)
					<<adrfeed^.prefs.fresca.domain = ""
				<<if not defined (adrfeed^.prefs.fresca.path)
					<<adrfeed^.prefs.fresca.path = ""
			<<if not defined (adrfeed^.prefs.s3Path) //12/14/10 by DW
				<<adrfeed^.prefs.s3Path = ""
			<<if not defined (adrfeed^.prefs.s3ArchivePath) //12/16/10 by DW
				<<adrfeed^.prefs.s3ArchivePath = ""
			<<if not defined (adrfeed^.prefs.s3Url) //12/14/10 by DW
				<<adrfeed^.prefs.s3Url = ""
			<<if not defined (adrfeed^.prefs.s3filename) //1/5/11 by DW
				<<adrfeed^.prefs.s3filename = ""
	bundle { //stats
		if not defined (adrfeed^.stats) {
			new (tabletype, @adrfeed^.stats)};
		if not defined (adrfeed^.stats.ctSaves) {
			adrfeed^.stats.ctSaves = 0};
		if not defined (adrfeed^.stats.whenLastSave) {
			adrfeed^.stats.whenLastSave = date (0)};
		if not defined (adrfeed^.stats.serialnum) {
			adrfeed^.stats.serialnum = 0};
		if not defined (adrfeed^.stats.ctArchiveBuilds) { //2/28/11 by DW
			adrfeed^.stats.ctArchiveBuilds = 0}};
	if not defined (adrfeed^.calendar) {
		new (tabletype, @adrfeed^.calendar)};
	bundle { //callbacks, 3/12/11 by DW
		local (adrdata = @config.radio2, adrscript);
		for adrscript in @adrdata^.callbacks.initFeed {
			while typeof (adrscript^) == addresstype {
				adrscript = adrscript^};
			try {
				adrscript^ (adrfeed)}}}};
bundle { //test code
	initfeed (@config.radio2.feeds.daveradio2)}



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.