Ejemplo n.º 1
0
def getTweetsByUser(username, amountOfTweets):
    '''
    Get the last 3 hours tweets contents and do data analysis with it. 
    '''
    #authroization
    auth = OAuthHandler(consumer_key, consumer_secret)
    #access to user's key
    auth.set_access_token(access_token, access_token_secret)

    #calling API
    api = tweepy.API(auth)

    #extracted desired amount of tweet
    tweets = api.user_timeline(
        screen_name=username,
        count=amountOfTweets,
        tweet_mode='extended',
    )

    result = []
    for info in tweets:
        temp = {}
        temp['id'] = str(info.id)
        temp['created_at'] = info.created_at.strftime("%m/%d/%Y at %H o'clock")
        temp['full_text'] = info.full_text
        result.append(temp)
    return result


#=================test script=================
# print getTweetsByUser("cnn", 5)
Ejemplo n.º 2
0
def send_tweets(c_socket):
    auth = OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET)
    auth.set_access_token(ACCESS_TOKEN, ACCESS_SECRET)

    twitter_stream = Stream(auth, TweetsListener(c_socket))
    twitter_stream.filter(track=['football'
                                 ])  # this is the topic we are interested in
Ejemplo n.º 3
0
def get_tweets():
    access_token = settings.TWITTER_ACCESS_TOKEN
    access_token_secret = settings.TWITTER_ACCESS_SECRET

    auth = OAuthHandler(
        settings.TWITTER_OAUTH_CONSUMER_KEY,
        settings.TWITTER_OAUTH_CONSUMER_SECRET,
    )
    auth.set_access_token(access_token, access_token_secret)

    api = tweepy.API(auth)

    twitter_users = [
        settings.TWITTER_DEPT_USER,
        settings.TWITTER_PERM_SEC_USER,
    ]

    tweets = []

    for twitter_user in twitter_users:
        if not twitter_user:
            continue
        for status in tweepy.Cursor(
                api.user_timeline,
                screen_name=twitter_user,
                include_rts=False,
                exclude_replies=True,
        ).items(5):
            tweets.append(status)

    return tweets
Ejemplo n.º 4
0
 def request(self, method, route, params=None, json=None, user_auth=False):
     host = "https://api.twitter.com"
     headers = {"User-Agent": self.user_agent}
     auth = None
     # TODO: Ability to choose app or user auth
     if user_auth:
         auth = OAuthHandler(self.consumer_key, self.consumer_secret)
         auth.set_access_token(self.access_token, self.access_token_secret)
         auth = auth.apply_auth()
     else:
         headers["Authorization"] = f"Bearer {self.bearer_token}"
     # TODO: log.debug
     with self.session.request(
         method, host + route, params=params, json=json, headers=headers,
         auth=auth
     ) as response:
         # TODO: log.debug
         if response.status_code in (400, 403):
             print(response.status_code)
             # TODO: Handle
         elif response.status_code != 200:
             print(response.status_code)
             # TODO: Handle
         # TODO: Handle rate limits
         return response.json()
def startStream(topicDict, keywords, users, locationDict):
    print('Starting stream using', keywords)
    auth = OAuthHandler(consumer_key, consumer_secret)
    auth.set_access_token(access_token, access_secret)

    print('Authorization successful: ', auth.oauth.verify)

    while True:
        twitter_stream = Stream(auth,
                                TweetsListener(topicDict, locationDict, users))
        try:
            twitter_stream.filter(languages=['en'],
                                  track=keywords,
                                  follow=users)  # start the stream
        except KeyboardInterrupt:
            print('Keyboard Interrupt')
            return True
        except Exception as e:
            print(e)
            print("IM HERE")
            continue
        finally:
            # we do this because tweepy streams never actually clear their queued tweets when they stop/crash
            # this way if something goes wrong we start fresh. We might lose some data but at least it'll keep running
            del twitter_stream
Ejemplo n.º 6
0
def trends(channel='assignment1', scheduled=True):
    consumer_key = environ.get('consumer_key', None)
    consumer_secret = environ.get('consumer_secret', None)
    access_token = environ.get('access_token', None)
    access_token_secret = environ.get('access_token_secret', None)

    auth = OAuthHandler(consumer_key, consumer_secret)
    auth.set_access_token(access_token, access_token_secret)
    api = API(auth)

    WOE_ID = 1

    trends = api.trends_place(WOE_ID)

    trends = json.loads(json.dumps(trends, indent=1))

    trendy = []
    for trend in trends[0]["trends"]:
        trendy.append((trend["name"]))

    trending = ', \n'.join(trendy[:10])

    if scheduled:
        slack_client.api_call("chat.postMessage",
                              channel=channel,
                              text=trending)
    else:
        return trending
