I fixed line 479 to properly URL encode the querystring (q parameter) for the search functionality. According to http://dev.twitter.com/doc/get/search, the q parameter should be URL encoded, but Twython.unicode2utf8 doesn't urlencode the query.

So I enclosed it in a urllib.quote_plus function call.

examples: 

>>> urllib.quote_plus(Twython.unicode2utf8('h ^&$'))
'h+%5E%26%24'  
>>> Twython.unicode2utf8('h ^&$')
'h ^&$'
>>>
This commit is contained in:
Mohammed ALDOUB 2012-04-14 05:34:22 +03:00
parent 5a332a055e
commit 343dcb87ff

View file

@ -476,7 +476,7 @@ class Twython(object):
e.g x.searchGen("python", page="2") or
x.searchGen(search_query = "python", page = "2")
"""
searchURL = Twython.constructApiURL("http://search.twitter.com/search.json?q=%s" % Twython.unicode2utf8(search_query), kwargs)
searchURL = Twython.constructApiURL("http://search.twitter.com/search.json?q=%s" % urllib.quote_plus(Twython.unicode2utf8(search_query)), kwargs)
try:
response = self.client.get(searchURL, headers=self.headers)
data = simplejson.loads(response.content.decode('utf-8'))