1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67
|
from tweepy.streaming import StreamListener
from tweepy import OAuthHandler, API
from tweepy import Stream
import json
import logging
import warnings
import time
from pprint import pprint
import os
warnings.filterwarnings("ignore")
access_token = "8673840*******************AUCDVXy5lSB53"
access_token_secret = "aFfaG*******************MhUxiTRhC9VIx7PgD"
consumer_key = "sd3K*****************DatUeF3"
consumer_secret = "q*******************************sSFxvrKPESC5"
auth_handler = OAuthHandler(consumer_key, consumer_secret)
auth_handler.set_access_token(access_token, access_token_secret)
twitter_client = API(auth_handler)
logging.getLogger("main").setLevel(logging.INFO)
AVOID = os.environ["WORDS"]
KEYWORDS = AVOID.split()
USERS = os.environ["NOPE"]
NORT = NOPE.split()
class PyStreamListener(StreamListener):
def on_data(self, data):
tweet = json.loads(data)
try:
publish = True
for word in KEYWORDS:
if word in tweet['text'].lower():
logging.info("SKIPPED FOR {}".format(word))
publish = False
for user in NORT:
publish = False
if tweet.get('lang') and tweet.get('lang') != 'en':
publish = False
if publish:
twitter_client.retweet(tweet['id'])
logging.debug("RT: {}".format(tweet['text']))
time.sleep(60)
except Exception as ex:
logging.error(ex)
return True
def on_error(self, status):
print(status)
if __name__ == '__main__':
listener = PyStreamListener()
stream = Stream(auth_handler, listener)
stream.filter(track=KEYWORDS) |
Partager