Member Sign In
Not a member?

A Wired.com user account lets you create, edit and comment on Webmonkey articles. You will also be able to contribute to the Wired How-To Wiki and comment on news stories at Wired.com.


It's fast and free.

Sign in with OpenID
Sign In
Webmonkey is a property of Wired Digital.
processing...
Join Webmonkey

Please send me occasional e-mail updates about new features and special offers from Wired/Webmonkey.
Yes No

Please send occasional e-mail offers from Wired/Webmonkey affiliated web sites and publications, and carefully selected companies.
Yes No

I understand and agree that registration on or use of this site constitutes agreement to Webmonkey's User Agreement and Privacy Policy.
Webmonkey is a property of Wired Digital.
processing...

Retrieve Sign In

Please enter your e-mail address or username below. Your username and password will be sent to the e-mail address you provided us.

or
Webmonkey is a property of Wired Digital.
processing...

Welcome to Webmonkey

A private profile page has been created for you.
As a member of Webmonkey, you can now:
  • edit articles
  • add to the code library
  • design and write a tutorial
  • comment on any Webmonkey article
Close
Webmonkey is a property of Wired Digital.

Sign In Information Sent

An e-mail has been sent to the e-mail address registered in this account.
If you cannot find it in your in-box, please check your bulk or junk folders.
Sign In
Webmonkey is a property of Wired Digital.

Disqus API Client in Python

/skill level/
/viewed/
0 Times

This code snippet originated from the Disqus API tutorial. It is a simple Disqus API Client written in Python

What you'll need

The Code

import urllib

import simplejson


BASE_PATH = 'http://disqus.com/api/'
DEBUG = True


class DisqusError(Exception):
    def __init__(self, code, message):
        self.code, self.message = code, message
    def __str__(self):
        return 'DisqusError %s: %s' % (self.code, self.message)


class DisqusAPIClient():
    def __init__(self):
       """instantiate"""
    
    def __getattr__(self, method):
        def method(_self=self, _method=method, **params):
            url = "%s%s/?&%s" %  (BASE_PATH, _method, urllib.urlencode(params))
            if DEBUG: print url
            data = self.fetch(url)
            return data
        
        return method
    
    def fetch(self, url):
        data = simplejson.load(urllib.urlopen(url))
        if data.get("code", "") != "ok":
            raise DisqusError(data["code"], data["message"])
        return data['message']
        
    def __repr__(self):
        return "<DisqusClient: %s>" % self.method
Edit this article
Reddit Digg
 
Subscribe now

Special Offer For Webmonkey Users

WIRED magazine:
The first word on how technology is changing our world.

Subscribe for just $10 a year