Ejemplo n.º 7
0
def send_tweets(c_socket):
    auth = OAuthHandler(consumer_key, consumer_secret)
    auth.set_access_token(access_token, access_secret)

    twitter_stream = Stream(auth, TweetsListener(c_socket))
    twitter_stream.filter(track=['football'
                                 ])  # this is the topic we are interested in
Ejemplo n.º 8
0
def search_for_hashtags(consumer_key, consumer_secret, access_token,
                        access_token_secret, hashtag_phrase):
    auth = OAuthHandler(consumer_key, consumer_secret)
    auth.set_access_token(access_token, access_token_secret)

    #initialize Tweepy API
    api = tweepy.API(auth)

    #get the name of the spreadsheet we will write to
    fname = '_'.join(re.findall(r"#(\w+)", hashtag_phrase))

    #open the spreadsheet we will write to
    with open('%s.csv' % (fname), 'w') as file:

        w = csv.writer(file)

        #write header row to spreadsheet
        w.writerow([
            'timestamp', 'tweet_text', 'username', 'all_hashtags',
            'followers_count'
        ])

        #for each tweet matching our hashtags, write relevant info to the spreadsheet
        for tweet in tweepy.Cursor(api.search, q=hashtag_phrase+' -filter:retweets', \
                                   lang="en", tweet_mode='extended').items(100):
            w.writerow([
                tweet.created_at,
                tweet.full_text.replace('\n', ' ').encode('utf-8'),
                tweet.user.screen_name.encode('utf-8'),
                [e['text'] for e in tweet._json['entities']['hashtags']],
                tweet.user.followers_count
            ])
Ejemplo n.º 9
0
def get_verification():

    #get the verifier key from the request url
    verifier = request.args['oauth_verifier']
    print(verifier)
    auth = OAuthHandler(CONSUMER_TOKEN, CONSUMER_SECRET)

    auth.request_token = {
        'oauth_token': request.args.get('oauth_token'),
        'oauth_token_secret': request.args.get('oauth_verifier')
    }

    # token = session['request_token']
    del session_t['request_token']

    # auth.set_request_token(token[0], token[1])

    try:
        auth.get_access_token(verifier)
        print('obtuve el access token')
        print(auth.access_token)
        print(auth.access_token_secret)
        print('termine')
    except tweepy.TweepError:
        print('Error! Failed to get access token.')

    #now you have access!
    api = tweepy.API(auth)

    #store in a db
    bdd['api'] = api
    bdd['access_token_key'] = auth.access_token
    bdd['access_token_secret'] = auth.access_token_secret
    print(bdd)
    return flask.redirect(flask.url_for('start'))
Ejemplo n.º 10
0
def trends(channel='assignment1', scheduled=True):

    #consumer_key = environ.get('consumer_key', None)
    #consumer_secret = environ.get('consumer_secret', None)
    #access_token = environ.get('access_token', None)
    #access_token_secret = environ.get('access_token_secret', None)

    auth = OAuthHandler(consumer_key, consumer_secret)
    auth.set_access_token(access_token, access_token_secret)
    api = API(auth)

    # Where On Earth ID for Philippines is 1187115.
    # Where On Earth ID for Worldwide 1.
    WOE_ID = 23424934

    trends = api.trends_place(WOE_ID)

    trends = json.loads(json.dumps(trends, indent=1))

    trendy = []
    for trend in trends[0]["trends"]:
        trendy.append((trend["name"]))

    trending = ', \n'.join(trendy[:10])

    if scheduled:
        slack_client.api_call("chat.postMessage",
                              channel=channel,
                              text=trending)

    return trending
Ejemplo n.º 11
0
def cmd_verify(bot, update, args, chat):
    if restrict_access(bot, update):
        return
    if not chat.twitter_request_token:
        bot.reply(update, "Use /auth command first")
        return
    if len(args) < 1:
        bot.reply(update, "No verifier code specified")
        return

    verifier_code = args[0]
    auth = OAuthHandler(bot.tw.auth.consumer_key, bot.tw.auth.consumer_secret)
    auth.request_token = json.loads(chat.twitter_request_token)
    try:
        auth.get_access_token(verifier_code)
    except TweepError:
        bot.reply(update, "Invalid verifier code. Use /auth again")
        return

    chat.twitter_token = auth.access_token
    chat.twitter_secret = auth.access_token_secret
    chat.save()
    bot.reply(update, "Access token setup complete")
    api = tweepy.API(auth)
    settings = api.get_settings()
    tz_name = settings.get("time_zone", {}).get("tzinfo_name")
    cmd_set_timezone(bot, update, [tz_name])
