Monday, November 08, 2010 at 12:05 AM.
system.verbs.builtins.radio.init
<<Changes
<<8/21/04; 9:39:47 AM by SK
<<Init user.radio.prefs.flNewsPageSortNewestFirst to true, preserving current behavior. Linked to radio.html.viewNewsItems change that allows sorting by oldest or newest first.
<<1/21/03; 7:54:01 AM by DW
<<New callbacks for RSS file-writing, see radio.weblog.writeRssFile.
<<12/22/02; 12:57:37 PM by JES
<<Init user.radio.prefs.flOpenHomePageAtStartup to true, preserving current behavior.
<<12/13/02; 9:11:41 AM by DW
<<Initialize path for RSD file, user.radio.prefs.rsdXmlFilePath.
<<11/5/02; 10:36:26 AM by DW
<<Initialize the mail-from-aggregator feature -- call radio.aggregator.mailAggregator.init.
<<10/27/02; 3:46:08 AM by JES
<<On MacOS X, the default value of user.radio.prefs.flUseFileUrls is now false, since different browsers (and different versions of IE) support file URLs differently.
<<6/12/02; 12:31:54 AM by JES
<<Init the user.radio.callbacks.beforeWeblogPostForm and user.radio.callbacks.afterWeblogPostForm callback tables.
<<5/8/02; 9:42:38 AM by DW
<<Init user.radio.callbacks.writeRssFile.
<<4/9/02; 4:15:18 PM by DW
<<Initialize user.radio.prefs.flUpstreamDirectoryOpml.
<<3/3/02; 12:44:31 PM by DW
<<Init user.radio.prefs.flWebBugSimulator, call radio.aggregator.webBugSimulator.init.
<<2/25/02; 7:05:59 PM by JES
<<Initialize user.radio.prefs.weblogUpdates as a copy of weblogUpdates.data.
<<2/18/02; 5:35:38 PM by DW
<<Init user.radio.prefs.flUpstreamOnlyAfterPublish.
<<2/11/02; 5:03:56 PM by DW
<<Init user.radio.callbacks.firewall.
<<2/8/02; 3:07:50 PM by DW
<<Initialize user.radio.stats.dateLastUpdate.
<<1/21/02; 7:43:46 AM by DW
<<Init system.temp.radio.pingAfterUpstream.
<<1/10/02; 12:55:09 PM by JES
<<Changed ctStoriesOnNewsPage to 100.
<<1/9/02; 12:27:37 PM by PBS
<<New pref for disabling file:/// URLs: user.radio.prefs.flUseFileUrls.
<<1/8/02; 7:35:54 PM by JES
<<When not upgrading from 7.0.1, initialize user.radio.prefs.enclosures.flDownloadsEnabled to false.
<<1/8/02; 6:35:32 PM by JES
<<Set the correct path for user.radio.prefs.servicesXmlFilePath.
<<1/7/02; 11:19:37 PM by JES
<<Initialize user.radio.prefs.security.allowRemoteSystemPageAccess to false.
<<1/3/02; 12:35:17 PM by DW
<<Init user.radio.prefs.flEmptyLogsFolderOnStartup.
<<12/31/01; 6:39:42 PM by JES
<<Initialize user.radio.prefs.flLogThemeUpdates to true.
<<12/31/01; 1:19:03 AM by JES
<<Initialize user.radio.prefs.flUpdateThemesHourly to true.
<<12/23/01; 11:29:44 PM by JES
<<Init user.radio.prefs.browserBasedEditorSize to 9.
<<12/19/01; 3:05:22 PM by JES
<<Init user.radio.prefs.flLogWeblogPublish to false, instead of true, for new 7.1 (non-upgrading) users.
<<12/19/01; 11:01:41 AM by JES
<<Init user.radio.prefs.flNewsPageReturnAfterPost to false.
<<12/18/01; 9:00:27 AM by DW
<<Init user.radio.prefs.flLegacyUrlRedirects.
<<12/17/01; 7:07:33 PM by DW
<<Initialize user.radio.prefs.flBackupRendering and user.radio.prefs.renderingBackupFolder.
<<12/16/01; 8:59:19 AM by DW
<<Initialize user.radio.prefs.flBuildWeblogMonthNightly.
<<12/14/01; 8:34:15 PM by DW
<<Initialize user.radio.prefs.flWeblogArchive, user.radio.prefs.flLogWeblogArchive and user.radio.prefs.weblogArchiveFolder.
<<12/6/01; 8:26:09 PM by DW
<<Initialize user.radio.prefs.flLogWeblogsComPing.
<<12/5/01; 3:57:41 PM by JES
<<Only initialize websites.["#ftpSite"].url if user.radio.prefs.usernum is defined.
<<12/5/01; 12:37:23 AM by JES
<<Initialize items in the websites.["#ftpSite"] table.
<<12/2/01; 8:46:24 AM by DW
<<Initialize user.radio.settings.whenInstalled and user.radio.settings.flTrialVersion.
<<Initialize user.radio.prefs.serialnumber.
<<12/1/01; 11:33:14 AM by DW
<<Init user.radio.settings.flPasswordStoredInCloud to false.
<<11/27/01; 12:35:19 PM by DW
<<Init system.temp.radio.recentlyWrittenWwwFiles.
<<11/27/01; 12:17:39 PM by DW
<<Init user.callbacks.fileWriteWholeFile, user.callbacks.fileSetModified.
<<11/23/01; 4:42:14 PM by JES
<<Init user.radio.prefs.flNewsPageDeleteCheckboxesDefault. If user.radio.prefs.newsPageDeleteCheckboxesDefault, copy its value, otherwise init to false.
<<11/22/01; 7:52:22 PM by DW
<<Init user.radio.settings.statusCenter.
<<11/21/01; 11:00:06 AM by PBS
<<Init user.radio.prefs.upstream.secsBetweenChecks -- default is 10 seconds.
<<11/21/01; 1:27:30 AM by JES
<<Init user.radio.prefs.upstream.folder to the new upstream folder -- the www folder.
<<11/19/01; 2:52:57 PM by JES
<<Initialize user.radio.prefs.flSystemEditor to false.
<<11/9/01; 10:15:45 PM by DW
<<Initialize user.radio.prefs.flLogHotlistReload.
<<Comment initialization of user.radio.prefs.flLogNewSources.
<<11/5/01; 12:06:58 AM by JES
<<Init user.webserver.postFilters.addToServerLog.
<<10/31/01; 2:58:39 PM by JES
<<Commented out initialization of user.radio.stats.flNotifyWorkgroupOfNewStory.
<<10/28/01; 2:54:08 AM by JES
<<Moved initialization of writing services XML to after initializing user.radio.prefs.upstream. This is necessary because we need to call radio.weblog.init when initializing the path to save servicesXml, but radio.weblog.init references user.radio.prefs.upstream.folder.
<<10/21/01; 10:46:59 AM by JES
<<Init prefs for saving myServices.opml.
<<10/19/01; 4:53:48 AM by JES
<<Init user.radio.callbacks.downloadEnclosure.
<<10/19/01; 3:19:46 AM by JES
<<Init enclosure downloading prefs.
<<10/18/01; 6:07:14 PM by JES
<<Init user.radio.prefs.flBehindFirewall to false. Delete obsolete pref: user.radio.prefs.maxOutputItemsPerChannel.
<<10/18/01; 12:17:57 PM by JES
<<Make sure the port 5335 inetd daemon is running, if enabled, and not offline.
<<10/18/01; 2:27:13 AM by JES
<<Init user.radio.prefs.flLogNightlyUpdate.
<<Init user.radio.prefs.flReadGlobalGlossaryNightly.
<<Init user.radio.prefs.flReloadHotlistNightly.
<<10/16/01; 6:57:03 PM by DW
<<Initialize user.radio.prefs.defaultCloud.
<<Updated initialization of user.radio.prefs.rssCloud to point to radio.xmlstoragesystem.com.
<<10/16/01; 3:36:32 PM by JES
<<If user.callbacks.tcpSetOffline is undefined, create the table.
<<10/16/01; 12:56:36 PM by DW
<<system.temp.radio was being initialized twice.
<<Make sure the script in user.callbacks.tcpSetOffline is installed so we can ping the cloud when the user goes offline or comes back online. Also install script in user.callbacks.shutdown.
<<10/7/01; 7:58:28 PM by JES
<<Leave radio.data.flRebuildMenus in place, but set to false when rebuilding menus. This makes maintainence of the menus easier.
<<9/23/01; 4:11:14 AM by JES
<<If radio.data.flRebuildMenus is defined, rebuild the menu bar.
<<11/8/01; 11:30:08 PM by PBS
<<Set up callbacks for systemTray2Click and systemTrayRightClick.
bundle { //init prefs
if not defined (user.radio.prefs) {
new (tabletype, @user.radio.prefs)};
if not defined (user.radio.prefs.editors) {
new (tabletype, @user.radio.prefs.editors);
user.radio.prefs.editors.["text/x-opml"] = frontier.getprogrampath ()};
if not defined (user.radio.prefs.passwords) {
new (tabletype, @user.radio.prefs.passwords)};
if not defined (user.radio.prefs.imgFileCreator) {
user.radio.prefs.imgFileCreator = user.html.prefs.imgFileCreator};
if not defined (user.radio.prefs.wwwfolder) {
if defined (user.playlist.prefs.wwwfolder) {
user.radio.prefs.wwwfolder = user.playlist.prefs.wwwfolder}
else {
user.radio.prefs.wwwfolder = file.folderFromPath (Frontier.getFilePath ()) + "www" + file.getPathChar ()};
file.surefolder (user.radio.prefs.wwwfolder)};
if not defined (user.radio.prefs.typesToRender) {
new (tabletype, @user.radio.prefs.typesToRender);
<<user.radio.prefs.typesToRender.["text/html"] = true
user.radio.prefs.typesToRender.["text/plain"] = true;
user.radio.prefs.typesToRender.["text/x-opml"] = true};
if not defined (user.radio.prefs.indexFileNames) {
new (tabletype, @user.radio.prefs.indexFileNames);
user.radio.prefs.indexFileNames.fname1 = "index.opml";
user.radio.prefs.indexFileNames.fname2 = "index.txt";
user.radio.prefs.indexFileNames.fname3 = "index.html"};
if not defined (user.radio.prefs.browserBasedEditorSize) {
user.radio.prefs.browserBasedEditorSize = 9};
if not defined (user.radio.prefs.flBehindFirewall) {
user.radio.prefs.flBehindFirewall = false};
if not defined (user.radio.prefs.flDirectoryListings) {
user.radio.prefs.flDirectoryListings = true};
if not defined (user.radio.prefs.flTitleOnHomePage) {
user.radio.prefs.flTitleOnHomePage = false};
if not defined (user.radio.prefs.flAddToDailyLogDatabase) {
user.radio.prefs.flAddToDailyLogDatabase = true};
if not defined (user.radio.prefs.flLogWeblogPublish) {
if defined (myUserLandData.prefs.flLogBlogPublish) {
user.radio.prefs.flLogWeblogPublish = myUserLandData.prefs.flLogBlogPublish}
else {
user.radio.prefs.flLogWeblogPublish = false}};
if not defined (user.radio.prefs.flLogThemeUpdates) {
user.radio.prefs.flLogThemeUpdates = true};
<<if not defined (user.radio.prefs.flLogNewSources)
<<if defined (myUserLandData.prefs.flLogNewSources)
<<user.radio.prefs.flLogNewSources = myUserLandData.prefs.flLogNewSources
<<else
<<user.radio.prefs.flLogNewSources = true
if not defined (user.radio.prefs.flLogHotlistReload) {
user.radio.prefs.flLogHotlistReload = true};
if not defined (user.radio.prefs.flLogWeblogsComPing) {
user.radio.prefs.flLogWeblogsComPing = true};
if not defined (user.radio.prefs.flUpdateThemesHourly) {
user.radio.prefs.flUpdateThemesHourly = true};
if not defined (user.radio.prefs.flSystemEditor) {
user.radio.prefs.flSystemEditor = false};
if not defined (user.radio.prefs.maxDataFiles) {
user.radio.prefs.maxDataFiles = 3};
if not defined (user.radio.prefs.ctStoriesOnNewsPage) {
if defined (myUserLandData.prefs.ctStoriesOnHomePage) {
user.radio.prefs.ctStoriesOnNewsPage = myUserLandData.prefs.ctStoriesOnHomePage}
else {
user.radio.prefs.ctStoriesOnNewsPage = 100}};
if not defined (user.radio.prefs.flNewsPageDeleteCheckboxesDefault) {
if defined (user.radio.prefs.newsPageDeleteCheckboxesDefault) {
user.radio.prefs.flNewsPageDeleteCheckboxesDefault = user.radio.prefs.newsPageDeleteCheckboxesDefault;
delete (@user.radio.prefs.newsPageDeleteCheckboxesDefault)}
else {
user.radio.prefs.flNewsPageDeleteCheckboxesDefault = false}};
if not defined (user.radio.prefs.flNewsPageReturnAfterPost) {
user.radio.prefs.flNewsPageReturnAfterPost = false};
if not defined (user.radio.prefs.flCacheNewsItemsPage) {
if defined (myUserLandData.prefs.flCacheStoriesPage) {
user.radio.prefs.flCacheNewsItemsPage = myUserLandData.prefs.flCacheStoriesPage}
else {
user.radio.prefs.flCacheNewsItemsPage = true}};
if not defined (user.radio.prefs.flNewsPageSortNewestFirst) {
user.radio.prefs.flNewsPageSortNewestFirst=true};
if not defined (user.radio.prefs.flSaveDatabasesEveryMinute) {
user.radio.prefs.flSaveDatabasesEveryMinute = true};
if not defined (user.radio.prefs.weblogArchiveFolder) {
local (pc = file.getpathchar ());
user.radio.prefs.weblogArchiveFolder = frontier.pathstring + "backups" + pc + "weblogArchive" + pc};
if not defined (user.radio.prefs.flWeblogArchive) {
user.radio.prefs.flWeblogArchive = false};
if not defined (user.radio.prefs.flLogWeblogArchive) {
user.radio.prefs.flLogWeblogArchive = false};
if not defined (user.radio.prefs.flBuildWeblogMonthNightly) {
user.radio.prefs.flBuildWeblogMonthNightly = true};
if not defined (user.radio.prefs.flBackupRendering) {
user.radio.prefs.flBackupRendering = false};
if not defined (user.radio.prefs.renderingBackupFolder) {
local (pc = file.getpathchar ());
user.radio.prefs.renderingBackupFolder = frontier.pathstring + "backups" + pc + "rendering" + pc};
if not defined (user.radio.prefs.flLegacyUrlRedirects) {
user.radio.prefs.flLegacyUrlRedirects = true};
if not defined (user.radio.prefs.flEmptyLogsFolderOnStartup) {
user.radio.prefs.flEmptyLogsFolderOnStartup = true};
if not defined (user.radio.prefs.flUpstreamOnlyAfterPublish) {
user.radio.prefs.flUpstreamOnlyAfterPublish = false};
if not defined (user.radio.prefs.serialnumber) {
user.radio.prefs.serialnumber = ""};
if not defined (user.radio.prefs.flUseFileUrls) {
user.radio.prefs.flUseFileUrls = (not system.environment.isCarbon)};
if not defined (user.radio.prefs.flWebBugSimulator) {
user.radio.prefs.flWebBugSimulator = true};
if not defined (user.radio.prefs.flUpstreamDirectoryOpml) {
user.radio.prefs.flUpstreamDirectoryOpml = false};
if not defined (user.radio.prefs.flOpenHomePageAtStartup) {
user.radio.prefs.flOpenHomePageAtStartup = true};
bundle { //init defaultCloud
if not defined (user.radio.prefs.defaultCloud) {
new (tabletype, @user.radio.prefs.defaultCloud)};
if not defined (user.radio.prefs.defaultCloud.flDebug) {
user.radio.prefs.defaultCloud.flDebug = false};
if not defined (user.radio.prefs.defaultCloud.path) {
user.radio.prefs.defaultCloud.path = "/RPC2"};
if not defined (user.radio.prefs.defaultCloud.port) {
user.radio.prefs.defaultCloud.port = 80};
if not defined (user.radio.prefs.defaultCloud.protocol) {
user.radio.prefs.defaultCloud.protocol = "xml-rpc"};
if not defined (user.radio.prefs.defaultCloud.rpcPath) {
user.radio.prefs.defaultCloud.rpcPath = "/RPC2"};
if not defined (user.radio.prefs.defaultCloud.server) {
user.radio.prefs.defaultCloud.server = "radio.xmlstoragesystem.com"};
if not defined (user.radio.prefs.defaultCloud.soapAction) {
user.radio.prefs.defaultCloud.soapAction = "/xmlStorageSystem"}};
bundle { //init rssCloud
if not defined (user.radio.prefs.rssCloud) {
if defined (myUserLandData.prefs.rssCloud) {
user.radio.prefs.rssCloud = myUserLandData.prefs.rssCloud}
else {
new (tabletype, @user.radio.prefs.rssCloud)}};
if not defined (user.radio.prefs.rssCloud.server) {
user.radio.prefs.rssCloud.server = "radio.xmlstoragesystem.com"};
if not defined (user.radio.prefs.rssCloud.port) {
user.radio.prefs.rssCloud.port = 80};
if not defined (user.radio.prefs.rssCloud.registerProcedure) {
user.radio.prefs.rssCloud.registerProcedure = "xmlStorageSystem.rssPleaseNotify"};
if not defined (user.radio.prefs.rssCloud.path) {
user.radio.prefs.rssCloud.path = "/RPC2"};
if not defined (user.radio.prefs.rssCloud.protocol) {
user.radio.prefs.rssCloud.protocol = "xml-rpc"}};
bundle { //init flags for overnight tasks
if not defined (user.radio.prefs.flReloadHotlistNightly) {
user.radio.prefs.flReloadHotlistNightly = true};
if not defined (user.radio.prefs.flUpdateDatabaseNightly) {
if defined (myUserLandData.prefs.flUpdateNightly) {
user.radio.prefs.flUpdateDatabaseNightly = myUserLandData.prefs.flUpdateNightly}
else {
user.radio.prefs.flUpdateDatabaseNightly = true}};
if not defined (user.radio.prefs.flLogNightlyUpdate) {
if defined (myUserLandData.prefs.flLogNightlyUpdate) {
user.radio.prefs.flLogNightlyUpdate = myUserLandData.prefs.flLogNightlyUpdate}
else {
user.radio.prefs.flLogNightlyUpdate = true}}};
bundle { //init enclosure prefs
if not defined (user.radio.prefs.enclosures) {
new (tableType, @user.radio.prefs.enclosures)};
if not defined (user.radio.prefs.enclosures.flDownloadsEnabled) {
if defined (myUserLandData.prefs.flEnclosureDownloadsEnabled) {
user.radio.prefs.enclosures.flDownloadsEnabled = myUserLandData.prefs.flEnclosureDownloadsEnabled}
else {
user.radio.prefs.enclosures.flDownloadsEnabled = false}};
if not defined (user.radio.prefs.enclosures.flLogDownloads) {
if defined (myUserLandData.prefs.flLogEnclosureDownloads) {
user.radio.prefs.enclosures.flLogDownloads = myUserLandData.prefs.flLogEnclosureDownloads}
else {
user.radio.prefs.enclosures.flLogDownloads = true}};
if not defined (user.radio.prefs.enclosures.hourToStartDownloads) {
if defined (myUserLandData.prefs.hourToStartDownloads) {
user.radio.prefs.enclosures.hourToStartDownloads = myUserLandData.prefs.hourToStartDownloads}
else {
user.radio.prefs.enclosures.hourToStartDownloads = 1}};
if not defined (user.radio.prefs.enclosures.hourToStopDownloads) {
if defined (myUserLandData.prefs.hourToStopDownloads) {
user.radio.prefs.enclosures.hourToStopDownloads = myUserLandData.prefs.hourToStopDownloads}
else {
user.radio.prefs.enclosures.hourToStopDownloads = 1}};
if not defined (user.radio.prefs.enclosures.enclosureFolder) {
if defined (myUserLandData.prefs.enclosureFolder) {
user.radio.prefs.enclosures.enclosureFolder = myUserLandData.prefs.enclosureFolder}
else {
user.radio.prefs.enclosures.enclosureFolder = file.folderfrompath (frontier.getprogrampath ()) + "enclosures" + file.getpathchar ()}};
if not defined (user.radio.prefs.enclosures.flOutlineEnclosures) {
if defined (myUserLandData.prefs.flOutlineEnclosures) {
user.radio.prefs.enclosures.flOutlineEnclosures = myUserLandData.prefs.flOutlineEnclosures}
else {
user.radio.prefs.enclosures.flOutlineEnclosures = true}}};
bundle { //init weblogUpdates
if not defined (user.radio.prefs.weblogUpdates) {
user.radio.prefs.weblogUpdates = weblogUpdates.data}}};
bundle { //init drivers
if not defined (user.radio.drivers) {
new (tabletype, @user.radio.drivers)};
if not defined (user.radio.drivers.upstream) {
new (tabletype, @user.radio.drivers.upstream)}};
bundle { //thread prefs
if not defined (user.radio.prefs.thread) {
new (tabletype, @user.radio.prefs.thread)};
if not defined (user.radio.prefs.thread.secsBetweenChecks) {
if defined (user.playlist.data.upstream.secsBetweenChecks) {
user.radio.prefs.thread.secsBetweenChecks = user.playlist.data.upstream.secsBetweenChecks}
else {
user.radio.prefs.thread.secsBetweenChecks = 10}};
if not defined (user.radio.prefs.thread.minuteToDoHourlyScan) {
if defined (myUserLandData.prefs.minuteToDoHourlyScan) {
user.radio.prefs.thread.minuteToDoHourlyScan = myUserLandData.prefs.minuteToDoHourlyScan}
else {
user.radio.prefs.thread.minuteToDoHourlyScan = 0}};
if defined (radio.thread.agents.getServerCapabilities) { //obsolete
delete (@radio.thread.agents.getServerCapabilities)}};
bundle { //security prefs
if not defined (user.radio.prefs.security) {
if defined (myuserlanddata.prefs.security) {
user.radio.prefs.security = myuserlanddata.prefs.security}
else {
new (tabletype, @user.radio.prefs.security)}};
if not defined (user.radio.prefs.security.allowRemotePost) {
user.radio.prefs.security.allowRemotePost = false};
if not defined (user.radio.prefs.security.allowRemoteViewing) {
user.radio.prefs.security.allowRemoteViewing = false};
if not defined (user.radio.prefs.security.remotePassword) {
user.radio.prefs.security.remotePassword = ""};
if not defined (user.radio.prefs.security.remoteUsername) {
user.radio.prefs.security.remoteUsername = "visitor"};
if not defined (user.radio.prefs.security.requireRemoteLogin) {
user.radio.prefs.security.requireRemoteLogin = true};
if not defined (user.radio.prefs.security.allowRemoteSystemPageAccess) {
user.radio.prefs.security.allowRemoteSystemPageAccess = false}};
bundle { //glossary prefs
if not defined (user.radio.prefs.glossary) {
new (tableType, @user.radio.prefs.glossary)};
if not defined (user.radio.prefs.glossary.url) {
if defined (myUserLandData.prefs.glossaryUrl) {
user.radio.prefs.glossary.url = myUserLandData.prefs.glossaryUrl}
else {
user.radio.prefs.glossary.url = radio.data.globalGlossaryUrl}};
if not defined (user.radio.prefs.glossary.logging) {
if defined (myUserLandData.prefs.flLogGlossaryRead) {
user.radio.prefs.glossary.logging = myUserLandData.prefs.flLogGlossaryRead}
else {
user.radio.prefs.glossary.logging = true}};
if not defined (user.radio.prefs.glossary.flReadNightly) {
user.radio.prefs.glossary.flReadNightly = true}};
bundle { //responder
if string (user.webserver.responders.default.methods.any) == "on any (pta) {\r\treturn (playlist.filesystemResponder (pta))}" {
local (s = "on any (pta) {\r\treturn (radio.webserver.responder (pta))}");
script.newScriptObject (s, @user.webserver.responders.default.methods.any)}};
bundle { //port 5335 listener (calls builtins.webserver.server)
if not defined (user.inetd.config.http2) {
new (tableType, @user.inetd.config.http2);
user.inetd.config.http2.count = 10;
user.inetd.config.http2.daemon = @webserver.server;
user.inetd.config.http2.noWait = true;
user.inetd.config.http2.port = radio.data.daemonPort;
user.inetd.config.http2.startup = user.inetd.config.http.startup;
user.inetd.config.http2.timeout = 30};
if user.inetd.config.http2.startup {
if not tcp.isOffline () {
if not inetd.isDaemonRunning (@user.inetd.config.http2) {
inetd.startOne (@user.inetd.config.http2)}}}};
bundle { //upstreaming prefs
if not defined (user.radio.prefs.upstream) {
new (tabletype, @user.radio.prefs.upstream)};
if not defined (user.radio.prefs.upstream.enabled) {
if defined (user.playlist.data.upstream.enabled) {
user.radio.prefs.upstream.enabled = user.playlist.data.upstream.enabled}
else {
user.radio.prefs.upstream.enabled = false}};
if not defined (user.radio.prefs.upstream.folder) {
<<if defined (user.playlist.prefs.wwwFolder)
<<user.radio.prefs.upstream.folder = user.playlist.prefs.wwwFolder
<<else
<<user.radio.prefs.upstream.folder = radio.file.getSubFolder (radio.data.folderNames.wwwSystemSubfolderName + "/" + radio.data.folderNames.wwwUpstreamSubfolderName)
user.radio.prefs.upstream.folder = user.radio.prefs.wwwFolder;
file.surefolder (user.radio.prefs.upstream.folder)};
bundle { //new multi-server items
if not defined (user.radio.prefs.upstream.servers) {
new (tableType, @user.radio.prefs.upstream.servers)}};
if not defined (user.radio.prefs.upstream.logging) {
if defined (user.playlist.data.upstream.logging) {
user.radio.prefs.upstream.logging = user.playlist.data.upstream.logging}
else {
user.radio.prefs.upstream.logging = true}};
if not defined (user.radio.prefs.upstream.secsBetweenChecks) { //PBS 11/21/01
user.radio.prefs.upstream.secsBetweenChecks = 10};
<<bundle //obsolete items to port?
<<if not defined (user.radio.prefs.upstream.timeLastUpload)
<<user.radio.prefs.upstream.timeLastUpload = date (0)
<<if not defined (user.radio.prefs.upstream.timeLastServerCapabilities)
<<user.radio.prefs.upstream.timeLastServerCapabilities = date (0)
<<if not defined (user.radio.prefs.upstream.magicFolders)
<<if defined (user.playlist.data.upstream.magicFolders)
<<user.radio.prefs.upstream.magicFolders = user.playlist.data.upstream.magicFolders
<<else
<<new (tabletype, @user.radio.prefs.upstream.magicFolders)
<<if not defined (user.radio.prefs.upstream.xmlStorageSystem)
<<user.radio.prefs.upstream.xmlStorageSystem = xmlStorageSystem.data
bundle { //delete obsolete prefs
if defined (user.radio.prefs.upstream.account) {
delete (@user.radio.prefs.upstream.account)};
if defined (user.radio.prefs.upstream.timeoutSeconds) {
delete (@user.radio.prefs.upstream.timeoutSeconds)};
if defined (user.radio.prefs.upstream.maxFilesPerMessage) {
delete (@user.radio.prefs.upstream.maxFilesPerMessage)};
if defined (user.radio.prefs.upstream.packetSizeLimit) {
delete (@user.radio.prefs.upstream.packetSizeLimit)};
if defined (user.radio.settings.wwwUpstreamFolderUrl) { //obsolete
delete (@user.radio.settings.wwwUpstreamFolderUrl)};
if defined (user.radio.prefs.maxOutputItemsPerChannel) {
delete (@user.radio.prefs.maxOutputItemsPerChannel)}}};
bundle { //init servicesXml prefs -- must be done after upstreaming prefs
<<10/28/01; 2:53:25 AM by JES
<<This has to happen after upstreaming prefs because we need to call radio.weblog.init, which references user.radio.prefs.upstream.folder.
if not defined (user.radio.prefs.flSaveServicesXml) {
user.radio.prefs.flSaveServicesXml = true};
if not defined (user.radio.prefs.servicesXmlFilePath) {
local (pc = file.getPathChar ());
with radio.data.foldernames, radio.data.filenames {
user.radio.prefs.servicesXmlFilePath = radio.file.getRelativePath (user.radio.prefs.upstream.folder + wwwGemsSubFolderName + pc + servicesXmlFileName)}}};
<<with radio.data.foldernames, radio.data.filenames
<<user.radio.prefs.servicesXmlFilePath = radio.file.getRelativePath (user.radio.prefs.upstream.folder + "rss" + pc + "misc" + pc + servicesXmlFileName)
<<user.radio.prefs.servicesXmlFilePath = wwwSystemSubfolderName + "/" + wwwUpstreamSubfolderName + "/" + wwwRssCategorySubfolderName + "/misc/" + servicesXmlFileName
bundle { //init user.radio.prefs.rsdXmlFilePath, 12/13/02 by DW
if not defined (user.radio.prefs.rsdXmlFilePath) {
user.radio.prefs.rsdXmlFilePath = radio.file.getRelativePath (user.radio.prefs.upstream.folder + radio.data.foldernames.wwwGemsSubFolderName + file.getPathChar () + radio.data.fileNames.weblogRsdFileName)}};
bundle { //callbacks
if not defined (user.radio.callbacks) {
new (tabletype, @user.radio.callbacks)};
if not defined (user.radio.callbacks.addToDailyLogDatabase) {
if defined (user.playlist.callbacks.addToDailyLogDatabase) {
user.radio.callbacks.addToDailyLogDatabase = user.playlist.callbacks.addToDailyLogDatabase}
else {
new (tabletype, @user.radio.callbacks.addToDailyLogDatabase)}};
if not defined (user.radio.callbacks.upstream) {
if defined (user.playlist.callbacks.upstream) {
user.radio.callbacks.upstream = user.playlist.callbacks.upstream}
else {
new (tabletype, @user.radio.callbacks.upstream)}};
if not defined (user.radio.callbacks.upstreamFileWasDeleted) {
if defined (user.playlist.callbacks.upstreamFileWasDeleted) {
user.radio.callbacks.upstreamFileWasDeleted = user.playlist.callbacks.upstreamFileWasDeleted}
else {
new (tabletype, @user.radio.callbacks.upstreamFileWasDeleted)}};
if not defined (user.radio.callbacks.downloadEnclosure) {
if defined (myUserLandData.callbacks.downloadEnclosure) {
user.radio.callbacks.downloadEnclosure = myUserLandData.callbacks.downloadEnclosure}
else {
new (tableType, @user.radio.callbacks.downloadEnclosure)}};
if not defined (user.radio.callbacks.firewall) {
new (tableType, @user.radio.callbacks.firewall)};
if not defined (user.radio.callbacks.writeRssFile) {
new (tableType, @user.radio.callbacks.writeRssFile)};
if not defined (user.radio.callbacks.beforeWeblogPostForm) {
new (tableType, @user.radio.callbacks.beforeWeblogPostForm)};
if not defined (user.radio.callbacks.afterWeblogPostForm) {
new (tableType, @user.radio.callbacks.afterWeblogPostForm)};
bundle { //new callbacks, see radio.weblog.writeRssFile, 1/21/03 by DW
if not defined (user.radio.callbacks.writeRssNamespace) {
new (tableType, @user.radio.callbacks.writeRssNamespace)};
if not defined (user.radio.callbacks.writeRssChannelElement) {
new (tableType, @user.radio.callbacks.writeRssChannelElement)};
if not defined (user.radio.callbacks.writeRssItemElement) {
new (tableType, @user.radio.callbacks.writeRssItemElement)}}};
bundle { //init settings
if not defined (user.radio.settings) {
new (tabletype, @user.radio.settings)};
if defined (user.radio.settings.flControlPanelExpanded) { //obsolete
delete (@user.radio.settings.flControlPanelExpanded)};
if not defined (user.radio.settings.minuteToDoNightlyTasks) {
user.radio.settings.minuteToDoNightlyTasks = random (5, 55)};
if not defined (user.radio.settings.files) {
new (tabletype, @user.radio.settings.files)};
if not defined (user.radio.settings.statusCenter) {
new (tabletype, @user.radio.settings.statusCenter)};
if not defined (user.radio.settings.statusCenter.whenMessageOfTheDayChanged) {
user.radio.settings.statusCenter.whenMessageOfTheDayChanged = date (0)};
if not defined (user.radio.settings.statusCenter.messageOfTheDay) {
user.radio.settings.statusCenter.messageOfTheDay = ""};
if not defined (user.radio.settings.flPasswordStoredInCloud) {
user.radio.settings.flPasswordStoredInCloud = false};
if not defined (user.radio.settings.whenInstalled) {
user.radio.settings.whenInstalled = clock.now ()};
if not defined (user.radio.settings.flTrialVersion) { //until a serial number is entered, all copies are Trial versions
user.radio.settings.flTrialVersion = true};
if not defined (user.radio.settings.flExpired) {
user.radio.settings.flExpired = false}};
bundle { //init stats
if not defined (user.radio.stats) {
new (tabletype, @user.radio.stats)};
if not defined (user.radio.stats.dateLastImageSave) {
user.radio.stats.dateLastImageSave = date (0)};
if not defined (user.radio.stats.dateLastHit) {
user.radio.stats.dateLastHit = date (0)};
if not defined (user.radio.stats.dateLastImageSave) {
user.radio.stats.dateLastImageSave = date (0)};
if not defined (user.radio.stats.dateLastHelpSave) {
user.radio.stats.dateLastHelpSave = date (0)};
if not defined (user.radio.stats.flNewStoryOpensInOutliner) {
user.radio.stats.flNewStoryOpensInOutliner = false};
if not defined (user.radio.stats.dateLastUpdate) {
user.radio.stats.dateLastUpdate = date (0)}};
<<if not defined (user.radio.stats.flNotifyWorkgroupOfNewStory)
<<user.radio.stats.flNotifyWorkgroupOfNewStory = false
bundle { //init temp table
if not defined (system.temp.radio) {
new (tabletype, @system.temp.radio)};
if not defined (system.temp.radio.hwCache) {
new (tabletype, @system.temp.radio.hwCache)};
if not defined (system.temp.radio.menus) {
new (tabletype, @system.temp.radio.menus)};
if not defined (system.temp.radio.datafiles) {
new (tabletype, @system.temp.radio.datafiles)};
if not defined (system.temp.radio.htmlCache) {
new (tabletype, @system.temp.radio.htmlCache)};
if not defined (system.temp.radio.upstreamSpecCache) {
new (tabletype, @system.temp.radio.upstreamSpecCache)};
if not defined (system.temp.radio.recentlyChangedFolders) {
new (tabletype, @system.temp.radio.recentlyChangedFolders)};
if not defined (system.temp.radio.misc) {
new (tabletype, @system.temp.radio.misc)};
if not defined (system.temp.radio.stats) {
new (tabletype, @system.temp.radio.stats)};
if not defined (system.temp.radio.stats.agentsTicks) {
new (tabletype, @system.temp.radio.stats.agentsTicks)};
if not defined (system.temp.radio.recentlyWrittenWwwFiles) {
new (tabletype, @system.temp.radio.recentlyWrittenWwwFiles)};
if not defined (system.temp.radio.pingAfterUpstream) {
new (tabletype, @system.temp.radio.pingAfterUpstream)}};
bundle { //init the thread
if not defined (user.scheduler.threads.radio) {
user.scheduler.threads.radio = @radio.thread}};
bundle { //init callbacks
if not defined (user.callbacks.tcpSetOffline) {
new (tableType, @user.callbacks.tcpSetOffline)};
if not defined (user.callbacks.tcpSetOffline.radio) {
user.callbacks.tcpSetOffline.radio = @radio.callbacks.tcpSetOffline};
if not defined (user.callbacks.shutdown.radio) {
user.callbacks.shutdown.radio = @radio.callbacks.shutdown};
if not defined (user.callbacks.systemTrayIcon2Click) { //PBS 11/08/01: new system tray callbacks
new (tableType, @user.callbacks.systemTrayIcon2Click)};
if not defined (user.callbacks.systemTrayIcon2Click.radio) {
user.callbacks.systemTrayIcon2Click.radio = @radio.callbacks.systemTrayIcon2Click};
if not defined (user.callbacks.systemTrayIconRightClick) {
new (tableType, @user.callbacks.systemTrayIconRightClick)};
if not defined (user.callbacks.systemTrayIconRightClick.radio) {
user.callbacks.systemTrayIconRightClick.radio = @radio.callbacks.systemTrayIconRightClick};
if not defined (user.callbacks.fileWriteWholeFile) {
new (tabletype, @user.callbacks.fileWriteWholeFile)};
if not defined (user.callbacks.fileWriteWholeFile.radio) {
user.callbacks.fileWriteWholeFile.radio = @radio.file.writeFileCallback};
if not defined (user.callbacks.fileSetModified) {
new (tabletype, @user.callbacks.fileSetModified)};
if not defined (user.callbacks.fileSetModified.radio) {
user.callbacks.fileSetModified.radio = @radio.file.writeFileCallback}};
bundle { //init other things
if not defined (user.webserver.prefs.ext2MIME.opml) {
user.webserver.prefs.ext2MIME.opml = "text/x-opml"};
if not defined (user.webserver.postFilters.addToServerLog) {
user.webserver.postFilters.addToServerLog = @radio.log.addToServerLog};
bundle { //init websites.["#ftpSite"] items
local (adrftpsite = @websites.["#ftpSite"]);
if defined (adrftpsite^) {
if adrftpsite^.folder == "" {
adrftpsite^.folder = user.radio.prefs.wwwFolder};
if adrftpsite^.url == "" {
if defined (user.radio.prefs.usernum) {
adrftpsite^.url = string.replace (radio.data.cloudUrls.homePage, "<%usernum%>", string.padWithZeros (user.radio.prefs.usernum, 7))}}}};
radio.aggregator.webBugSimulator.init ();
radio.aggregator.mailAggregator.init ()};
bundle { //perform any necessary upgrades
local (flrebuildmenus = false);
if defined (user.menus.playlist) {
delete (@user.menus.playlist);
flrebuildmenus = true};
if not defined (user.menus.radio) {
user.menus.radio = @radio.menu;
flrebuildmenus = true};
if defined (radio.data.flRebuildMenus) {
if radio.data.flRebuildMenus {
menu.noSuite (); //reset the menu bar, no suite running
radio.data.flRebuildMenus = false}};
if flrebuildmenus {
system.menus.buildMenuBar ()}}
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.