Merge pull request #42 from kracekumar/master
* Fixes searchTwitter[Gen] not yielding properly * Moves searchTwitter/searchTwitterGen methods to non-Twitter names * Formatting
This commit is contained in:
commit
a8e980357b
3 changed files with 701 additions and 668 deletions
|
|
@ -44,7 +44,7 @@ Example Use
|
|||
from twython import Twython
|
||||
|
||||
twitter = Twython()
|
||||
results = twitter.searchTwitter(q="bert")
|
||||
results = twitter.search(q = "bert")
|
||||
|
||||
# More function definitions can be found by reading over twython/twitter_endpoints.py, as well
|
||||
# as skimming the source file. Both are kept human-readable, and are pretty well documented or
|
||||
|
|
@ -65,7 +65,7 @@ Arguments to functions are now exact keyword matches for the Twitter API documen
|
|||
whatever query parameter arguments you read on Twitter's documentation (http://dev.twitter.com/doc) gets mapped
|
||||
as a named argument to any Twitter function.
|
||||
|
||||
For example: the search API looks for arguments under the name "q", so you pass q="query_here" to searchTwitter().
|
||||
For example: the search API looks for arguments under the name "q", so you pass q="query_here" to search().
|
||||
|
||||
Doing this allows us to be incredibly flexible in querying the Twitter API, so changes to the API aren't held up
|
||||
from you using them by this library.
|
||||
|
|
|
|||
|
|
@ -295,15 +295,15 @@ class Twython(object):
|
|||
except HTTPError, e:
|
||||
raise TwythonError("bulkUserLookup() failed with a %s error code." % `e.code`, e.code)
|
||||
|
||||
def searchTwitter(self, **kwargs):
|
||||
"""searchTwitter(search_query, **kwargs)
|
||||
def search(self, **kwargs):
|
||||
"""search(search_query, **kwargs)
|
||||
|
||||
Returns tweets that match a specified query.
|
||||
|
||||
Parameters:
|
||||
See the documentation at http://dev.twitter.com/doc/get/search. Pass in the API supported arguments as named parameters.
|
||||
|
||||
e.g x.searchTwitter(q="jjndf", page="2")
|
||||
e.g x.search(q = "jjndf", page = '2')
|
||||
"""
|
||||
searchURL = Twython.constructApiURL("http://search.twitter.com/search.json", kwargs)
|
||||
try:
|
||||
|
|
@ -312,22 +312,28 @@ class Twython(object):
|
|||
except HTTPError, e:
|
||||
raise TwythonError("getSearchTimeline() failed with a %s error code." % `e.code`, e.code)
|
||||
|
||||
def searchTwitterGen(self, search_query, **kwargs):
|
||||
"""searchTwitterGen(search_query, **kwargs)
|
||||
def searchTwitter(self, **kwargs):
|
||||
"""use search() ,this is a fall back method to support searchTwitter()
|
||||
"""
|
||||
return self.search(**kwargs)
|
||||
|
||||
def searchGen(self, search_query, **kwargs):
|
||||
"""searchGen(search_query, **kwargs)
|
||||
|
||||
Returns a generator of tweets that match a specified query.
|
||||
|
||||
Parameters:
|
||||
See the documentation at http://dev.twitter.com/doc/get/search. Pass in the API supported arguments as named parameters.
|
||||
|
||||
e.g x.searchTwitter(q="jjndf", page="2")
|
||||
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)
|
||||
try:
|
||||
resp, content = self.client.request(searchURL, "GET", headers = self.headers)
|
||||
data = simplejson.loads(content)
|
||||
except HTTPError, e:
|
||||
raise TwythonError("searchTwitterGen() failed with a %s error code." % `e.code`, e.code)
|
||||
raise TwythonError("searchGen() failed with a %s error code." % `e.code`, e.code)
|
||||
|
||||
if not data['results']:
|
||||
raise StopIteration
|
||||
|
|
@ -336,13 +342,26 @@ class Twython(object):
|
|||
yield tweet
|
||||
|
||||
if 'page' not in kwargs:
|
||||
kwargs['page'] = 2
|
||||
kwargs['page'] = '2'
|
||||
else:
|
||||
try:
|
||||
kwargs['page'] = int(kwargs['page'])
|
||||
kwargs['page'] += 1
|
||||
kwargs['page'] = str(kwargs['page'])
|
||||
except TypeError:
|
||||
raise TwythonError("searchGen() exited because page takes str")
|
||||
except e:
|
||||
raise TwythonError("searchGen() failed with %s error code" %\
|
||||
`e.code`, e.code)
|
||||
|
||||
for tweet in self.searchTwitterGen(search_query, **kwargs):
|
||||
for tweet in self.searchGen(search_query, **kwargs):
|
||||
yield tweet
|
||||
|
||||
def searchTwitterGen(self, search_query, **kwargs):
|
||||
"""use searchGen(), this is a fallback method to support
|
||||
searchTwitterGen()"""
|
||||
return self.searchGen(search_query, **kwargs)
|
||||
|
||||
def isListMember(self, list_id, id, username, version = 1):
|
||||
""" isListMember(self, list_id, id, version)
|
||||
|
||||
|
|
|
|||
|
|
@ -235,15 +235,15 @@ class Twython(object):
|
|||
except HTTPError as e:
|
||||
raise TwythonError("bulkUserLookup() failed with a %s error code." % repr(e.code), e.code)
|
||||
|
||||
def searchTwitter(self, **kwargs):
|
||||
"""searchTwitter(search_query, **kwargs)
|
||||
def search(self, **kwargs):
|
||||
"""search(search_query, **kwargs)
|
||||
|
||||
Returns tweets that match a specified query.
|
||||
|
||||
Parameters:
|
||||
See the documentation at http://dev.twitter.com/doc/get/search. Pass in the API supported arguments as named parameters.
|
||||
|
||||
e.g x.searchTwitter(q="jjndf", page="2")
|
||||
e.g x.search(q="jjndf")
|
||||
"""
|
||||
searchURL = Twython.constructApiURL("http://search.twitter.com/search.json", kwargs)
|
||||
try:
|
||||
|
|
@ -252,15 +252,20 @@ class Twython(object):
|
|||
except HTTPError as e:
|
||||
raise TwythonError("getSearchTimeline() failed with a %s error code." % repr(e.code), e.code)
|
||||
|
||||
def searchTwitterGen(self, search_query, **kwargs):
|
||||
"""searchTwitterGen(search_query, **kwargs)
|
||||
def searchTwitter(self, **kwargs):
|
||||
"""use search(search_query, **kwargs)
|
||||
searchTwitter("python", page = "2")"""
|
||||
return search(self, **kwargs)
|
||||
|
||||
def searchGen(self, search_query, **kwargs):
|
||||
"""searchGen(search_query, **kwargs)
|
||||
|
||||
Returns a generator of tweets that match a specified query.
|
||||
|
||||
Parameters:
|
||||
See the documentation at http://dev.twitter.com/doc/get/search. Pass in the API supported arguments as named parameters.
|
||||
|
||||
e.g x.searchTwitter(q="jjndf", page="2")
|
||||
e.g x.search(search_query="python", page="2")
|
||||
"""
|
||||
searchURL = Twython.constructApiURL("http://search.twitter.com/search.json?q=%s" % Twython.unicode2utf8(search_query), kwargs)
|
||||
try:
|
||||
|
|
@ -276,11 +281,20 @@ class Twython(object):
|
|||
yield tweet
|
||||
|
||||
if 'page' not in kwargs:
|
||||
kwargs['page'] = 2
|
||||
kwargs['page'] = '2'
|
||||
else:
|
||||
try:
|
||||
kwargs['page'] = int(kwargs['page'])
|
||||
kwargs['page'] += 1
|
||||
kwargs['page'] = str(kwargs['page'])
|
||||
except TypeError:
|
||||
raise TwythonError("searchGen() exited because page takes str")
|
||||
|
||||
for tweet in self.searchTwitterGen(search_query, **kwargs):
|
||||
except e:
|
||||
raise TwythonError("searchGen() failed with %s error code" %\
|
||||
repr(e.code), e.code)
|
||||
|
||||
for tweet in self.searchGen(search_query, **kwargs):
|
||||
yield tweet
|
||||
|
||||
def isListMember(self, list_id, id, username, version = 1):
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue