diff options
| author | mat <git@matdoes.dev> | 2025-06-17 06:49:07 -1200 |
|---|---|---|
| committer | mat <git@matdoes.dev> | 2025-06-17 06:49:07 -1200 |
| commit | ffbe7a3e426e66c21c7156780728f96f8277c68a (patch) | |
| tree | 5358ab47c013cc848dd7d24781676062fc87da4e /codegen/lib/download.py | |
| parent | 319d144995e0ca635806941cbb5d6ceaf0fcf515 (diff) | |
| download | azalea-drasl-ffbe7a3e426e66c21c7156780728f96f8277c68a.tar.xz | |
1.21.6 (#215)
Diffstat (limited to 'codegen/lib/download.py')
| -rw-r--r-- | codegen/lib/download.py | 37 |
1 files changed, 25 insertions, 12 deletions
diff --git a/codegen/lib/download.py b/codegen/lib/download.py index 238336e2..a557b523 100644 --- a/codegen/lib/download.py +++ b/codegen/lib/download.py @@ -135,25 +135,37 @@ def get_mappings_for_version(version_id: str): return Mappings.parse(mappings_text) -def get_yarn_versions(): +def get_fabric_data(version_id: str): # https://meta.fabricmc.net/v2/versions/yarn - if not os.path.exists(get_dir_location("__cache__/yarn_versions.json")): - print("\033[92mDownloading yarn versions...\033[m") - yarn_versions_data = requests.get( - "https://meta.fabricmc.net/v2/versions/yarn" - ).json() - with open(get_dir_location("__cache__/yarn_versions.json"), "w") as f: + path = get_dir_location(f"__cache__/fabric-{version_id}.json") + + if not os.path.exists(path): + print(f"\033[92mDownloading Fabric metadata for {version_id}...\033[m") + url = f"https://meta.fabricmc.net/v1/versions/loader/{version_id}" + yarn_versions_data = requests.get(url).json() + with open(path, "w") as f: json.dump(yarn_versions_data, f) else: - with open(get_dir_location("__cache__/yarn_versions.json"), "r") as f: + with open(path, "r") as f: yarn_versions_data = json.load(f) return yarn_versions_data -def get_yarn_data(version_id: str): - for version in get_yarn_versions(): - if version["gameVersion"] == version_id: - return version +def get_latest_fabric_api_version(): + path = get_dir_location("__cache__/fabric-api-maven-metadata.xml") + + if not os.path.exists(path): + print("\033[92mDownloading Fabric API metadata...\033[m") + url = "https://maven.fabricmc.net/net/fabricmc/fabric-api/fabric-api/maven-metadata.xml" + maven_metadata_xml = requests.get(url).text + with open(path, "w") as f: + json.dump(maven_metadata_xml, f) + else: + with open(path, "r") as f: + maven_metadata_xml = json.load(f) + + tree = ET.ElementTree(ET.fromstring(maven_metadata_xml)) + return tree.find(".//latest").text def get_fabric_api_versions(): @@ -210,6 +222,7 @@ def clear_version_cache(): "yarn_versions.json", "fabric_api_versions.json", "fabric_loader_versions.json", + "fabric-api-maven-metadata.xml", ] for file in files: if os.path.exists(get_dir_location(f"__cache__/{file}")): |
