Skip to content

Instantly share code, notes, and snippets.

@smellslikeml
Created October 22, 2018 17:30
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 smellslikeml/3af5d1e20ecf29467c8fd55f33f85070 to your computer and use it in GitHub Desktop.
Save smellslikeml/3af5d1e20ecf29467c8fd55f33f85070 to your computer and use it in GitHub Desktop.
tweepy_stream
#!/usr/bin/env python
import os
import sys
from tweepy import OAuthHandler
from tweepy import Stream
from tweepy.streaming import StreamListener
import json
import socket
consumer_key = os.environ['CONSUMER_KEY']
consumer_secret_key = os.environ['CONSUMER_SECRET_KEY']
access_token = os.environ['ACCESS_TOKEN']
access_secret = os.environ['ACCESS_SECRET']
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.connect(("8.8.8.8", 80))
IP = s.getsockname()[0]
s.close()
class TweetTaker(StreamListener):
def __init__(self, c_socket):
self.client_socket = c_socket
def on_data(self, data):
try:
msg = json.loads(data)
print(msg['text'].encode('utf-8'))
self.client_socket.send(msg['text'].encode('utf-8'))
return True
except BaseException as e:
print('Error on_data: %s' %str(e))
return True
def on_error(self, status):
print(status)
return True
def sendData(c_socket):
auth = OAuthHandler(consumer_key, consumer_secret_key)
auth.set_access_token(access_token, access_secret)
l = TweetTaker(c_socket)
stream = Stream(auth, l)
stream.filter(track=track_list)
if __name__ == '__main__':
track_list = sys.argv[1].split(',')
s = socket.socket()
host = IP
port = 5555
s.bind((host, port))
print("listening on port: %s" % str(port))
s.listen(5)
c, addr = s.accept()
print("received request from: " + str(addr))
sendData(c)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment