def start(self): clock = ClockThread.ClockThread() clock.setDaemon(True) clock.start() musicPlayer = MusicPlayer.MusicPlayer() textToSpeech = TextToSpeech.TextToSpeech() weather = Weather.Weather() segmentDimmer = SegmentDimmerThread.SegmentDimmerThread(clock, weather) segmentDimmer.setDaemon(True) segmentDimmer.start() gCalendar = GCalendar.GCalendar() volumeController = VolumeControllerThread.VolumeControllerThread() volumeController.setDaemon(True) volumeController.start() sleep(1) # Wait one second so clock's hour and minute values get filled ready for when alarm needs them alarm = AlarmThread.AlarmThread(musicPlayer, textToSpeech, weather, clock, gCalendar) alarm.setDaemon(True) # DEFAULT WAKEUP TIME - 6:00AM alarm.setAlarm(6,0) alarm.start() internalCommServer = InternalCommServer.InternalCommServer(alarm, musicPlayer, textToSpeech) internalCommServer.setDaemon(True) internalCommServer.start() try: while (self.ended == False): sleep(1) except (KeyboardInterrupt, SystemExit): logger.warn("Interrupted") logger.warn("Main powering off process beginning") clock.end() alarm.end() segmentDimmer.end() volumeController.end() internalCommServer.end() sleep(2) logger.info("Main powering off process finished")
y += 1 for event in calendar_data.events: screen.addstr(y, 0, ' ') # because we can overflow screen.addstr(y, 1, event.start.strftime('%a - %X')) screen.addstr(y, 19, event.summary.encode(code)) y += 1 return y def render_screen(): calendar_list = calendar.get_calendar_list() draw_with_calendar_list(stdscr, calendar_list) stdscr.refresh() if __name__ == '__main__': # we're going to want to delay starting curses until after we auth! # move to after teh ctor for GCalendar start_curses() calendar = GCalendar('client_secrets.json', sys.argv) stdscr.nodelay(1) while 1: try: render_screen() time.sleep(sleepTime * 60) except httplib.BadStatusLine: continue end_curses()