diff options
Diffstat (limited to 'codegen/lib/download.py')
| -rw-r--r-- | codegen/lib/download.py | 31 |
1 files changed, 30 insertions, 1 deletions
diff --git a/codegen/lib/download.py b/codegen/lib/download.py index e9712f8d..d9e2e63f 100644 --- a/codegen/lib/download.py +++ b/codegen/lib/download.py @@ -1,4 +1,5 @@ from lib.utils import get_dir_location +import xml.etree.ElementTree as ET from .mappings import Mappings import requests import json @@ -118,11 +119,39 @@ def get_yarn_data(version_id: str): return version +def get_fabric_api_versions(): + # https://maven.fabricmc.net/net/fabricmc/fabric-api/fabric-api/maven-metadata.xml + if not os.path.exists(get_dir_location('downloads/fabric_api_versions.json')): + print('\033[92mDownloading Fabric API versions...\033[m') + fabric_api_versions_xml_text = requests.get( + 'https://maven.fabricmc.net/net/fabricmc/fabric-api/fabric-api/maven-metadata.xml').text + # parse xml + fabric_api_versions_data_xml = ET.fromstring( + fabric_api_versions_xml_text) + fabric_api_versions = [] + + versioning_el = fabric_api_versions_data_xml.find('versioning') + assert versioning_el + versions_el = versioning_el.find('versions') + assert versions_el + + for version_el in versions_el.findall('version'): + fabric_api_versions.append(version_el.text) + + with open(get_dir_location('downloads/fabric_api_versions.json'), 'w') as f: + f.write(json.dumps(fabric_api_versions)) + else: + with open(get_dir_location('downloads/fabric_api_versions.json'), 'r') as f: + fabric_api_versions = json.loads(f.read()) + return fabric_api_versions + + def clear_version_cache(): print('\033[92mClearing version cache...\033[m') files = [ 'version_manifest.json', - 'yarn_versions.json' + 'yarn_versions.json', + 'fabric_api_versions.json' ] for file in files: if os.path.exists(get_dir_location(f'downloads/{file}')): |
