# coding=utf-8 from subzero.lib.dict import DictProxy class IgnoreDict(DictProxy): store = "ignore" # single item keys returned by helpers.items.getItems mapped to their parents translate_keys = { "section": "sections", "show": "series", "movie": "videos", "episode": "videos" } # getItems types mapped to their verbose names keys_verbose = { "sections": "Section", "series": "Series", "videos": "Item", } key_order = ("sections", "series", "videos") def __len__(self): try: return sum(len(self.Dict[self.store][key]) for key in self.key_order) except KeyError: # old version self.Dict[self.store] = self.setup_defaults() return 0 def translate_key(self, name): return self.translate_keys.get(name) def verbose(self, name): return self.keys_verbose.get(name) def get_title_key(self, kind, key): return "%s_%s" % (kind, key) def add_title(self, kind, key, title): self["titles"][self.get_title_key(kind, key)] = title def remove_title(self, kind, key): title_key = self.get_title_key(kind, key) if title_key in self.titles: del self.titles[title_key] def get_title(self, kind, key): title_key = self.get_title_key(kind, key) if title_key in self.titles: return self.titles[title_key] def save(self): Dict.Save() def setup_defaults(self): return {"sections": [], "series": [], "videos": [], "titles": {}} ignore_list = IgnoreDict(Dict)