I have been searching far and wide for something to turn my Pidgin status messages into Twitter tweets. My search, as well as your, is over: http://arstechnica.com/reviews/apps/pidgin-2-0.ars/4 Scroll down, and you'll see this block of code:
#!/usr/bin/env python

import gtk, dbus, gobject, dbus.glib
import base64, httplib, urllib

TWITTER_USERNAME = "segphault"

PIDGIN_ACCOUNT = "segphault"

def updateTwitter(username, passwd, statusmsg):
# Generate Twitter authentication header string
auth = {"Authorization": "Basic %s" %
    base64.encodestring("%s:%s" % (username, passwd)).strip()}

# Create a connection to the Twitter web site

connection = httplib.HTTPConnection("twitter.com", 80)
# Use Twitter's REST API to post a status update
connection.request("POST", "/statuses/update.xml",
    urllib.urlencode({"status":statusmsg}), auth)

# Initiate a connection to the Session Bus
bus = dbus.SessionBus()

# Associate Pidgin's D-Bus interface with Python objects
obj = bus.get_object(
  "im.pidgin.purple.PurpleService", "/im/pidgin/purple/PurpleObject")
purple = dbus.Interface(obj, "im.pidgin.purple.PurpleInterface")

def onStatusChanged(acctID, old, new):
# Only update the Twitter status for one specific Pidgin account
if purple.PurpleAccountGetUsername(acctID) == PIDGIN_ACCOUNT and \
    purple.PurpleAccountGetProtocolName(acctID) == PIDGIN_PROTOCOL:
  # Retrieve the current Pidgin status message
  message = purple.PurpleSavedstatusGetMessage(

  # Update Twitter status with current Pidgin status message
  if message: updateTwitter(TWITTER_USERNAME, TWITTER_PASSWORD, message)

# Bind the onStatusChanged function to Pidgin's AccountStatusChanged event

# Start the main loop

Just paste that into a twitter.py file (for God sakes make sure you don't mess up the white space, this is Python!), set the Twitter/Pidgin configuration info at the top, and run it. Now, whenever your status changes, your Twitter is updated. Oh the magic of Dbus and REST