def cmd_verify(update: telegram.Update, context: CallbackContext) -> None:
    args = context.args
    bot = context.bot
    chat, _created = TelegramChat.get_or_create(
        chat_id=update.message.chat.id,
        tg_type=update.message.chat.type,
    )
    if not chat.twitter_request_token:
        bot.reply(update, "Use /auth command first")
        return
    if len(args) < 1:
        bot.reply(update, "No verifier code specified")
        return
    verifier_code = args[0]
    auth = OAuthHandler(bot.tw.auth.consumer_key, bot.tw.auth.consumer_secret)
    auth.request_token = json.loads(chat.twitter_request_token)
    try:
        auth.get_access_token(verifier_code)
    except TweepyException:
        bot.reply(update, "Invalid verifier code. Use /auth again")
        return
    chat.twitter_token = auth.access_token
    chat.twitter_secret = auth.access_token_secret
    chat.save()
    bot.reply(update, "Access token setup complete")
    api = tweepy.API(auth)
    settings = api.get_settings()
    tz_name = settings.get("time_zone", {}).get("tzinfo_name")
Ejemplo n.º 13
0
def send_tweets(c_socket):
    auth = OAuthHandler(consumer_key, consumer_secret)
    auth.set_access_token(access_token, access_secret)

    twitter_stream = Stream(auth, TweetsListener(c_socket))
    twitter_stream.filter(track=['Iran'
                                 ])  # este es el tema que nos interesa buscar
Ejemplo n.º 14
0
 def _oauth_init(self):
     self._oauth = OAuthHandler(social_keys.TWITTER_CONSUMER_KEY,
                                social_keys.TWITTER_CONSUMER_SECRET)
     self._oauth.set_access_token(
         social_keys.TWITTER_APP_ACCESS_TOKEN,
         social_keys.TWITTER_APP_ACCESS_TOKEN_SECRET)
     self._oauth_api = API(self._oauth)
Ejemplo n.º 15
0
def get_oauth():
    conf = ConfigParser.SafeConfigParser()
    conf.read("twitter.ini")
    auth = OAuthHandler(conf.get("Twitter", "CK"), conf.get("Twitter", "CS"))
    auth.set_access_token(conf.get("Twitter", "AT"), conf.get("Twitter", "AS"))

    return auth
def send_tweets(c_socket):
    auth = OAuthHandler(consumer_key, consumer_secret)
    auth.set_access_token(access_token, access_secret)

    twitter_stream = Stream(auth, TweetStreamListener(c_socket))
    twitter_stream.filter(
        languages=["nl"],
        track=['de', 'het', 'een', 'is', 'ben', 'zijn', 'word', 'werd'])
Ejemplo n.º 17
0
def get_oauth(init):
    consumer_key = init['consumer_key']
    consumer_secret = init['consumer_secret']
    access_key = init['access_key']
    access_secret = init['access_secret']
    auth = OAuthHandler(consumer_key, consumer_secret)
    auth.set_access_token(access_key, access_secret)
    return auth
Ejemplo n.º 18
0
 def __init__(self, access_token, access_token_secret, consumer_key,
              consumer_secret):
     self.analyser = SentimentIntensityAnalyzer()
     self.auth_handler = OAuthHandler(consumer_key, consumer_secret)
     self.auth_handler.set_access_token(access_token, access_token_secret)
     self.api = API(self.auth_handler,
                    wait_on_rate_limit=True,
                    wait_on_rate_limit_notify=True)
Ejemplo n.º 19
0
 def _get_rate_limit_status(self, key, secret):
     """
     Get rate limit status for specified access token key.
     """
     auth = OAuthHandler(self.consumer_key, self.consumer_secret)
     auth.set_access_token(key, secret)
     api = API(auth)
     return api.rate_limit_status()
Ejemplo n.º 20
0
def setup_listener(MEDIOS):
    auth = OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET)
    auth.set_access_token(ACCESS_TOKEN, ACCESS_TOKEN_SECRET)
    # Set up the listener. The 'wait_on_rate_limit=True' is needed to help with Twitter API rate limiting.
    listener = StreamListener(api=tweepy.API(wait_on_rate_limit=True))
    streamer = tweepy.Stream(auth=auth, listener=listener)
    print("Tracking: " + str(MEDIOS))
    streamer.filter(track=MEDIOS)
