Monday, November 08, 2010 at 12:05 AM.
system.verbs.builtins.radio.weblog.metaWeblogApi.copyFromStruct
on copyFromStruct (adrstruct, adrpost) { <<Changes <<4/6/02; 6:41:48 PM by DW <<If the struct has a title, create a shortcut for it. <<3/15/02; 12:36:35 PM by DW <<Add support for callbacks. <<3/15/02; 8:39:20 AM by DW <<If the struct contains a boolean flNotOnHomePage, copy that into the post table. <<3/13/02; 8:13:12 PM by DW <<Created. local (idpost = number (nameof (adrpost^))); on neuter (s) { return (radio.weblog.bloggerApi.neuterMacros (s))}; bundle { //call callbacks local (adrblog = radio.weblog.init ()); local (adrcallbacks = @adrblog^.callbacks.metaWeblogCopyFromStruct); if not defined (adrcallbacks^) { new (tabletype, adrcallbacks)}; local (adrcallback); for adrcallback in adrcallbacks { while typeOf (adrcallback^) == addressType { adrcallback = adrcallback^}; try {adrcallback^ (adrstruct, adrpost)}}}; if defined (adrstruct^.link) { adrpost^.link = neuter (adrstruct^.link)}; if defined (adrstruct^.title) { local (newtitle = neuter (adrstruct^.title)); radio.shortcuts.addTitledPost (adrpost, newtitle); adrpost^.title = newtitle}; if defined (adrstruct^.enclosure) { new (tabletype, @adrpost^.enclosure); adrpost^.enclosure.length = number (adrstruct^.enclosure.length); adrpost^.enclosure.type = neuter (adrstruct^.enclosure.type); adrpost^.enclosure.url = neuter (adrstruct^.enclosure.url)}; if defined (adrstruct^.source) { adrpost^.sourceName = neuter (adrstruct^.source.name); adrpost^.sourceUrl = neuter (adrstruct^.source.url); adrpost^.sourceTime = clock.now ()}; if defined (adrstruct^.categories) { local (adrblog = radio.weblog.init ()); bundle { //first remove the post from any categories it's already in local (adrcat); for adrcat in @adrblog^.categories { if adrcat^.storyList contains idpost { adrcat^.fldirty = true; adrcat^.storyList = adrcat^.storyList - idpost}}}; local (s); new (tabletype, @adrpost^.categories); for s in adrstruct^.categories { local (adrblogcat = @adrblog^.categories.[s]); if defined (adrblogcat^) { adrpost^.categories.[s] = true; adrblogcat^.storyList = adrblogcat^.storyList + {idpost}; adrblogcat^.fldirty = true}}}; if defined (adrstruct^.flNotOnHomePage) { adrpost^.flNotOnHomePage = adrstruct^.flNotOnHomePage}}
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.