Monday, November 08, 2010 at 12:04 AM.
system.verbs.builtins.radio.backup.threadScript
<<Changes
<<11/13/02; 4:56:23 PM by DW
<<Created
radio.backup.init ();
if user.radio.backup.prefs.flEnabled {
local (flBackup = false);
local (day, month, year, hour, minute, second);
date.get (clock.now (), @day, @month, @year, @hour, @minute, @second);
if (hour == user.radio.backup.prefs.hourToBackUp) and (minute == user.radio.backup.prefs.minuteToBackUp) {
local (lastday, lastmonth, lastyear, lasthour, lastminute, lastsecond);
date.get (user.radio.backup.stats.whenLastBackup, @lastday, @lastmonth, @lastyear, @lasthour, @lastminute, @lastsecond);
if lastday != day { //only do the updates once per day
flBackup = true}}
else { //check to see if it's been more than 24 hours since the last backup
if date.yesterday (clock.now ()) > user.radio.backup.stats.whenLastBackup {
flBackup = true}};
if flBackup { //it's time to do a complete backup/verify
user.radio.backup.stats.whenLastBackup = clock.now ();
local (flError = false, startticks = clock.ticks ());
on errorCallback (errormsg) { //log an error in the events page, and email the error message to the user
radio.log.add ("Nightly Backup", errormsg, startticks);
local (mailtext);
on add (s) {
mailtext = mailtext + (s + "\r\n");};
add ("Radio UserLand's nightly backup failed because there was an error verifying the backup:");
add ("");
add (errormsg);
tcp.sendMail (user.prefs.mailAddress, "Radio UserLand nightly backup error", mailtext);
return (false)};
radio.backup.backupAndVerify (@errorCallback);
if not flError { //log backup/verification success
radio.log.add ("Nightly Backup", "Nightly backup and verification of weblog posts, templates, stories, preferences and aggregator subscriptions completed successfully.", startticks)}}}
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.