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
Exemplo n.º 2
0
    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()