Monday, November 08, 2010 at 12:05 AM.
system.verbs.builtins.radio.outliner.init
<<Changes <<8/26/02; 10:37:12 PM by JES <<Moved user.radio.outliner.prefs.enabled to user.radio.outliner.prefs.flPollingEnabled. This flag now represents only whether to poll for changes. <<New pref: user.radio.outliner.prefs.messaging.flEnabled. Defaults to false. Delete obsolete (never used) settings in user.radio.outliner.prefs.messaging. <<Register IM-RPI handlers at user.im.rpiHandlers.radioOutliner. <<Make sure user.radio.outliner.subscribers exists. <<5/12/02; 5:23:22 PM by DW <<Init user.radio.outliner.prefs.enabled. <<5/6/02; 3:38:13 PM by DW <<Initialize new sub-table, user.radio.outliner.prefs.messaging, with sub-items: drivername, screenname, password. <<drivername in the first release is aim., and screenname/password identify an AIM user. <<4/5/02; 2:02:57 PM by JES <<Make sure the user.callbacks.opInsert table exists before attempting to install the callback. <<4/2/02; 1:18:47 PM by DW <<Link in upstream callback. <<3/29/02; 1:31:36 AM by JES <<Register the buddySubscriberElement nodeType. <<3/27/02; 7:18:53 PM by JES <<Initialize notification prefs. <<3/27/02; 6:29:47 PM by JES <<Install the RPC handlers. <<3/27/02; 4:30:29 PM by JES <<Reset whenLastSubscribe for all the subscriptions to date (0), once. There was a bug which caused the dates to be incorrect, which would have meant a 24 hour lag for the opml pub/sub feature to work. <<3/25/02; 10:13:19 PM by JES <<Register the opInsert callback for my outline. <<3/25/02; 8:58:31 PM by JES <<Initialize flPlaySounds pref to true. <<3/25/02; 4:24:40 PM by JES <<Initialize callbacks table. <<3/22/02; 7:09:57 PM by JES <<Delete unnecessary nodeType regsitrations. Make sure that the address that *is* installed is correct. <<3/13/02; 8:03:52 AM by DW <<Created. if not defined (user.radio.outliner) { new (tabletype, @user.radio.outliner)}; bundle { //init prefs if not defined (user.radio.outliner.prefs) { new (tabletype, @user.radio.outliner.prefs)}; <<if not defined (user.radio.outliner.prefs.enabled) <<user.radio.outliner.prefs.enabled = false if not defined (user.radio.outliner.prefs.flPollingEnabled) { if defined (user.radio.outliner.prefs.enabled) { user.radio.outliner.prefs.flPollingEnabled = user.radio.outliner.prefs.enabled} else { user.radio.outliner.prefs.flPollingEnabled = false}}; if defined (user.radio.outliner.prefs.enabled) { delete (@user.radio.outliner.prefs.enabled)}; if not defined (user.radio.outliner.prefs.publicFolder) { user.radio.outliner.prefs.publicFolder = user.radio.prefs.wwwfolder + "instantOutliner" + file.getpathchar ()}; if not defined (user.radio.outliner.prefs.ctSecsBetweenPolls) { user.radio.outliner.prefs.ctSecsBetweenPolls = 60}; if not defined (user.radio.outliner.prefs.timeoutSecs) { user.radio.outliner.prefs.timeoutSecs = 15}; if not defined (user.radio.outliner.prefs.flPlaySounds) { user.radio.outliner.prefs.flPlaySounds = true}; if not defined (user.radio.outliner.prefs.flLogNotificationRequests) { user.radio.outliner.prefs.flLogNotificationRequests = true}; if not defined (user.radio.outliner.prefs.flLogNotifications) { user.radio.outliner.prefs.flLogNotifications = true}; bundle { //messaging sub-table if not defined (user.radio.outliner.prefs.messaging) { new (tabletype, @user.radio.outliner.prefs.messaging)}; if not defined (user.radio.outliner.prefs.messaging.flEnabled) { user.radio.outliner.prefs.messaging.flEnabled = false}; if not defined (user.radio.outliner.prefs.messaging.flAimEnabled) { user.radio.outliner.prefs.messaging.flAimEnabled = false}; if not defined (user.radio.outliner.prefs.messaging.flJabberEnabled) { user.radio.outliner.prefs.messaging.flJabberEnabled = false}; <<if not defined (user.radio.outliner.prefs.messaging.drivername) <<user.radio.outliner.prefs.messaging.drivername = "aim" <<if not defined (user.radio.outliner.prefs.messaging.screenname) <<user.radio.outliner.prefs.messaging.screenname = "" <<if not defined (user.radio.outliner.prefs.messaging.password) <<user.radio.outliner.prefs.messaging.password = "" bundle { //delete old sub-items if defined (user.radio.outliner.prefs.messaging.drivername) { delete (@user.radio.outliner.prefs.messaging.drivername)}; if defined (user.radio.outliner.prefs.messaging.screenname) { delete (@user.radio.outliner.prefs.messaging.screenname)}; if defined (user.radio.outliner.prefs.messaging.password) { delete (@user.radio.outliner.prefs.messaging.password)}}}}; bundle { //init subscriptions if not defined (user.radio.outliner.subscriptions) { new (tabletype, @user.radio.outliner.subscriptions)}}; bundle { //init subscribers if not defined (user.radio.outliner.subscribers) { new (tabletype, @user.radio.outliner.subscribers)}}; bundle { //init stats if not defined (user.radio.outliner.stats) { new (tabletype, @user.radio.outliner.stats)}; if not defined (user.radio.outliner.stats.flNewBuddyOutline) { user.radio.outliner.stats.flNewBuddyOutline = true}}; bundle { //init callbacks if not defined (user.radio.outliner.callbacks) { new (tableType, @user.radio.outliner.callbacks)}; if not defined (user.radio.outliner.callbacks.subscriptionChanged) { new (tableType, @user.radio.outliner.callbacks.subscriptionChanged)}}; bundle { //install opInsert callback if not defined (user.callbacks.opInsert) { //if the outliner has never been used, this table might not exist new (tableType, @user.callbacks.opInsert)}; if not defined (user.callbacks.opInsert.radioOutliner) { user.callbacks.opInsert.radioOutliner = @radio.outliner.callbacks.opInsert}}; bundle { //install upstream callback if not defined (user.radio.callbacks.upstream.radioOutliner) { user.radio.callbacks.upstream.radioOutliner = @radio.outliner.callbacks.upstream}}; bundle { //buddy outline if not defined (user.radio.outliner.buddies) { new (outlinetype, @user.radio.outliner.buddies); user.radio.outliner.stats.flNewBuddyOutline = true}}; bundle { //register nodetypes if defined (Frontier.tools.data.nodeTypes.buddyOutlineElement) { if Frontier.tools.data.nodeTypes.buddyOutlineElement == @radio.outliner.buddyNode { //delete obsolete value delete (@Frontier.tools.data.nodeTypes.buddyOutlineElement)}}; if not defined (Frontier.tools.data.nodeTypes.buddyOutlineElement) { Frontier.tools.data.nodeTypes.buddyOutlineElement = @radio.outliner.buddyOutlineElement}; if not defined (Frontier.tools.data.nodeTypes.buddySubscriberElement) { Frontier.tools.data.nodeTypes.buddySubscriberElement = @radio.outliner.buddySubscriberElement}}; bundle { //install RPC handlers if not defined (user.betty.rpcHandlers.radioOutliner) { user.betty.rpcHandlers.radioOutliner = @radio.outliner.rpcHandlers}; if not defined (user.soap.rpcHandlers.radioOutliner) { user.soap.rpcHandlers.radioOutliner = @radio.outliner.rpcHandlers}}; bundle { //install IM RPI handlers if not defined (user.im) { tcp.im.init ()}; if not defined (user.im.rpiHandlers.radioOutliner) { user.im.rpiHandlers.radioOutliner = @radio.outliner.rpiHandlers}}; bundle { //delete obsolete stuff if defined (Frontier.tools.data.nodeTypes.buddyNode) { delete (@Frontier.tools.data.nodeTypes.buddyNode)}; if defined (user.tools.nodeTypes.buddyNode) { delete (@user.tools.nodeTypes.buddyNode)}; if defined (user.tools.nodeTypes.buddyOutlineElement) { delete (@user.tools.nodeTypes.buddyOutlineElement)}}; bundle { //misc if not defined (user.radio.outliner.stats.flResetSubscriptions) { user.radio.outliner.stats.flResetSubscriptions = true}; if user.radio.outliner.stats.flResetSubscriptions { local (adr); for adr in @user.radio.outliner.subscriptions { adr^.whenLastSubscribe = date (0)}; user.radio.outliner.stats.flResetSubscriptions = false}}; return (@user.radio.outliner)
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.