# https://imasoftwareengineer.tistory.com/97?category=791547
import tweepy
from tweepy.streaming import StreamListener
from tweepy import OAuthHandler
from tweepy import Stream
import json

# twitter 계정이 있다면 앱을 만들어서 등록
# 그렇지 않을 시에는 데이터베이스에 있는 정보 등록
consumer_key = 'M3ioqfTgFkX2x04cYj8zoxoqB'
consumer_secret = 'W52Zj3NL4CCwN1ROFsJY2M6qP6AZtNtWu2Ppkvf21x7PkFnEcz'
access_token = '728767904-rvWxQuaQ7kIpOibulxvoHipDT8pWuEoukp4GaFYu'
access_secret = 'DrIV41WcnXKCTW1rDUAzmcD4alzq3cHYW90pfrOvvhuvL'

# 리스너 - 스트리밍 API로 부터 값이 들어오면 아래의 리스너가 실행된다.
class Listener(StreamListener):
    def on_data(self, data):
        try:
            all_data = json.loads(data)
            tweet = all_data["text"]
            print(tweet)
        except:
            print('error')

    def on_error(self, status):
        print("error: " + str(status))

def main():
    # 리스너 생성
    l = Listener()
    auth = OAuthHandler(consumer_key, consumer_secret)
    auth.set_access_token(access_token, access_secret)
    stream = Stream(auth, l) # 리스너와 인증키을 통해 스트리밍 객체 생성

    # 언어=한국어(ko), 해시태그=필터할 단어
    stream.filter(languages=["ko"], track=['코로나'])

if __name__ == '__main__':
    main()

main()