import tweepy

consumer_key = ''
consumer_secret = ''
access_token = ''
access_token_secret = ''

autorizar = tweepy.OAuthHandler(consumer_key, consumer_secret)
autorizar.set_access_token(access_token, access_token_secret)

"""
Explanation: Desafio 1
1. Entender a API de Streaming do Twitter
Ver slides 14 até 21.
Da mesma forma que fizemos na API REST do Twitter, temos que salvar as chaves de acesso, bem como definir o objeto OAuthHandler para cuidar da autenticação e validação do acesso.
End of explanation
"""


class DadosPublicosTwitter(tweepy.StreamListener):
    def on_status(self, dados):
        print("---> ", dados.text)

"""
Explanation: 2 .Criar uma classe herdando os atributos da classe StreamListener
End of explanation
"""


dados_twitter = DadosPublicosTwitter()

fluxo = tweepy.Stream(autorizar, dados_twitter)

"""
Explanation: 3. Instanciar essa classe e utilizá-la para se conectar a API através de um objeto de Stream.
End of explanation
"""


fluxo.filter(track=['Big Data'])

"""
Explanation: 4. Iniciar um fluxo (Stream)
O parâmetro track aceita uma lista como argumento e cada elemento da lista é um termo que será filtrado.
Para parar a execução do código será necessário clicar em Kernel -> Interrupt ou no botão de parar, representado por um quadrado.
<span style="color:red;">Um erro será gerado:</span> Provavelmente o KeyboardInterrupt.
End of explanation
"""


