Saturday, April 09, 2011 at 1:07 AM.
radio2Suite.background.everyMinute
on everyMinute () {
<<Changes
<<4/8/11; 4:39:33 PM by DW
<<Maintenence flag to turn off static rendering for the radio2 user in River2.
<<3/15/11; 10:45:47 AM by DW
<<Maintenence flag to remove feed-level cloud elements.
<<3/7/11; 2:51:00 PM by DW
<<Maintenence flag to set the default cookieDomain in members.root to the domain that is running the Radio2 site.
<<3/7/11; 10:27:22 AM by DW
<<Maintenence flag to initially populate members.root from the Radio2 users.
<<3/7/11; 9:10:12 AM by DW
<<Maintenence flag to temporarily disable the API, which uses Basic Authentication and hasn't been tested in a long time. Before bringing it back must do a complete run-through.
<<3/3/11; 11:32:58 AM by DW
<<Maintenence flag to set whenLastGet for each user to yesterday at this time.
<<3/3/11; 10:57:06 AM by DW
<<Don't build the community OPML here, we'll do it from the everyHour script.
<<3/2/11; 9:28:04 PM by DW
<<Maintain the community OPML reading list.
<<3/2/11; 9:46:14 AM by DW
<<Maintenence flag that eliminates empty or nil enclosures in posts.
<<2/24/11; 12:09:30 PM by DW
<<Do a get-count for each user who is ready
<<2/23/11; 10:43:36 PM by DW
<<Maintenence flag to get rid of extraneous "tweetBoxx" in data table.
<<2/22/11; 10:38:08 PM by DW
<<Maintenence flag to rebuild the user's whole archive. We just made the archive actually work. :-)
<<2/21/11; 11:25:41 AM by DW
<<Add maintenence flags section, and add code that fixes all the links we have with UTM_ codes in the URLs. These are really ugly monstrosities.
<<1/11/11; 12:12:35 PM by DW
<<If the user's feeds table is empty, create a feed with the default name.
<<12/14/10; 8:26:15 PM by DW
<<Created.
local (adrdata = radio2Suite.init (), now = clock.now ());
adrdata^.stats.ctEveryMinutes++;
adrdata^.stats.whenLastEveryMinute = now;
bundle { //do nothing on DW's desktop machine
if defined (user.prefs.fldevmachine) {
if user.prefs.fldevmachine {
return}}};
bundle { //maintenence flags
if not defined (adrdata^.prefs.flags.turnOffStaticRiver2User) { //4/8/11 by DW
try {config.river2.users.radio2.prefs.static.enabled = false};
adrdata^.prefs.flags.turnOffStaticRiver2User = now};
if not defined (adrdata^.prefs.flags.removeFeedLevelClouds) { //3/15/11 by DW
radio2Suite.utilities.removeFeedLevelClouds ();
adrdata^.prefs.flags.removeFeedLevelClouds = now};
if not defined (adrdata^.prefs.flags.setCookieDomain) { //3/7/11 by DW
radio2Suite.utilities.setCookieDomain ();
adrdata^.prefs.flags.setCookieDomain = now};
if not defined (adrdata^.prefs.flags.initMembersRoot) { //3/7/11 by DW
radio2Suite.utilities.initMembersRoot ();
adrdata^.prefs.flags.initMembersRoot = now};
if not defined (adrdata^.prefs.flags.disableApi) { //3/7/11 by DW
local (adruser);
for adruser in @adrdata^.users {
radio2Suite.initUser (adruser);
adruser^.stats.counts.whenLastGet = date.yesterday (now)};
try {delete (@radio2Website.api)}; //it's been renamed to #api
adrdata^.prefs.flags.disableApi = now};
if not defined (adrdata^.prefs.flags.nukeDateZeros) { //3/3/11 by DW
local (adruser);
for adruser in @adrdata^.users {
radio2Suite.initUser (adruser);
adruser^.stats.counts.whenLastGet = date.yesterday (now)};
adrdata^.prefs.flags.nukeDateZeros = now};
if not defined (adrdata^.prefs.flags.nilEnclosuresBad) { //3/2/11 by DW
local (adruser, adrfeed);
<<scratchpad.ctNilEnclosures = 0
on visit (adrpost) {
if defined (adrpost^.enclosure) {
if (adrpost^.enclosure == nil) or (adrpost^.enclosure == "") {
<<scratchpad.ctNilEnclosures++
delete (@adrpost^.enclosure)}};
return (true)};
for adruser in @adrdata^.users {
for adrfeed in @adruser^.feeds {
mainresponder.calendar.visitReverseChronologic (@adrfeed^.calendar, @visit)}};
adrdata^.prefs.flags.nilEnclosuresBad = now};
if not defined (adrdata^.prefs.flags.removeUrlGarbage) {
local (adruser, adrfeed);
<<scratchpad.ctUrlsWithGarbage = 0
on visit (adrpost) {
if defined (adrpost^.link) {
local (newlink = string.removeUrlGarbage (adrpost^.link));
if newlink != adrpost^.link {
adrpost^.link = newlink}};
<<scratchpad.ctUrlsWithGarbage++
return (true)};
for adruser in @adrdata^.users {
for adrfeed in @adruser^.feeds {
mainresponder.calendar.visitReverseChronologic (@adrfeed^.calendar, @visit)}};
adrdata^.prefs.flags.removeUrlGarbage = now};
if not defined (adrdata^.prefs.flags.rebuildFullArchive) { //2/22/11 by DW
thread.callscript (@radio2Suite.utilities.rebuildArchive, {});
adrdata^.prefs.flags.rebuildFullArchive = now};
if defined (radio2Suite.data.tweetBoxx) { //2/23/11 by DW
delete (@radio2Suite.data.tweetBoxx)}};
bundle { //do a get-count for each user who is ready, 2/24/11 by DW
local (adruser, ctsecsbetwgets = 60 * adrdata^.prefs.ctMinutesBetwCountGets);
for adruser in @adrdata^.users {
if adruser^.prefs.shortener.enabled {
if number (now - adruser^.stats.counts.whenLastGet) >= ctsecsbetwgets {
try {
radio2Suite.shortener.getCounts (adruser)}}}}};
bundle { //init all the feeds
local (adruser, adrfeed);
for adruser in @adrdata^.users {
radio2Suite.initUser (adruser);
if sizeof (adruser^.feeds) == 0 { //1/11/11 by DW
new (tabletype, @adruser^.feeds.[radio2Suite.data.strings.defaultFeedName])};
for adrfeed in @adruser^.feeds {
radio2Suite.initFeed (adrfeed)}}}};
<<bundle //build community OPML -- 3/3/11 by DW -- disabled
<<local (flbuild = false)
<<if adrdata^.stats.ctCommunityOpmlBuilds == 0
<<flbuild = true
<<else
<<if number (now - adrdata^.stats.whenLastCommunityOpmlBuild) >= (60 * 40) //build every 40 minutes
<<flbuild = true
<<if flbuild
<<radio2Suite.buildCommunityOpml ()
bundle { //test code
everyMinute ()}
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.