Monday, November 08, 2010 at 12:04 AM.
system.verbs.builtins.radio.backup.restoreAllPrefs
on restoreAllPrefs (adrReadFileCallback, adrfiles, adrStatusMsgCallback=nil) { <<Changes <<1/27/03; 3:56:04 PM by JES <<New optional parameter, adrStatusMsgCallback -- called with the name of the file currently being backed up. <<11/26/02; 10:31:46 PM by JES <<Created. on statusMsg (s) { if adrStatusMsgCallback != nil { try {adrStatusMsgCallback^ (s)}}}; on readfile (partialpath) { local (fname = string.nthField (partialPath, "/", string.countFields (partialPath, "/"))); statusMsg (fname + "..."); adrReadFileCallback^ (partialpath)}; local (adr); bundle { //make sure data files are open radio.weblog.init (); xml.aggregator.init (); weblogsCom.init ()}; for adr in adrfiles { local (partialpath = nameOf (adr^)); if partialpath beginsWith "prefs" { readFile (partialpath); local (adrdata = @system.temp.radioPrefsBackup); local (stringdest = string (adrdata^.directory.adrobject)); stringdest = radio.backup.getAddress (stringdest); case stringdest { "services" { stringDest = "aggregatorData.services"}; "prefs" { stringDest = "user.radio.prefs"}}; <<"templates" <<radio.backup.restoreTemplates (@adrdata^.data) <<continue local (adrdest = address (stringdest)); radio.backup.restorePrefTable (@adrdata^.data, adrdest)}}}; bundle { //test code local (backupFolder = user.radio.backup.prefs.folder); on readFile (partialpath) { if backupFolder beginsWith "http://" { return (tcp.httpReadUrl (backupFolder + partialpath))} else { //read from local filesystem local (f = backupFolder + string.replaceAll (partialPath, "/", file.getPathChar ())); return (file.readWholeFile (f))}}; on importObject (partialpath) { if backupFolder beginsWith "http://" { table.xmlToTable (tcp.httpReadUrl (backupFolder + partialPath), @system.temp.radioPrefsBackup)} else { //read from local filesystem local (f = backupFolder + string.replaceAll (partialPath, "/", file.getPathChar ())); table.xmlToTable (file.readWholeFile (f), @system.temp.radioPrefsBackup)}}; local (files); radio.backup.readDirectory (readfile ("files.xml"), @files); restoreAllPrefs (@importObject, @files, @msg)}
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.