You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@roller.apache.org by chucks <de...@gmail.com> on 2006/02/21 11:39:14 UTC

Backing it up

Hi guys,

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?

Thanks,

D
--
View this message in context: http://www.nabble.com/Backing-it-up-t1161097c12275.html#a3047590
Sent from the Roller - User forum at Nabble.com.


Re: Backing it up

Posted by David M Johnson <Da...@Sun.COM>.
Lance did the work to save to XML and to drop the resulting file into  
the blog's resources directory, but the work never made it's way into  
a release (I dropped the ball).

I believe I wanted to expose the export feature as a button on the  
Entries page. That way, you could design a query/filter and then save  
the resulting entries to XML format.

- Dave


On Feb 21, 2006, at 1:24 PM, Allen Gilliland wrote:

> 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>
>>>
>>>
>>


Re: Backing it up

Posted by Allen Gilliland <Al...@Sun.COM>.
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>
> >
> >
> 


Re: Backing it up

Posted by David M Johnson <Da...@Sun.COM>.
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>
>
>


Re: Backing it up

Posted by David M Johnson <Da...@Sun.COM>.
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>