Example #1
0
    def __init__(self, cache_manager: cache.CacheManager,
                 discord_manager: discord.DiscordManager):
        super().__init__()

        self.discord = discord_manager

        auth = tweepy.OAuthHandler(os.environ['TWITTER_API_KEY'],
                                   os.environ['TWITTER_API_SECRET'])
        auth.set_access_token(os.environ['TWITTER_USER_KEY'],
                              os.environ['TWITTER_USER_SECRET'])

        api = tweepy.API(auth)

        twitter_cache = cache_manager.get_data('twitter')

        twitter_accounts = os.environ['TWITTER_ACCOUNTS'].split(',')

        follow = []

        for screen_name in twitter_accounts:
            if screen_name in twitter_cache:
                follow.append(twitter_cache[screen_name])
            else:
                user_id = str(api.get_user(screen_name).id)
                follow.append(user_id)
                twitter_cache[screen_name] = user_id

        cache_manager.set_data('twitter', twitter_cache)

        self.myStream = tweepy.Stream(auth=auth, listener=self)
        self.myStream.filter(follow=follow, is_async=True)