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.