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()
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()
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()
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()
def test_update_required_if_timestamp(tmpdir): e = EbooksText(Config) e._write_timestamp() assert not e._update_required()
def test_update_required(tmpdir): e = EbooksText(Config) assert e._update_required()