コード例 #1
0
ファイル: wrangler.py プロジェクト: vikasgorur/wrangler
def main():
    logging.basicConfig(level=logging.INFO,
                        format='%(asctime)s %(name)-12s %(levelname)-8s %(message)s',
                        datefmt='%m-%d %H:%M')
    logger = logging.getLogger('main')
    logger.info('starting up')

    ebooks = EbooksText(Config)

    if not validate_run_times(Config):
        logger.error('invalid run times specified')
        sys.exit(1)

    while True:
        ebooks.update()
        peer = TwitterPeer(Config)
        conv = Conversation(ebooks, peer)

        next_run = next_run_time(Config)
        logger.info('sleeping until {0}'.format(next_run))
        pause.until(next_run)
        conv.talk()
コード例 #2
0
ファイル: wrangler.py プロジェクト: vikasgorur/wrangler
def main():
    logging.basicConfig(
        level=logging.INFO,
        format='%(asctime)s %(name)-12s %(levelname)-8s %(message)s',
        datefmt='%m-%d %H:%M')
    logger = logging.getLogger('main')
    logger.info('starting up')

    ebooks = EbooksText(Config)

    if not validate_run_times(Config):
        logger.error('invalid run times specified')
        sys.exit(1)

    while True:
        ebooks.update()
        peer = TwitterPeer(Config)
        conv = Conversation(ebooks, peer)

        next_run = next_run_time(Config)
        logger.info('sleeping until {0}'.format(next_run))
        pause.until(next_run)
        conv.talk()
コード例 #3
0
ファイル: conversation.py プロジェクト: vikasgorur/wrangler
        elif choice.isdigit() and 1 <= int(choice) <= self.batch_size:
            self.peer.post(self._tweets[int(choice) - 1])
            self.peer.send('Tweet {0} posted.'.format(int(choice)))
            return False
        elif choice.lower().startswith('q'):
            self.peer.send('bye')
            return False
        else:
            self.peer.send('Unknown command, aborting conversation.')
            return False

    def talk(self):
        "Talk to the handler once by sending tweets and waiting for input"

        while True:
            self._tweets = self.generate_tweets(self.batch_size)
            self.peer.send('\n'.join(
                ['{0}. {1}'.format(i+1, self._tweets[i]) for i in range(self.batch_size)]))

            if not self._interpret(self.peer.input()):
                break

if __name__ == '__main__':
    logging.basicConfig(level=logging.INFO,
                        format='%(asctime)s %(name)-12s %(levelname)-8s %(message)s',
                        datefmt='%m-%d %H:%M')
    ebooks = EbooksText(Config)
    peer = TwitterPeer(Config) if len(sys.argv) == 2 and sys.argv[1] == 'twitter' else ConsolePeer()
    conv = Conversation(ebooks, peer)
    conv.talk()
コード例 #4
0
ファイル: test_ebooks.py プロジェクト: vikasgorur/wrangler
def test_update_required_after_12_hours(tmpdir):
    e = EbooksText(Config)
    e._write_timestamp()
    with freeze_time(datetime.datetime.now() + datetime.timedelta(hours=13)):
        assert e._update_required()
コード例 #5
0
ファイル: test_ebooks.py プロジェクト: vikasgorur/wrangler
def test_update_required_if_timestamp(tmpdir):
    e = EbooksText(Config)
    e._write_timestamp()
    assert not e._update_required()
コード例 #6
0
ファイル: test_ebooks.py プロジェクト: vikasgorur/wrangler
def test_update_required(tmpdir):
    e = EbooksText(Config)
    assert e._update_required()
コード例 #7
0
def test_update_required_after_12_hours(tmpdir):
    e = EbooksText(Config)
    e._write_timestamp()
    with freeze_time(datetime.datetime.now() + datetime.timedelta(hours=13)):
        assert e._update_required()
コード例 #8
0
def test_update_required_if_timestamp(tmpdir):
    e = EbooksText(Config)
    e._write_timestamp()
    assert not e._update_required()
コード例 #9
0
def test_update_required(tmpdir):
    e = EbooksText(Config)
    assert e._update_required()