aboutsummaryrefslogtreecommitdiff
path: root/codegen/lib/download.py
diff options
context:
space:
mode:
authormat <git@matdoes.dev>2025-06-17 06:49:07 -1200
committermat <git@matdoes.dev>2025-06-17 06:49:07 -1200
commitffbe7a3e426e66c21c7156780728f96f8277c68a (patch)
tree5358ab47c013cc848dd7d24781676062fc87da4e /codegen/lib/download.py
parent319d144995e0ca635806941cbb5d6ceaf0fcf515 (diff)
downloadazalea-drasl-ffbe7a3e426e66c21c7156780728f96f8277c68a.tar.xz
1.21.6 (#215)
Diffstat (limited to 'codegen/lib/download.py')
-rw-r--r--codegen/lib/download.py37
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}")):