Попытка заставить моего твипивого слушателя работать с интервалами - PullRequest
0 голосов
/ 24 декабря 2018

Это модифицированная версия кода, которую я должен транслировать в твиты.Сейчас я пытаюсь добавить несколько строк, чтобы он соответствовал ограничениям скорости твиттера, но я не могу заставить его работать.Моя цель - дать ему некоторое время поработать, избегая всех ошибок.

start_time = time.time() #grabs the system time

class CustomStreamListener(tweepy.StreamListener):
    def __init__(self, start_time, time_limit):
        self.time = start_time
        self.limit = time_limit
        self.tweet_data = []

    def on_data(self, data):
        while (time.time() - self.time) < self.limit:
            try:
                with open('unlimited.json', 'a') as f:
                    f.write(data)
                    return True
            except BaseException as e:
                print("Error on_data: %s" % str(e))
            return True

    def on_error(self, status_code):
        print >> sys.stderr, 'Encountered error with status code:', status_code
        time.sleep(5)
        return True # Don't kill the stream

    def on_timeout(self):
        print >> sys.stderr, 'Timeout...'
        return True # Don't kill the stream

sapi = tweepy.streaming.Stream(auth, CustomStreamListener(start_time, time_limit=20))
...