Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

Hi. My name is Scott Metoyer


This is what I'm working on.

Funnelweb Comments to Disqus WXR

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.

WXR is really just a specially formatted RSS XML file. The format that Disqus expects is described here. The simplest example I could find was here. It looks like this:


<?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>no@email.com</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:

https://github.com/scottmetoyer/funnelweb-comments-to-wxr

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.


About the author

Scott Metoyer


Discussions