From d44c671661707282e6ec06dc4a0c0cafb8ba19aa Mon Sep 17 00:00:00 2001 From: Anton Hvornum Date: Tue, 15 Sep 2020 11:14:58 +0000 Subject: Adding package search via upstream package database and JSON. --- archinstall/lib/packages.py | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 archinstall/lib/packages.py (limited to 'archinstall/lib/packages.py') diff --git a/archinstall/lib/packages.py b/archinstall/lib/packages.py new file mode 100644 index 00000000..3a671784 --- /dev/null +++ b/archinstall/lib/packages.py @@ -0,0 +1,27 @@ +import urllib.request, urllib.parse +import ssl, json + +BASE_URL = 'https://www.archlinux.org/packages/search/json/?name={package}' + +def find_package(name): + """ + Finds a specific package via the package database. + It makes a simple web-request, which might be a bit slow. + """ + ssl_context = ssl.create_default_context() + ssl_context.check_hostname = False + ssl_context.verify_mode=ssl.CERT_NONE + response = urllib.request.urlopen(BASE_URL.format(package=name), context=ssl_context) + data = response.read().decode('UTF-8') + return json.loads(data) + +def find_packages(*names): + """ + This function returns the search results for many packages. + The function itself is rather slow, so consider not sending to + many packages to the search query. + """ + result = {} + for package in names: + result[package] = find_package(package) + return result \ No newline at end of file -- cgit v1.2.3-54-g00ecf