Monday, November 08, 2010 at 12:04 AM.
system.verbs.builtins.radio.backup.verifyAllPrefs
on verifyAllPrefs (adrErrorCallback=nil) { <<Changes <<1/15/03; 12:32:12 PM by JES <<Verify files backed up as XML tables instead of fat-page files. <<11/29/02; 4:37:49 PM by JES <<Created. Verify all prefs backup files. local (folder = user.radio.backup.prefs.folder + "prefs" + file.getPathChar ()); local (errormessage, flerror = false); on error (s) { //call the error callback flerror = true; if adrErrorCallback != nil { return (adrErrorCallback^ ("Verification of backup failed because " + s))}}; on verifyOneFile (name) { //return true for valid file, if not then set errormessage and return false local (fname = name + ".xml"); <<local (fname = name + ".fttb") local (f = folder + fname); if file.exists (f) { <<bundle //original code for verifying a fat-page format file <<local (filetext = file.readWholeFile (f)) <<local (localtable, atts) <<if fatPages.getPageAtts (@filetext, @atts) <<if not defined (atts.pageData) //no embedded data <<errormessage = "the file \"" + fname + "\" could not be imported." <<return (false) <<try //to extract the data and verify that it's a table <<local (localtable) <<fatPages.unpackOdbObject (@atts, @localtable, flRunnable:false, flEdit:false) <<if typeOf (localtable) != tableType //there's data but it's not a table <<errormessage = "the data contained in the file \"" + fname + "\" isn't the correct type." <<return (false) <<else //error extracting data <<errormessage = "the file \"" + fname + "\" could not be imported." <<return (false) <<else //no embedded data <<errormessage = "the file \"" + fname + "\" could not be imported." <<return (false) local (filetext = file.readWholeFile (f)); local (localtable, atts); try { //to compile the XML and verify that it's a table local (localtable); table.xmlToTable (filetext, @localtable); if sizeOf (localtable) == 0 { errormessage = "the file \"" + fname + "\" contains no table data."; return (false)}; if not (defined (localtable.data)) or (not defined (localtable.directory)) { errormessage = "the file \"" + fname + "\" does not contain data of the correct type."}} else { //error extracting data errormessage = "the file \"" + fname + "\" could not be imported."; return (false)}} else { //file does not exist errormessage = "the file \"" + fname + "\" does not exist."; return (false)}; return (true)}; if not verifyOneFile ("weblogPrefs") { if not error (errormessage) {return (false)}}; if not verifyOneFile ("weblogCategories") { if not error (errormessage) {return (false)}}; if not verifyOneFile ("weblogShortcuts") { if not error (errormessage) {return (false)}}; if not verifyOneFile ("weblogStats") { if not error (errormessage) {return (false)}}; if not verifyOneFile ("aggregatorPrefs") { if not error (errormessage) {return (false)}}; if not verifyOneFile ("aggregatorSettings") { if not error (errormessage) {return (false)}}; if not verifyOneFile ("aggregatorStats") { if not error (errormessage) {return (false)}}; if not verifyOneFile ("aggregatorServices") { if not error (errormessage) {return (false)}}; if not verifyOneFile ("userPrefs") { if not error (errormessage) {return (false)}}; if not verifyOneFile ("userIm") { if not error (errormessage) {return (false)}}; if not verifyOneFile ("userBookmarksMenu") { if not error (errormessage) {return (false)}}; if not verifyOneFile ("userRadioOutliner") { if not error (errormessage) {return (false)}}; if not verifyOneFile ("userRadioStats") { if not error (errormessage) {return (false)}}; if not verifyOneFile ("userRadioPrefs") { if not error (errormessage) {return (false)}}; if not verifyOneFile ("weblogsComFavorites") { if not error (errormessage) {return (false)}}; if not verifyOneFile ("weblogsComPrefs") { if not error (errormessage) {return (false)}}; return (not flerror)}; bundle { //test code on errorCallback (s) { dialog.alert (s); return (true)}; verifyAllPrefs (@errorcallback)}
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.