def parseTags(self, args, cfg): # use default tags from file if cfg.default_tags: default_tags = [x.strip() for x in re.sub(' +', ' ', cfg.default_tags).split(' ')] if not args.tags: args.tags = [] args.tags = args.tags + list(set(default_tags) - set(args.tags)) if cfg.blacklist: blacklist_tags = [x.strip() for x in re.sub(' +', ' ', cfg.blacklist).split(' ')] if not args.blacklist: args.blacklist = [] args.blacklist = args.blacklist + list(set(blacklist_tags) - set(args.blacklist)) if cfg.whitelist: whitelist_tags = [x.strip() for x in re.sub(' +', ' ', cfg.whitelist).split(' ')] if not args.whitelist: args.whitelist = [] args.whitelist = args.whitelist + list(set(whitelist_tags) - set(args.whitelist)) query = parse_query(args.tags) if isinstance(query, str): logging.error("Error in config file, malformed query: %s", query) sys.exit(1) # cut down the tag list if it have too much items max_tags_number = cfg.max_tags if query['tags'] and len(query['tags']) > max_tags_number: logging.warning('Using more than %i tags, cutting down list', max_tags_number) query['tags'] = query['tags'][:max_tags_number] return query
def startSearch(self): text = self.queryBox.text().strip() if not text: return query = utils.parse_query(text) if isinstance(query, str): self.statusLabel.setText(self.tr("Error in term: %s") % query) return if not query.get('site') and query.get('rating'): self.statusLabel.setText(self.tr("Search by rating depends on site")) return self.thumb.stop() self.thumb.wait() self.statusLabel.setText(self.tr("Processing...")) self.thumb.setData(query, self.db) size = self.zoomSlider.value() * self.SLIDER_MULT self.listWidget.setIconSize(QtCore.QSize(size, size)) self.thumb.start()