This would definitely be a good thing to put as a general RFE, just a
basic export utility in xml format.  It would be nice if there was a
standardized format to follow, which is designed to allow the user to
export/import their blog data between any blog software.

-- Allen


On Tue, 2006-02-21 at 10:16, David M Johnson wrote:
> Oops. That "somebody" I mentioned was you chucks. Oh well, others  
> might find this useful too.
> 
> - Dave
> 
> 
> On Feb 21, 2006, at 1:12 PM, David M Johnson wrote:
> > On Feb 21, 2006, at 5:39 AM, chucks wrote:
> >> I wasn't able to find out any official resource on how one can  
> >> back-up the
> >> Blog Posts and comments at a roller blog (say hosted at  
> >> JRoller.com). This
> >> would be good for anybody planning to move to any other blogware.
> >>
> >> Is there any hack available?
> >
> > There are a couple of hacks, here's one:
> > http://blogs.sun.com/roller/page/richb? 
> > entry=backing_up_your_roller_posts
> >
> >
> > And here's another I just recommended to somebody today...
> >
> > Currently, if you don't have access to the internal Roller API and/ 
> > or the Roller database, the only way to backup a Roller blog is to  
> > write a custom template.
> >
> > Here's how you'd do it:
> > 1 - create a new template in your blog
> > 2 - within the template use the $pageModel object to fetch all  
> > entries of your blog
> > 3 - iterate through those entries to output your blog in RSS or  
> > Atom format (example below)
> > 4 - create your own name-spaced XML element to represent comments  
> > within each item
> > 5 - write a simple program that parses that and uses MetaWeblog API  
> > to post to your new blog
> >
> > For step #2 refer to the Roller macro reference
> > http://rollerweblogger.org/velocidoc/
> >
> > For step #3 refer to the Atom or RSS spec
> > http://atompub.org/2005/07/11/draft-ietf-atompub-format-10.html
> > http://blogs.law.harvard.edu/tech/rss
> >
> > For step #5 refer to the MetaWeblog API
> > http://www.xmlrpc.com/metaWeblogApi
> >
> > For parsing RSS, see the chapter 5 examples from my book
> > For posting via MetaWeblog API (and Atom protocol), see the chapter  
> > 8 examples from my book:
> > http://blogapps.dev.java.net
> >
> > - Dave
> >
> >
> > PS. you could use this template as a starting point:
> >
> > $pageHelper.setContentType("application/rss+xml;charset=utf-8")<? 
> > xml version="1.0" encoding="utf-8"?>
> > <rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/";>
> > <channel>
> >   <title>$utilities.textToHTML($website.name,true)</title>
> >   <link>$websiteURL</link>
> >   <description>$utilities.textToHTML($website.description,true)</ 
> > description>
> >   <language>en-us</language>
> >   <copyright>Copyright #formatDate("yyyy" $now)</copyright>
> >   <lastBuildDate>$utilities.formatRfc822Date($updateTime)</ 
> > lastBuildDate>
> >   <generator>Roller Weblogger #showVersion() ($rollerBuildTime: 
> > $rollerBuildUser)</generator>
> >   #set( $entries = $pageModel.getRecentWeblogEntriesArray 
> > ($entryCount, 'nil') )
> >   #foreach( $entry in $entries )
> >   <item>
> >     <title>$utilities.textToHTML($entry.title,true)</title>
> >     #if( $entry.link && !$entry.link.trim().equals("") )
> >     <source url="$utilities.textToHTML($entry.link)"> 
> > $utilities.textToHTML($entry.link)</source>
> >     #end
> >     <description>#showEntryDescription($entry)</description>
> >     <category>$utilities.textToHTML($entry.category.name,true)</ 
> > category>
> >     <link>$absBaseURL$entry.permaLink</link>
> >     <guid isPermaLink="true">$absBaseURL$entry.permaLink</guid>
> >     #if( $website.allowComments )
> >     <comments>$absBaseURL$utilities.textToHTML($entry.commentsLink) 
> > </comments>
> >     #end
> >     <pubDate>$utilities.formatRfc822Date($entry.pubTime)</pubDate>
> >     <dc:creator>$utilities.textToHTML($entry.creator.fullName,true) 
> > </dc:creator>
> >     #set( $mc_url = $entry.findEntryAttribute("att_mediacast_url") )
> >     #set( $mc_type = $entry.findEntryAttribute("att_mediacast_type") )
> >     #set( $mc_length = $entry.findEntryAttribute 
> > ("att_mediacast_length") )
> >     #if( $mc_url && $mc_length && $mc_type )
> >        <enclosure url="$mc_url" type="$mc_type" length="$mc_length" />
> >        #set($mc_url = false) #set($mc_type = false) #set($mc_length  
> > = false)
> >     #end
> >   </item>
> >   #end
> > </channel>
> > </rss>
> >
> >
> 

Reply via email to