twitools/twitools/__init__.py

50 lines
1.5 KiB
Python

import tweepy, setuptools
class twObject:
def __init__(self, cke = setuptools.cke(), cse = setuptools.cse(), ato = setuptools.ato(), ase = setuptools.ase()):
self.auth = tweepy.OAuthHandler(cke, cse)
self.auth.set_access_token(ato, ase)
self.api = tweepy.API(self.auth)
def retweet(self, id):
self.api.retweet(id)
def delete(self, id):
self.api.destroy_status(id)
def search(self, query, savepoint = 0):
tweets = list(tweepy.Cursor(self.api.search, q=query, since_id=savepoint).items())
tweets.reverse()
return tweets
def whoami(self):
return self.auth.get_username()
def tweet(self, text, reply = 0):
return self.api.update_status(text, reply)
def getFollowerIDs(section = setuptools.TWITTER):
''' Returns 5,000 follower IDs at most '''
for id in list(twoHelper(section).api.followers_ids(screen_name=twObject().whoami())):
yield int(id)
def getFollowingIDs(section = setuptools.TWITTER):
for id in list(twoHelper(section).api.friends_ids(screen_name=twObject().whoami())):
yield int(id)
def getNameByID(uid, section = setuptools.TWITTER):
return twoHelper(section).api.get_user(uid).screen_name
def getNamesByIDs(fids=getFollowerIDs(), section = setuptools.TWITTER):
for page in setuptools.paginate(fids, 100):
followers = twoHelper(section).api.lookup_users(user_ids=page)
for follower in followers:
yield {"id": follower.id, "name": follower.screen_name}
def twoHelper(section = setuptools.TWITTER):
try:
return twObject(ato = setuptools.ato(section), ase = setuptools.ase(section))
except:
return twObject()