def fill_package_build(self, pkg: ArchPackage): cached_pkgbuild = pkg.get_cached_pkgbuild_path() if pkg.installed and os.path.exists(cached_pkgbuild): with open(cached_pkgbuild) as f: pkg.pkgbuild = f.read() else: res = self.http_client.get(pkg.get_pkg_build_url()) if res and res.status_code == 200 and res.text: pkg.pkgbuild = res.text
def get_info(self, pkg: ArchPackage) -> dict: if pkg.installed: t = Thread(target=self.mapper.fill_package_build, args=(pkg, )) t.start() info = pacman.get_info_dict(pkg.name) t.join() if pkg.pkgbuild: info['13_pkg_build'] = pkg.pkgbuild info['14_installed_files'] = pacman.list_installed_files(pkg.name) return info else: info = { '01_id': pkg.id, '02_name': pkg.name, '03_description': pkg.description, '03_version': pkg.version, '04_popularity': pkg.popularity, '05_votes': pkg.votes, '06_package_base': pkg.package_base, '07_maintainer': pkg.maintainer, '08_first_submitted': pkg.first_submitted, '09_last_modified': pkg.last_modified, '10_url': pkg.url_download } srcinfo = self.aur_client.get_src_info(pkg.name) if srcinfo: if srcinfo.get('makedepends'): info['12_makedepends'] = srcinfo['makedepends'] if srcinfo.get('depends'): info['13_dependson'] = srcinfo['depends'] if srcinfo.get('optdepends'): info['14_optdepends'] = srcinfo['optdepends'] if srcinfo.get('checkdepends'): info['15_checkdepends'] = srcinfo['checkdepends'] if pkg.pkgbuild: info['00_pkg_build'] = pkg.pkgbuild else: info['11_pkg_build_url'] = pkg.get_pkg_build_url() return info
def fill_package_build(self, pkg: ArchPackage): res = self.http_client.get(pkg.get_pkg_build_url()) if res and res.status_code == 200 and res.text: pkg.pkgbuild = res.text