diff --git a/pisi/db/packagedb.py b/pisi/db/packagedb.py index 0d9e3063..02c1e3ad 100644 --- a/pisi/db/packagedb.py +++ b/pisi/db/packagedb.py @@ -84,6 +84,20 @@ class PackageDB(lazydb.LazyDB): pkg, repo = self.get_package_repo(name, repo) return pkg + def search_in_packages(self, packages, terms, lang=None): + resum = '.*?%s.*?' + redesc = '.*?%s.*?' + if not lang: + lang = pisi.pxml.autoxml.LocalText.get_lang() + found = [] + for name in packages: + xml = self.pdb.get_item(name) + if terms == filter(lambda term: re.compile(term, re.I).search(name) or \ + re.compile(resum % (lang, term), re.I).search(xml) or \ + re.compile(redesc % (lang, term), re.I).search(xml), terms): + found.append(name) + return found + def search_package(self, terms, lang=None, repo=None): resum = '.*?%s.*?' redesc = '.*?%s.*?'