Categories
Technology

Migrating a Roller blog to WordPress

Ok I admit that I never made a formal announcement about it, but this blog has now moved to its new home at http://nullpointer.debashish.com. If you are reading this, you are at the right URL.

This blog used to be happily hosted at the excellent free service provided by the JRoller people. Roller is one of the advanced blogwares around, written using Java and I enjoyed using it throughout. If I could afford Java hosting, I would have probably gone for JRoller again. However, with PHP there is hardly any competition for WordPress. So dear readers, here is Null Pointer on WordPress, running on the pretty Squible theme.

Now to the crux of this post. How did I manage migrating all the Posts and comments from JRoller to WordPress?

It was not simple really; because JRoller does not provide any mechanism to backup blog posts, leave alone the comments. Therefore, I asked the Roller people and Dave Johnson was kind enough to come to my rescue. He gave the plausible suggestion of creating a custom RSS Feed. The basic modus operandi is:

  • create a new template in your blog
  • within the template use the $pageModel object to fetch all entries of your blog
  • iterate through those entries to output your blog in RSS or Atom format
  • create your own name-spaced XML element to represent comments within each item
  • write a simple program that parses that and uses MetaWeblog API to post to your new blog

Now the last step is not that intricate because, guess what, WordPress 2.0 does provide the facility to import a blog from a RSS feed. Yet the ordeal would be far from over, because while WordPress can import posts from your feed it cannot import the post comments. Nothing against WordPress, the RSS 2.0 specification does allow a comments sub element but that can only be a link to the actual comments page. So basically we need to defy them all, add the comments inline in our custom RSS Feed and then modify the wordpress RSS Import Utility to decipher and import the comments as well.

When you are ready with your JRoller blog feed, just backup the existing RSS Importer file (wp-admin/import/rss.php) and place the modified importer PHP there. Rest is easy, only remember to break up your RSS file into smaller chunks if you have a really large blog, the importer has the tendency to timeout often.

WP RSS Importer

  • Click here to view the Roller template to create your custom RSS2.0 Feed that includes comments as well.
  • Click here to view the modified WordPress RSS Importer.

I hope this post helped you, do leave your comments here.

Disclaimer: The information provided on this page comes without any warranty whatsoever. Use it at your own risk.

Categories
Technology

DateTime and other problems

Bloglet subscribers to my feed may not be getting my posts in their email for about a week now. The problem seems to have surfaced after some changes made in the JRoller RSS feed XML format. Bloglet now throws an error “String was not recognized as a valid DateTime” for JRoller feeds. Monsur of bloglet wrote in reply to my mail:

Bloglet is rejecting RSS feeds with dates in the following format: “Tue, 21 Oct 2003 24:56:21 -0500”. Its probably a good idea to change your date to adhere to the XML-RPC spec, found here. We have registered it as an outstanding issue though.

Incidentally I was playing with this taglibrary for parsing RSS XML and I had to make some change to the classes so that the permalink to the posts (guid instead of expected link element) are recognized properly. I am planning to host this JSP at mycgiserver but it seems they do not allow uploading third party jars there. I am planning to use the JSP to generate the “Recent Posts” panel on my blog. Currently this is being generated by Blogstreet however the RSS Panel tool of Blogstreet is not able to understand the permalinks too and generated the links incorrectly. I am unsure how I would be able to use the JSP unless mycgiserver allows custom tag libraries.