def __init__(self): # i18n languages = [] lc, encoding = locale.getdefaultlocale() if lc: languages = [lc] languages += constants.DEFAULT_LANGUAGES gettext.bindtextdomain(constants.SF_COMPACT_NAME, constants.LOCALE_DIR) gettext.textdomain(constants.SF_COMPACT_NAME) language = gettext.translation(constants.SF_COMPACT_NAME, constants.LOCALE_DIR, languages = languages, fallback = True) _ = language.gettext self.series_manager = SeriesManager() self.settings = Settings() self.settingsWrapper = SettingsWrapper() load_conf_item = AsyncItem(self.settings.load, (constants.SF_CONF_FILE,), self._settings_load_finished) load_shows_item = AsyncItem(self.series_manager.load, (constants.SF_DB_FILE,), self._load_finished) self.request = AsyncWorker(True) self.request.queue.put(load_conf_item) self.request.queue.put(load_shows_item) self.request.start() self.version = constants.SF_VERSION
def update_episode_list(self, episode_list): add_special_seasons = Settings().getConf(Settings.ADD_SPECIAL_SEASONS) series_manager = SeriesManager() for episode in episode_list: exists = False for ep in self.episode_list: if ep == episode: exists = True ep.merge_episode(episode) series_manager.changed = True if not exists: if not add_special_seasons and \ self.is_special_season(episode.season_number): continue self.episode_list.append(episode) series_manager.changed = True
def get_seasons_model(self): season_list = [] for season in self.get_seasons(): season_list.append({ 'seasonName': self.get_season_name(season), 'seasonNumber': season, 'seasonInfoMarkup': self.get_season_info_markup(season), 'seasonImage': self.get_season_image(season), 'isWatched': self.is_completely_watched(season, only_aired=True) }) return SortedSeasonsList(season_list, Settings())
def _get_complete_show_from_id(self, show_id, language): tvdb_show_episodes = self.thetvdb.get_show_and_episodes( show_id, language) if not tvdb_show_episodes: return None show = self._convert_thetvdbshow_to_show(tvdb_show_episodes[0]) show.id = self._get_id_for_show() show.episode_list = [] for tvdb_ep in tvdb_show_episodes[1]: episode = self._convert_thetvdbepisode_to_episode(tvdb_ep, show) add_special_seasons = Settings().getConf( Settings.ADD_SPECIAL_SEASONS) if not add_special_seasons and \ show.is_special_season(episode.season_number): continue show.episode_list.append(episode) self.series_list.append(show) self.changed = True self.isUpdating = False pyotherside.send('showListChanged', self.changed) pyotherside.send('updating', self.isUpdating) return show
def update_all_shows_episodes(self, show_list=[]): self.isUpdating = True pyotherside.send('updating', self.isUpdating) show_list = show_list or self.series_list async_worker = AsyncWorker(False) update_images_worker = AsyncWorker(True) i = 0 n_shows = len(show_list) for i in range(n_shows): update_ended_shows = Settings().getConf( Settings.UPDATE_ENDED_SHOWS) show = show_list[i] if show.status and show.status == 'Ended' and not update_ended_shows: async_item = AsyncItem( self._empty_callback, (), self._set_show_episodes_complete_cb, (show, update_images_worker, i == n_shows - 1)) async_worker.queue.put(async_item) continue pyotherside.send('episodesListUpdating', show.get_name()) show.set_updating(True) async_item = AsyncItem( self.thetvdb.get_show_and_episodes, ( show.thetvdb_id, show.language, ), self._set_show_episodes_complete_cb, (show, update_images_worker, i == n_shows - 1)) async_worker.queue.put(async_item) async_item = AsyncItem( self._set_show_images, (show, ), None, ) update_images_worker.queue.put(async_item) async_worker.start() return async_worker
def getSortByPrio(self): return Settings().getConf(Settings.SHOWS_SORT_BY_PRIO)
def setSortByGenre(self, add): Settings().setConf(Settings.SHOWS_SORT_BY_GENRE, add)
def setHighlightSpecial(self, add): Settings().setConf(Settings.HIGHLIGHT_SPECIAL, add)
def setLastCompleteUpdate(self, date): Settings().setConf(Settings.LAST_COMPLETE_UPDATE, date)
def setUpdateEndedShows(self, add): Settings().setConf(Settings.UPDATE_ENDED_SHOWS, add)
def setSearchLanguage(self, language): Settings().setConf(Settings.SEARCH_LANGUAGE, language)
def setEpisodesOrder(self, newOrder): Settings().setConf(Settings.EPISODES_ORDER_CONF_NAME, newOrder)
def getEpisodesOrder(self): return Settings().getConf(Settings.EPISODES_ORDER_CONF_NAME)
def setHideCompletedShows(self, add): Settings().setConf(Settings.HIDE_COMPLETED_SHOWS, add)
def getHideCompletedShows(self): return Settings().getConf(Settings.HIDE_COMPLETED_SHOWS)
def setAddSpecialSeasons(self, add): Settings().setConf(Settings.ADD_SPECIAL_SEASONS, add)
def getAddSpecialSeasons(self): return Settings().getConf(Settings.ADD_SPECIAL_SEASONS)
def get_series_list_by_prio(self): series_list = [] for show in self.series_list: series_list.append(show.get_dict()) return SortedSeriesList(series_list, Settings(), by_prio=True)
def setSortByPrio(self, add): Settings().setConf(Settings.SHOWS_SORT_BY_PRIO, add)
def getSearchLanguage(self): return Settings().getConf(Settings.SEARCH_LANGUAGE)
def getSeasonsOrder(self): return Settings().getConf(Settings.SEASONS_ORDER_CONF_NAME)
def getUpdateEndedShows(self): return Settings().getConf(Settings.UPDATE_ENDED_SHOWS)
def setSeasonsOrder(self, newOrder): Settings().setConf(Settings.SEASONS_ORDER_CONF_NAME, newOrder)
def getLastCompleteUpdate(self): return Settings().getConf(Settings.LAST_COMPLETE_UPDATE)
def get_sorted_episode_list_by_season(self, season): episode_list = [] for episode in self.get_episode_list_by_season(season): episode_list.append(episode.get_dict()) return SortedEpisodesList(episode_list, Settings())
def getHighlightSpecial(self): return Settings().getConf(Settings.HIGHLIGHT_SPECIAL)
def setShowsSort(self, newOrder): Settings().setConf(Settings.SHOWS_SORT, newOrder)
def getShowsSort(self): return Settings().getConf(Settings.SHOWS_SORT)
def getSortByGenre(self): return Settings().getConf(Settings.SHOWS_SORT_BY_GENRE)