Finally removed the need for httplib2, Basic HTTP Auth is now working.

This commit is contained in:
Ryan McGrath 2009-05-26 02:43:26 -04:00
parent 1887280855
commit 60c6aae346

View file

@ -6,6 +6,8 @@
import urllib, urllib2 import urllib, urllib2
from urllib2 import HTTPError
try: try:
import simplejson import simplejson
except: except:
@ -23,13 +25,12 @@ class setup:
self.username = username self.username = username
self.password = password self.password = password
self.oauth_keys = oauth_keys self.oauth_keys = oauth_keys
self.opener = None
if self.username is not None and self.password is not None: if self.username is not None and self.password is not None:
if self.authtype == "OAuth": if self.authtype == "OAuth":
pass pass
elif self.authtype == "Basic": elif self.authtype == "Basic":
self.auth_manager = urllib2.HTTPPasswordMgrWithDefaultRealm() self.auth_manager = urllib2.HTTPPasswordMgrWithDefaultRealm()
self.auth_manager.add_password(None, "http://twitter.com/account/verify_credentials.json", self.username, self.password) self.auth_manager.add_password(None, "http://twitter.com", self.username, self.password)
self.handler = urllib2.HTTPBasicAuthHandler(self.auth_manager) self.handler = urllib2.HTTPBasicAuthHandler(self.auth_manager)
self.opener = urllib2.build_opener(self.handler) self.opener = urllib2.build_opener(self.handler)
self.authenticated = True self.authenticated = True
@ -78,11 +79,14 @@ class setup:
print "getUserMentions() requires you to be authenticated." print "getUserMentions() requires you to be authenticated."
pass pass
def updateStatus(self, status, in_reply_to_status_id = ""): def updateStatus(self, status, in_reply_to_status_id = None):
if self.authenticated is True: if self.authenticated is True:
if self.authtype == "Basic": if self.authtype == "Basic":
self.opener.open("http://twitter.com/statuses/update.json" + urllib.urlencode({"status": status}, {"in_reply_to_status_id": in_reply_to_status_id})) try:
print self.opener.open("http://twitter.com/statuses/update.json" + urllib.urlencode({"status": status}, {"in_reply_to_status_id": in_reply_to_status_id})).read() self.opener.open("http://twitter.com/statuses/update.json?", urllib.urlencode({"status": status}, {"in_reply_to_status_id": in_reply_to_status_id}))
except HTTPError, e:
print e.code
print e.headers
else: else:
print "Sorry, OAuth support is still forthcoming. Feel free to help out on this front!" print "Sorry, OAuth support is still forthcoming. Feel free to help out on this front!"
pass pass