summaryrefslogtreecommitdiff
path: root/freebase
diff options
context:
space:
mode:
authoralecflett <alecflett@5914aa95-5b3a-0410-a3b5-7b719e7fe9b2>2009-12-22 18:59:14 +0000
committeralecflett <alecflett@5914aa95-5b3a-0410-a3b5-7b719e7fe9b2>2009-12-22 18:59:14 +0000
commitba8d6380d46f1510f22c27621a0e75449c88821c (patch)
tree78f9c100f5ad8c6e59e859d6654c74b05d6a1c7b /freebase
parent492d173e40a2331baedb7d4bafa043b16ddc6c1c (diff)
fix more unicode encoding problems by doing less flip/flopping between utf8 and unicode
fix mql_output bug in user_info git-svn-id: http://freebase-python.googlecode.com/svn/trunk@239 5914aa95-5b3a-0410-a3b5-7b719e7fe9b2
Diffstat (limited to 'freebase')
-rw-r--r--freebase/api/session.py17
1 files changed, 11 insertions, 6 deletions
diff --git a/freebase/api/session.py b/freebase/api/session.py
index d208356..87161fa 100644
--- a/freebase/api/session.py
+++ b/freebase/api/session.py
@@ -179,8 +179,10 @@ def makev(v):
if isinstance(v, bool):
v = unicode(v).lower()
+ elif isinstance(v, unicode):
+ v = v.encode('utf-8')
else:
- v = unicode(v)
+ v = str(v)
return urlencode_weak(v)
@@ -369,8 +371,8 @@ class HTTPMetawebSession(MetawebSession):
assert ct is not None
if form is not None:
- qstr = '&'.join(['%s=%s' % (makev(k).encode('utf-8'),
- makev(v).encode('utf-8'))
+ qstr = '&'.join(['%s=%s' % (makev(k),
+ makev(v))
for k,v in form.iteritems()])
if method == 'POST':
# put the args on the url if we're putting something else
@@ -499,7 +501,8 @@ class HTTPMetawebSession(MetawebSession):
rememberme = rememberme and "true" or "false"
form_params = {"username": username,
"password": password }
- form_params['domain'] = '%s' % self._base_url
+ domain = self._base_url.split(":")[0]
+ form_params['domain'] = '%s' % domain
if rememberme:
form_params["rememberme"] = "true"
r = self._httpreq_json(service, 'POST',
@@ -530,8 +533,10 @@ class HTTPMetawebSession(MetawebSession):
see http://www.freebase.com/view/guid/9202a8c04000641f800000000c36a842"""
service = "/api/service/user_info"
-
- r = self._httpreq_json(service, 'POST', form=dict(mql_output=mql_output))
+ form = {}
+ if mql_output is not None:
+ form['mql_output'] = mql_output
+ r = self._httpreq_json(service, 'POST', form=form)
return r
def loggedin(self):