def addValues(self, values): '''Parses a dictionary of values into the item's fields''' try: self.parents = values['parents'].split(' ') except KeyError: self.parents = [] self.q_parents = [] self.q_children = [] self.urlBasename = self.getUrlBasename(values.get('url')) self.url = self.getUrl(self.urlBasename) self.outFileBasename = self.getOutFileBasename(values.get('baseoutfile')) self.outFile = self.getOutFile(self.outFileBasename) self.title = values.get('title', self._name) self.description = values.get('description', '') self.author = values.get('author', glob.author) self.q_author = None self.time = int(values.get('time', 0)) self.sortby = values.get('sortby', 'time title') self.sortreverse = (values.get('sortreverse', 'true')) == 'true' self.isAFolder = False try: self.contentfile = os.path.join(self._fpath, values['content']) self.text = None except KeyError: self.contentfile = None try: self.text = values['text'] except KeyError: self.isAFolder = True self.lspic = values.get('lspic') # parse all [class_x] values into self.classes.[x] self.classes = defaultdict(lambda: []) self.classes.update({ k: v.split(' ') for k, v in map( lambda x: (Util.startsWithTrim(x[0], 'class_'), x[1]) , values.items() ) if k is not None }) Util.dicAddNo(self.classes, 'lsi', self.classes.get('ls')) self.badge = (values.get('badge', 'true')) == 'true'