def __init__(self, version, app_quit, update_source): super(MainUI, self).__init__() self.app_quit = app_quit self.finished = False self.version = version self.update_source = update_source self.downloaders = {} self.setWindowTitle('Encuentro') self.programs_data = data.ProgramsData(self, self._programs_file) self._touch_config() # finish all gui stuff self.big_panel = central_panel.BigPanel(self) self.episodes_list = self.big_panel.episodes self.episodes_download = self.big_panel.downloads_widget self.episode_channels = [CHANNELS_ALL] + sorted( set(e.channel for e in self.episodes_list._model.episodes if e.channel)) self.setCentralWidget(self.big_panel) # the setting of menubar should be almost in the end, because it may # trigger the wizard, which needs big_panel and etc. self.action_play = self.action_download = None self.filter_line = self.filter_cbox = self.needsomething_alert = None self._menubar() systray.show(self) if config.get('autorefresh'): ue = update.UpdateEpisodes(self, update_source) ue.background() else: # refresh data if never done before or if last # update was 7 days ago last_refresh = config.get('autorefresh_last_time') if last_refresh is None or (dt.datetime.now() - last_refresh > dt.timedelta(7)): ue = update.UpdateEpisodes(self, update_source) ue.background() self.show() self.episodes_download.load_pending() logger.debug("Main UI started ok")
def refresh_episodes(self, _=None): """Update and refresh episodes.""" ue = update.UpdateEpisodes(self, self.update_source) ue.interactive()