Monday, November 08, 2010 at 12:04 AM.
system.verbs.builtins.radio.backup.restoreAllMonths
on restoreAllMonths (adrReadFileCallback, adrpoststable, adrfiles=nil, adrStatusMsgCallback=nil) {
<<Changes
<<1/27/03; 4:10:51 PM by JES
<<New optional parameter, adrfiles -- if passed in, this is the address of the compiled XML from files.xml. If not, then we read files.xml ourselves.
<<New optional parameter, adrStatusMsgCallback -- called with the year/month currently being restored.
<<11/16/02; 12:37:52 PM by DW
<<Created.
on statusMsg (s) {
if adrStatusMsgCallback != nil {
try {adrStatusMsgCallback^ (s)}}};
local (files);
on readfile (path) {
return (adrReadFileCallback^ (path))};
if adrfiles == nil { //we need to read files.xml ourselves
radio.backup.readDirectory (readfile ("files.xml"), @files);
adrfiles = @files};
<<scratchpad.files = files
local (adfile, path);
for adrfile in adrfiles {
path = nameof (adrfile^);
if path beginswith "posts" {
local (s = string.delete (path, 1, 6));
s = string.popSuffix (s);
statusMsg (s + "...");
radio.backup.restoreOneMonth (readfile (path), adrpoststable)}}};
bundle { //test code
on readFileCallback (partialpath) {
local (f = user.radio.backup.prefs.folder + partialpath);
return (string (file.readwholefile (f)))};
<<new (tabletype, @scratchpad.posts)
restoreAllMonths (@readFileCallback, @scratchpad.posts)}
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.