MiddleArch/utils/middlearch.py

37 lines
922 B
Python

from io import BytesIO
import logging
import re
import requests as r
import tarfile
BASE_URL = "https://arch.middleearth.fr"
DB_NAME = "casio.db"
def get_from_regex(regex, package, arch):
file = BytesIO(r.get(f"{BASE_URL}/{arch}/{DB_NAME}").content)
db = tarfile.open(fileobj=file)
name = list(filter(
lambda item: item.isdir() and package in item.name,
db.getmembers()
))[0].name
return regex.search(name).group(1)
def get_package_version(package, arch):
regex = re.compile(".+-(\d+\.\d+(?:\.\d+)?)-\d+")
version = get_from_regex(regex, package, arch)
logging.debug(f"{package}: found {version}")
return version
def get_package_tarball(package, arch):
regex = re.compile("(.+)")
tarball = get_from_regex(regex, package, arch) + f"-{arch}.pkg.tar.xz"
logging.debug(f"{package}: found {tarball}")
return tarball, f"{BASE_URL}/{arch}/{tarball}"