]> jfr.im git - z_archive/twitter.git/blobdiff - twitter/api.py
command line tool
[z_archive/twitter.git] / twitter / api.py
index 21e18ee4441f4f6cad2c780d5c14be9d15e5a7d9..2556bf69e89e26acd5671efc5ebd36cbd99bad2d 100644 (file)
@@ -1,9 +1,15 @@
 
 from base64 import b64encode
+from urllib import urlencode
 
 import httplib
 import simplejson
 
+from exceptions import Exception
+
+class TwitterError(Exception):
+    pass
+
 class TwitterCall(object):
     def __init__(self, username=None, password=None, uri=""):
         self.username = username
@@ -21,8 +27,7 @@ class TwitterCall(object):
             method = "POST"
         argStr = ""
         if kwargs:
-            argStr = "?" + "&".join([
-                "%s=%s" %(k, v) for k, v in kwargs.iteritems()])
+            argStr = "?" + urlencode(kwargs.items())
         c = httplib.HTTPConnection("twitter.com")
         try:
             c.putrequest(method, "/%s.json%s" %(self.uri, argStr))
@@ -35,7 +40,7 @@ class TwitterCall(object):
             if (r.status == 304):
                 return []
             elif (r.status != 200):
-                raise Exception("Twitter sent status %i: %s" %(
+                raise TwitterError("Twitter sent status %i: %s" %(
                     r.status, r.read()))
             return simplejson.loads(r.read())
         finally: