|
From: creedon <icr...@us...> - 2006-01-08 01:38:49
|
Update of /cvsroot/frontierkernel/odbs/frontierRoot/system/verbs/builtins/xml/aggregator In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv2944 Modified Files: init Log Message: if enabled is false, delete user.scheduler.everyMinute.aggregator, prevent aggregatorData.root from opening if its not enabled script format tweaks enabled is false by default Index: init =================================================================== RCS file: /cvsroot/frontierkernel/odbs/frontierRoot/system/verbs/builtins/xml/aggregator/init,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** init 26 Mar 2005 19:44:16 -0000 1.1.1.1 --- init 8 Jan 2006 01:38:32 -0000 1.2 *************** *** 1,3 **** FrontierVcsFile:1:scpt:system.verbs.builtins.xml.aggregator.init ! ÇChanges Ç3/5/03; 1:43:51 PM by JES ÇIn Frontier, initialize adrdata^.prefs.flSaveItemData to true instead of false -- it's needed for features of a modern news aggregator like comment links and permalinks. Ç11/14/02; 7:06:08 PM by JES ÇInitialize adrdata^.prefs.flSaveItemData. Ç4/5/02; 7:50:24 PM by DW ÇInitialize callback table for scripts that run when a user unsubscribes from afeed. Ç4/5/02; 4:39:38 PM by DW ÇInitialize callback table for scripts that run when a user subscribes to a new feed. Ç1/23/02; 3:38:57 PM by JES ÇIf the aggregator is enabled, always make sure that the everyMinute scheduler script is installed. This fixes a problem in Radio where after a re-install, the aggregator would stop working. Ç1/12/02; 8:46:05 PM by DW ÇInstead of initializing aggregatorData.prefs.minuteToRead to 0, initialize it to a random number between 5 and 55. There are already too many people scanning at 0, and I offset by 5 because clocks are not generally synchronized. Thanks to Aaron Swartz for this suggestion. Çhttp://groups.yahoo.com/group/radio-userland/message/11005 Ç12/27/01; 6:00:32 PM by PBS ÇSet up flBehindFirewall pref on Frontier. In Radio the pref is at user.radio.prefs.flBehindFirewall. In Frontier the pref is in the adrdata^.prefs table. Ç12/4/01; 7:20:44 PM by DW ÇInitialize callback tables for pre and post scan. Ç12/3/01; 5:50:18 PM by DW ÇInitialize aggregatorData.prefs.maxErrorsBeforeAutoUnsubscribe. Ç11/30/01; 1:52:55 PM by DW ÇInitialize prefs.flScanOnStartup. Ç11/7/01; 6:52:19 PM by DW ÇDon't initialize system.temp.aggregator. ÇInitialize adrdata^.stats.lastRun, which contains all the fields of the old temp table, ctThreads, lastChannelRead, ctNewStories, and status. Ç10/19/01; 7:51:37 PM by DW ÇInitialize stuff for hourly archives. local (adrdata = frontier.openDataFile ("aggregatorData")); bundle { //stats if not defined (adrdata^.stats) { new (tabletype, @adrdata^.stats)}; if not defined (adrdata^.stats.lastRun) { new (tabletype, @adrdata^.stats.lastRun)}; if not defined (adrdata^.stats.lastRun.ctThreads) { adrdata^.stats.lastRun.ctThreads = 0}; if not defined (adrdata^.stats.lastRun.ctNewStories) { adrdata^.stats.lastRun.ctNewStories = 0}; if not defined (adrdata^.stats.lastRun.lastChannelRead) { adrdata^.stats.lastRun.lastChannelRead = ""}; if not defined (adrdata^.stats.lastRun.status) { adrdata^.stats.lastRun.status = ""}; if not defined (adrdata^.stats.lastRun.whenComplete) { adrdata^.stats.lastRun.whenComplete = date (0)}; if not defined (adrdata^.stats.lastRun.flScanRunningNow) { adrdata^.stats.lastRun.flScanRunningNow = false}}; bundle { //prefs if not defined (adrdata^.prefs) { new (tabletype, @adrdata^.prefs)}; if not defined (adrdata^.prefs.flLogHourlyScan) { adrdata^.prefs.flLogHourlyScan = true}; if not defined (adrdata^.prefs.flLogNotification) { adrdata^.prefs.flLogNotification = true}; if not defined (adrdata^.prefs.flChannelChange) { adrdata^.prefs.flChannelChange = true}; if not defined (adrdata^.prefs.maxThreads) { if defined (myUserLandData.prefs.maxThreads) { adrdata^.prefs.maxThreads = myUserLandData.prefs.maxThreads} else { adrdata^.prefs.maxThreads = 2}}; if not defined (adrdata^.prefs.appSignatureUrl) { adrdata^.prefs.appSignatureUrl = "http://frontier.userland.com/xmlAggregator"}; if not defined (adrdata^.prefs.nextStoryNum) { if defined (myUserLandData.prefs.nextStoryNum) { adrdata^.prefs.nextStoryNum = myUserLandData.prefs.nextStoryNum} else { adrdata^.prefs.nextStoryNum = 1}}; if not defined (adrdata^.prefs.enabled) { adrdata^.prefs.enabled = true}; if not defined (adrdata^.prefs.minuteToRead) { if defined (myUserLandData.prefs.minuteToDoHourlyScan) { adrdata^.prefs.minuteToRead = myUserLandData.prefs.minuteToDoHourlyScan} else { adrdata^.prefs.minuteToRead = random (5, 55)}}; if not defined (adrdata^.prefs.minuteToArchive) { if defined (myUserLandData.prefs.minuteToArchive) { adrdata^.prefs.minuteToArchive = myUserLandData.prefs.minuteToArchive} else { adrdata^.prefs.minuteToArchive = 58}}; if not defined (adrdata^.prefs.hoursBeforeArchive) { if defined (myUserLandData.prefs.hoursBetweenArchives) { adrdata^.prefs.hoursBeforeArchive = myUserLandData.prefs.hoursBetweenArchives} else { adrdata^.prefs.hoursBeforeArchive = 24}}; if not defined (adrdata^.prefs.flArchive) { if defined (myUserLandData.prefs.flArchiveStoriesNightly) { adrdata^.prefs.flArchive = myUserLandData.prefs.flArchiveStoriesNightly} else { adrdata^.prefs.flArchive = true}}; if not defined (adrdata^.prefs.flSaveArchiveXmlFiles) { adrdata^.prefs.flSaveArchiveXmlFiles = false}; if not defined (adrdata^.prefs.flLogArchiveStories) { if defined (myUserLandData.prefs.flLogArchiveStories) { adrdata^.prefs.flLogArchiveStories = myUserLandData.prefs.flLogArchiveStories} else { adrdata^.prefs.flLogArchiveStories = true}}; if not defined (adrdata^.prefs.flScanOnStartup) { adrdata^.prefs.flScanOnStartup = false}; if not defined (adrdata^.prefs.maxErrorsBeforeAutoUnsubscribe) { adrdata^.prefs.maxErrorsBeforeAutoUnsubscribe = 24 * 2}; if not defined (adrdata^.prefs.flSaveItemData) { //JES 11/14/02: passed to xml.rss.readService adrdata^.prefs.flSaveItemData = true; //JES 3/4/03: always init to true -- needed for "modern" aggregator features to work Çbundle //old code/notes Ç11/14/02 JES: The aggregator XML-RPC API returns the title and link along with the item. xml.rss.readService takes an optional parameter, flSaveData, which determines whether to save the title and link in the item sub-table of the compilation. ÇPreviously, the default value for this parameter was false. In Radio, it needs to be passed in as true, so that the aggregator API will get the right data. ÇWe initialize to true in Radio, and false in Frontier. Then in xml.aggregator.subscribeService and xml.aggregator.readService, we pass the value of the pref. Çif system.environment.isRadio Çadrdata^.prefs.flSaveItemData = true Çelse Çadrdata^.prefs.flSaveItemData = false}; if not system.environment.isRadio { //PBS 12/27/01: set up flBehindFirewall pref on Frontier ÇIn Radio the pref is at user.radio.prefs.flBehindFirewall. In Frontier the pref is in the adrdata^.prefs table. if not defined (adrdata^.prefs.flBehindFirewall) { adrdata^.prefs.flBehindFirewall = false}}}; bundle { //services if not defined (adrdata^.services) { if defined (myUserLandData.services) { adrdata^.services = myUserLandData.services} else { new (tabletype, @adrdata^.services)}}}; bundle { //stories if not defined (adrdata^.stories) { if defined (myUserLandData.stories) { adrdata^.stories = myUserLandData.stories} else { new (tabletype, @adrdata^.stories)}}}; bundle { //trash if not defined (adrdata^.trash) { new (tabletype, @adrdata^.trash)}}; bundle { //cache if not defined (adrdata^.cache) { new (tabletype, @adrdata^.cache)}}; bundle { //settings if not defined (adrdata^.settings) { new (tabletype, @adrdata^.settings)}}; bundle { //callbacks if not defined (adrdata^.callbacks) { new (tabletype, @adrdata^.callbacks)}; if not defined (adrdata^.callbacks.storyArrived) { if defined (myUserLandData.callbacks.storyArrived) { adrdata^.callbacks.storyArrived = myUserLandData.callbacks.storyArrived} else { new (tabletype, @adrdata^.callbacks.storyArrived)}}; if not defined (adrdata^.callbacks.preScan) { new (tabletype, @adrdata^.callbacks.preScan)}; if not defined (adrdata^.callbacks.postScan) { new (tabletype, @adrdata^.callbacks.postScan)}; if not defined (adrdata^.callbacks.subscribeService) { new (tabletype, @adrdata^.callbacks.subscribeService)}; if not defined (adrdata^.callbacks.unsubscribeService) { new (tabletype, @adrdata^.callbacks.unsubscribeService)}}; bundle { //rpcHandlers if not defined (user.betty.rpcHandlers.aggregator) { user.betty.rpcHandlers.aggregator = @xml.aggregator.rpcHandlers}; if not defined (user.betty.soapHandlers.aggregator) { user.soap.rpcHandlers.aggregator = @xml.aggregator.rpcHandlers}}; bundle { //make sure everyMinute script is installed, if necessary Çif not defined (adrdata^.settings.flInstalled) if adrdata^.prefs.enabled { if not defined (user.scheduler.everyMinute.aggregator) { user.scheduler.everyMinute.aggregator = @xml.aggregator.everyMinute; }}};Çadrdata^.settings.flInstalled = true //only do this once Çbundle //system.temp.aggregator Çif not defined (system.temp.aggregator) Çnew (tabletype, @system.temp.aggregator) Çif not defined (system.temp.aggregator.ctNewStories) Çsystem.temp.aggregator.ctNewStories = 0 Çif not defined (system.temp.aggregator.ctThreads) Çsystem.temp.aggregator.ctThreads = 0 Çif not defined (system.temp.aggregator.lastChannelRead) Çsystem.temp.aggregator.lastChannelRead = "" Çif not defined (system.temp.aggregator.status) Çsystem.temp.aggregator.status = "" return (adrdata) \ No newline at end of file --- 1,3 ---- FrontierVcsFile:1:scpt:system.verbs.builtins.xml.aggregator.init ! ÇChanges Ç1/7/06; 4:18:46 PM by TAC Çif enabled is false, delete user.scheduler.everyMinute.aggregator, prevent aggregatorData.root from opening if its not enabled Çscript format tweaks Çenabled is false by default Ç3/5/03; 1:43:51 PM by JES ÇIn Frontier, initialize adrData^.prefs.flSaveItemData to true instead of false -- it's needed for features of a modern news aggregator like comment links and permalinks. Ç2002 Ç11/14/02; 7:06:08 PM by JES ÇInitialize adrData^.prefs.flSaveItemData. Ç4/5/02; 7:50:24 PM by DW ÇInitialize callback table for scripts that run when a user unsubscribes from afeed. Ç4/5/02; 4:39:38 PM by DW ÇInitialize callback table for scripts that run when a user subscribes to a new feed. Ç1/23/02; 3:38:57 PM by JES ÇIf the aggregator is enabled, always make sure that the everyMinute scheduler script is installed. This fixes a problem in Radio where after a re-install, the aggregator would stop working. Ç1/12/02; 8:46:05 PM by DW ÇInstead of initializing aggregatorData.prefs.minuteToRead to 0, initialize it to a random number between 5 and 55. There are already too many people scanning at 0, and I offset by 5 because clocks are not generally synchronized. Thanks to Aaron Swartz for this suggestion. Çhttp://groups.yahoo.com/group/radio-userland/message/11005 Ç2001 Ç12/27/01; 6:00:32 PM by PBS ÇSet up flBehindFirewall pref on Frontier. In Radio the pref is at user.radio.prefs.flBehindFirewall. In Frontier the pref is in the adrData^.prefs table. Ç12/4/01; 7:20:44 PM by DW ÇInitialize callback tables for pre and post scan. Ç12/3/01; 5:50:18 PM by DW ÇInitialize aggregatorData.prefs.maxErrorsBeforeAutoUnsubscribe. Ç11/30/01; 1:52:55 PM by DW ÇInitialize prefs.flScanOnStartup. Ç11/7/01; 6:52:19 PM by DW ÇDon't initialize system.temp.aggregator. ÇInitialize adrData^.stats.lastRun, which contains all the fields of the old temp table, ctThreads, lastChannelRead, ctNewStories, and status. Ç10/19/01; 7:51:37 PM by DW ÇInitialize stuff for hourly archives. local (adrData = frontier.openDataFile ("aggregatorData")); bundle { //stats if not defined (adrData^.stats) { new (tabletype, @adrData^.stats)}; if not defined (adrData^.stats.lastRun) { new (tabletype, @adrData^.stats.lastRun)}; if not defined (adrData^.stats.lastRun.ctThreads) { adrData^.stats.lastRun.ctThreads = 0}; if not defined (adrData^.stats.lastRun.ctNewStories) { adrData^.stats.lastRun.ctNewStories = 0}; if not defined (adrData^.stats.lastRun.lastChannelRead) { adrData^.stats.lastRun.lastChannelRead = ""}; if not defined (adrData^.stats.lastRun.status) { adrData^.stats.lastRun.status = ""}; if not defined (adrData^.stats.lastRun.whenComplete) { adrData^.stats.lastRun.whenComplete = date (0)}; if not defined (adrData^.stats.lastRun.flScanRunningNow) { adrData^.stats.lastRun.flScanRunningNow = false}}; bundle { //prefs if not defined (adrData^.prefs) { new (tabletype, @adrData^.prefs)}; if not defined (adrData^.prefs.flLogHourlyScan) { adrData^.prefs.flLogHourlyScan = true}; if not defined (adrData^.prefs.flLogNotification) { adrData^.prefs.flLogNotification = true}; if not defined (adrData^.prefs.flChannelChange) { adrData^.prefs.flChannelChange = true}; if not defined (adrData^.prefs.maxThreads) { if defined (myUserLandData.prefs.maxThreads) { adrData^.prefs.maxThreads = myUserLandData.prefs.maxThreads} else { adrData^.prefs.maxThreads = 2}}; if not defined (adrData^.prefs.appSignatureUrl) { adrData^.prefs.appSignatureUrl = "http://frontier.userland.com/xmlAggregator"}; if not defined (adrData^.prefs.nextStoryNum) { if defined (myUserLandData.prefs.nextStoryNum) { adrData^.prefs.nextStoryNum = myUserLandData.prefs.nextStoryNum} else { adrData^.prefs.nextStoryNum = 1}}; if not defined (adrData^.prefs.enabled) { adrData^.prefs.enabled = false}; if not defined (adrData^.prefs.minuteToRead) { if defined (myUserLandData.prefs.minuteToDoHourlyScan) { adrData^.prefs.minuteToRead = myUserLandData.prefs.minuteToDoHourlyScan} else { adrData^.prefs.minuteToRead = random (5, 55)}}; if not defined (adrData^.prefs.minuteToArchive) { if defined (myUserLandData.prefs.minuteToArchive) { adrData^.prefs.minuteToArchive = myUserLandData.prefs.minuteToArchive} else { adrData^.prefs.minuteToArchive = 58}}; if not defined (adrData^.prefs.hoursBeforeArchive) { if defined (myUserLandData.prefs.hoursBetweenArchives) { adrData^.prefs.hoursBeforeArchive = myUserLandData.prefs.hoursBetweenArchives} else { adrData^.prefs.hoursBeforeArchive = 24}}; if not defined (adrData^.prefs.flArchive) { if defined (myUserLandData.prefs.flArchiveStoriesNightly) { adrData^.prefs.flArchive = myUserLandData.prefs.flArchiveStoriesNightly} else { adrData^.prefs.flArchive = true}}; if not defined (adrData^.prefs.flSaveArchiveXmlFiles) { adrData^.prefs.flSaveArchiveXmlFiles = false}; if not defined (adrData^.prefs.flLogArchiveStories) { if defined (myUserLandData.prefs.flLogArchiveStories) { adrData^.prefs.flLogArchiveStories = myUserLandData.prefs.flLogArchiveStories} else { adrData^.prefs.flLogArchiveStories = true}}; if not defined (adrData^.prefs.flScanOnStartup) { adrData^.prefs.flScanOnStartup = false}; if not defined (adrData^.prefs.maxErrorsBeforeAutoUnsubscribe) { adrData^.prefs.maxErrorsBeforeAutoUnsubscribe = 24 * 2}; if not defined (adrData^.prefs.flSaveItemData) { //JES 11/14/02: passed to xml.rss.readService adrData^.prefs.flSaveItemData = true; //JES 3/4/03: always init to true -- needed for "modern" aggregator features to work Çbundle //old code/notes Ç11/14/02 JES: The aggregator XML-RPC API returns the title and link along with the item. xml.rss.readService takes an optional parameter, flSaveData, which determines whether to save the title and link in the item sub-table of the compilation. ÇPreviously, the default value for this parameter was false. In Radio, it needs to be passed in as true, so that the aggregator API will get the right data. ÇWe initialize to true in Radio, and false in Frontier. Then in xml.aggregator.subscribeService and xml.aggregator.readService, we pass the value of the pref. Çif system.environment.isRadio ÇadrData^.prefs.flSaveItemData = true Çelse ÇadrData^.prefs.flSaveItemData = false};}; if not system.environment.isRadio { //PBS 12/27/01: set up flBehindFirewall pref on Frontier ÇIn Radio the pref is at user.radio.prefs.flBehindFirewall. In Frontier the pref is in the adrData^.prefs table. if not defined (adrData^.prefs.flBehindFirewall) { adrData^.prefs.flBehindFirewall = false}}}; bundle { //services if not defined (adrData^.services) { if defined (myUserLandData.services) { adrData^.services = myUserLandData.services} else { new (tabletype, @adrData^.services)}}}; bundle { //stories if not defined (adrData^.stories) { if defined (myUserLandData.stories) { adrData^.stories = myUserLandData.stories} else { new (tabletype, @adrData^.stories)}}}; bundle { //trash if not defined (adrData^.trash) { new (tabletype, @adrData^.trash)}}; bundle { //cache if not defined (adrData^.cache) { new (tabletype, @adrData^.cache)}}; bundle { //settings if not defined (adrData^.settings) { new (tabletype, @adrData^.settings)}}; bundle { //callbacks if not defined (adrData^.callbacks) { new (tabletype, @adrData^.callbacks)}; if not defined (adrData^.callbacks.storyArrived) { if defined (myUserLandData.callbacks.storyArrived) { adrData^.callbacks.storyArrived = myUserLandData.callbacks.storyArrived} else { new (tabletype, @adrData^.callbacks.storyArrived)}}; if not defined (adrData^.callbacks.preScan) { new (tabletype, @adrData^.callbacks.preScan)}; if not defined (adrData^.callbacks.postScan) { new (tabletype, @adrData^.callbacks.postScan)}; if not defined (adrData^.callbacks.subscribeService) { new (tabletype, @adrData^.callbacks.subscribeService)}; if not defined (adrData^.callbacks.unsubscribeService) { new (tabletype, @adrData^.callbacks.unsubscribeService)}}; bundle { //rpcHandlers if not defined (user.betty.rpcHandlers.aggregator) { user.betty.rpcHandlers.aggregator = @xml.aggregator.rpcHandlers}; if not defined (user.betty.soapHandlers.aggregator) { user.soap.rpcHandlers.aggregator = @xml.aggregator.rpcHandlers}}; bundle { //make sure everyMinute script is installed, if necessary if adrData^.prefs.enabled { if not defined (user.scheduler.everyMinute.aggregator) { user.scheduler.everyMinute.aggregator = @xml.aggregator.everyMinute; }}ÇadrData^.settings.flInstalled = true //only do this once else { if defined (user.scheduler.everyMinute.aggregator) { if user.scheduler.everyMinute.aggregator == @xml.aggregator.everyMinute { delete (@user.scheduler.everyMinute.aggregator)}}}}; Çbundle //system.temp.aggregator Çif not defined (system.temp.aggregator) Çnew (tabletype, @system.temp.aggregator) Çif not defined (system.temp.aggregator.ctNewStories) Çsystem.temp.aggregator.ctNewStories = 0 Çif not defined (system.temp.aggregator.ctThreads) Çsystem.temp.aggregator.ctThreads = 0 Çif not defined (system.temp.aggregator.lastChannelRead) Çsystem.temp.aggregator.lastChannelRead = "" Çif not defined (system.temp.aggregator.status) Çsystem.temp.aggregator.status = "" return (adrData) \ No newline at end of file |