def get_oauth():
    consumer_key = 'TWITTER_CONSUMER_KEY'
    consumer_secret = 'TWITTER_CONSUMER_SECRET'
    access_key = 'TWITTER_ACCESS_KEY'
    access_secret = 'TWITTER_ACCESS_SECRET'
    auth = OAuthHandler(consumer_key, consumer_secret)
    auth.set_access_token(access_key, access_secret)
    return auth
Ejemplo n.º 22
0
def get_oauth():
    consumer_key = "cJXMUBcenymJSgUPfnyHYVBqd"
    consumer_secret = "JZbjCP6MzUnWLOoU6K2VouCpacmCwvYLmyXMY6wZzR6MyepvsN"
    access_key = "46786366-3BrGV7f5vOXlLMMhrPG32Y3tIQBJ14qiG5rnNVDPo"
    access_secret = "CMOZ61hlhuvDsddbeiYC9Qi34vXkrvyJhZa1v2AFrD3UK"
    auth = OAuthHandler(consumer_key, consumer_secret)
    auth.set_access_token(access_key, access_secret)
    return auth
Ejemplo n.º 23
0
    def __init__(self):
        auth = OAuthHandler(API_KEY, API_SECRET)
        auth.set_access_token(ACCESS_TOKEN, ACCESS_TOKEN_SECRET)
        self.api = tweepy.API(auth)

        self.username = self.api.me().screen_name
        self.max_tweet_len = 270  # the limit is 280 but twitter counts some characters as 2
        self.max_reply_len = self.max_tweet_len - len(self.username) - 2
Ejemplo n.º 24
0
def get_oauth():
    consumer_key = consumer['key']
    consumer_secret = consumer['secret']
    access_token = token['token']
    access_secret = token['secret']
    auth = OAuthHandler(consumer_key, consumer_secret)
    auth.set_access_token(access_token, access_secret)
    return auth
Ejemplo n.º 25
0
def send_tweets(c_socket):
    auth = OAuthHandler(consumer_key, consumer_secret)
    auth.set_access_token(access_token, access_secret)

    twitter_stream = Stream(auth, TweetsListener(c_socket))
    twitter_stream.filter(
        locations=[-180, -90, 180,
                   90])  # this is the topic we are interested in
Ejemplo n.º 26
0
def get_oauth():
    consumer_key = ''
    consumer_secret = ''
    access_key = ''
    access_secret = ''
    auth = OAuthHandler(consumer_key, consumer_secret)
    auth.set_access_token(access_key, access_secret)
    return auth
Ejemplo n.º 27
0
def get_oauth():
    consumer_key = config.get(CONFIG_SECTION, 'TWITTER_CONSUMER_KEY')
    consumer_secret = config.get(CONFIG_SECTION, 'TWITTER_CONSUMER_SECRET')
    access_key = config.get(CONFIG_SECTION, 'TWITTER_ACCESS_KEY')
    access_secret = config.get(CONFIG_SECTION, 'TWITTER_ACCESS_SECRET')
    auth = OAuthHandler(consumer_key, consumer_secret)
    auth.set_access_token(access_key, access_secret)
    return auth
Ejemplo n.º 28
0
def cmd_get_auth_url(bot, update, chat):
    auth = OAuthHandler(bot.tw.auth.consumer_key, bot.tw.auth.consumer_secret)
    auth_url = auth.get_authorization_url()
    chat.twitter_request_token = json.dumps(auth.request_token)
    chat.save()
    msg = "go to [this url]({}) and send me your verifier code using /verify code"
    bot.reply(update,
              msg.format(auth_url),
              parse_mode=telegram.ParseMode.MARKDOWN)
def sendData(c_socket):
    auth = OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET)
    auth.set_access_token(ACCESS_TOKEN, ACCESS_TOKEN_SECRET)

    twitter_stream = Stream(auth, TweetsListener(c_socket))
    twitter_stream.filter(track=[
        'donald', 'Trump', 'US2020', 'USelection', '2020Election', 'Biden',
        'JoeBiden', 'DonaldTrump'
    ])
Ejemplo n.º 30
0
def get_oauth():
    # 以下4つのキー等は適宜取得して置き換えてください。
    consumer_key = "E7PLfevrHNVI9ozuQlF6xXDgG"
    consumer_secret = "CfobRZOWqXvPytSbn3zUDklsS81bUWXJjd3RIEYcUKnOnd1kQx"
    access_key = "721661385977909249-wtx82HRTTSzm1mJgOnW0vbjR13tWCOr"
    access_secret = "uFeckhWHjU5JHBOGIvPLEHQgSbfRk3SjrxUBMyLNRNh7X"
    auth = OAuthHandler(consumer_key, consumer_secret)
    auth.set_access_token(access_key, access_secret)
    return auth