From d5b3c5480319970531a0c11e49addc5b4f2ba1ed Mon Sep 17 00:00:00 2001 From: Marc Foley Date: Fri, 8 Dec 2023 12:44:40 +0000 Subject: [PATCH] servers: get family version from api if it exists --- Lib/gftools/push/servers.py | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/Lib/gftools/push/servers.py b/Lib/gftools/push/servers.py index bd2eeb137..9e58c819e 100644 --- a/Lib/gftools/push/servers.py +++ b/Lib/gftools/push/servers.py @@ -32,16 +32,23 @@ config = ConfigParser() config.read(config_fp) SANDBOX_META_URL = config["urls"]["sandbox_meta"] + SANDBOX_VERSION_URL = config["urls"]["sandbox_versions"] PRODUCTION_META_URL = config["urls"]["production_meta"] + PRODUCTION_VERSION_URL = config["urls"]["production_versions"] DEV_META_URL = config["urls"]["dev_meta"] + DEV_VERSION_URL = config["urls"]["dev_versions"] SANDBOX_FAMILY_DOWNLOAD = config["urls"]["sandbox_family_download"] DEV_FAMILY_DOWNLOAD = config["urls"]["dev_family_download"] + else: SANDBOX_META_URL = os.environ.get("SANDBOX_META_URL") + SANDBOX_VERSION_URL = os.environ.get("SANDBOX_VERSIONS") PRODUCTION_META_URL = os.environ.get("PRODUCTION_META_URL") + PRODUCTION_VERSION_URL = os.environ.get("PRODUCTION_VERSIONS") DEV_META_URL = os.environ.get("DEV_META_URL") SANDBOX_FAMILY_DOWNLOAD = os.environ.get("SANDBOX_FAMILY_DOWNLOAD") DEV_FAMILY_DOWNLOAD = os.environ.get("DEV_FAMILY_DOWNLOAD") + DEV_VERSION_URL = os.environ.get("DEV_VERSIONS") @lru_cache @@ -72,14 +79,21 @@ def __init__( name: str, url: str = PRODUCTION_META_URL, dl_url: str = PROD_FAMILY_DOWNLOAD, + version_url: str = PRODUCTION_VERSION_URL, ): self.name = name self.url = url self.dl_url = dl_url + self.version_url = version_url self.families: dict[str, Family] = {} self.designers: dict[str, Designer] = {} self.metadata: dict[str, FamilyMeta] = {} self.axisregistry: dict[str, Axis] = {} + self.family_versions = json.loads(requests.get(self.version_url).text[5:]) + self.family_versions = { + i["name"]: i["fontVersions"][0]["version"] + for i in self.family_versions["familyVersions"] + } def compare_push_item(self, item: Items): server_item = self.find_item(item) @@ -103,10 +117,15 @@ def update_axis_registry(self, axis_data): self.axisregistry[axis["tag"]] = Axis.from_gf_json(axis) def update_family(self, name: str): - family = Family.from_gf(name, dl_url=self.dl_url) - if family: - self.families[name] = family + family_version = self.family_versions.get(name) + if family_version: + self.families[name] = Family(name, family_version) return True + else: + family = Family.from_gf(name, dl_url=self.dl_url) + if family: + self.families[name] = family + return True return False def update_family_designers(self, name: str):