Skip to content

Instantly share code, notes, and snippets.

@pranavsingh
Created October 25, 2015 10:57
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save pranavsingh/24ae98b445e5d021e8cc to your computer and use it in GitHub Desktop.
Save pranavsingh/24ae98b445e5d021e8cc to your computer and use it in GitHub Desktop.
Testing out tweepy
import json
import getopt, sys
from datetime import datetime
from tweepy.streaming import StreamListener
from tweepy import Stream, OAuthHandler
class Tweet(object):
def __init__(self, user, message, hash_tags={}):
self.username = user
self.tweet = message
self.created = datetime.now()
self.hashtags = hash_tags
def __str__(self):
return ": ".join([self.username, self.tweet])
class StdOutListener(StreamListener):
def on_data(self, data):
parsed = json.loads(data,encoding='utf-8')
if not 'user' in parsed:
return True
tweet = Tweet(parsed['user']['screen_name'], parsed['text'])
print(tweet)
return True
def start_client(config):
consumer_key = config['config']['twitter']['consumerKey']
consumer_secret = config['config']['twitter']['consumerSecret']
access_token = config['config']['twitter']['accessToken']
access_token_secret = config['config']['twitter']['accessSecret']
auth = OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)
stream = Stream(auth, StdOutListener())
stream.filter(track=['ruby'])
def main():
try:
opts, args = getopt.getopt(sys.argv[1:], "hc:v", ["help", "config="])
except getopt.GetoptError as err:
print(err)
usage()
sys.exit(2)
verbose = False
for o, a in opts:
if o == "-v":
verbose = True
elif o in ("-h", "--help"):
usage()
sys.exit()
elif o in ("-c", "--config"):
with open(a) as json_file:
start_client(json.load(json_file))
else:
assert False, "Unhandled option"
if __name__ == "__main__":
main()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment