I've been meaning to migrate my blog comments out of Funnelweb and into Disqus for a while. I never quite got comments to work to my satisfaction in Funnelweb (user error I'm sure - Funnelweb is mostly great) and I appreciated the idea of subbing that out to a dedicated service. Plus I'll get the added benefit of having centrally located discussions that I can move to any blog system I decide to down the road with minimal fuss.
Disqus supports a few comment import formats (Wordpress, Blogger, etc.) and the generic WXR format which looked promising.
<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dsq="http://www.disqus.com/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:wp="http://wordpress.org/export/1.0/"> <channel> <item> <title>Title of the article</title> <link>http://scottmetoyer.com/funnelweb-comments-to-disqus-wxr/</link> <!-- thread body; use cdata; html allowed (though will be formatted to DISQUS specs) --> <content:encoded>This is the article text.</content:encoded> <!-- value used within disqus_identifier; usually internal identifier of article --> <dsq:thread_identifier>237</dsq:thread_identifier> <!-- creation date of thread (article), in GMT --> <wp:post_date_gmt>2007-09-06 00:49:12</wp:post_date_gmt> <!-- open/closed values are acceptable --> <wp:comment_status>open</wp:comment_status> <wp:comment> <!-- internal id of comment --> <wp:comment_id>9001653</wp:comment_id> <!-- author display name --> <wp:comment_author>jips</wp:comment_author> <!-- author email address --> <wp:comment_author_email>firstname.lastname@example.org</wp:comment_author_email> <!-- author url, optional --> <wp:comment_author_url></wp:comment_author_url> <!-- author ip address --> <wp:comment_author_IP>127.0.0.1</wp:comment_author_IP> <!-- comment datetime, in GMT --> <wp:comment_date_gmt>2007-09-06 00:49:12</wp:comment_date_gmt> <!-- comment body; use cdata; html allowed (though will be formatted to DISQUS specs) --> <wp:comment_content>Comment goes here</wp:comment_content> <!-- is this comment approved? 0/1 --> <wp:comment_approved>1</wp:comment_approved> <!-- parent id (match up with wp:comment_id) --> <wp:comment_parent>0</wp:comment_parent> </wp:comment> </item> </channel> </rss>
I put together a simple .NET console app to connect to a Funnelweb database, pull back all the comments, and output an XML comment file suitable for upload to Disqus. The project is on Github:
To set it up, just rename My.config.sample to My.config and specify the connection string to your Funnelweb database and the root URL to your website (for creating article links). That's it - run the executable and you'll have a WXR file that can be uploaded to Disqus. I was able to move ~100 comments over with no issues.
Hopefully this helps make the switch a little easier for someone. Happy commenting.