import json import requests, os folder = 'forge' if not os.path.exists(folder): os.mkdir(folder) # 获取 Forge 版本 forge_versions = requests.get('https://files.minecraftforge.net/maven/net/minecraftforge/forge/promotions_slim.json')\ .json()['promos'] new_versions = {} # 遍历所有,如果文件名不包含 -recommended,就跳过 for version in forge_versions: # 如果不包含 -recommended,就跳过 if '-recommended' not in version: continue # print(version) # version 是 value # version = forge_versions[version] # 包含的话,就去除 -recommended new_versions[version.replace('-recommended', '')] = forge_versions[version] # pretty print # 计算要下载多少 print('Total ' + str(len(new_versions)) + ' versions') # 遍历所有版本 for version in new_versions: # https://maven.minecraftforge.net/net/minecraftforge/forge/1.19.3-44.1.0/forge-1.19.3-44.1.0-installer.jar full_version = version + '-' + new_versions[version] # 获取下载链接 url = 'https://maven.minecraftforge.net/net/minecraftforge/forge/' + full_version + '/forge-' + full_version + \ '-installer.jar' head = requests.head(url) if not head.ok: print('Skip ' + version + ' (not found)') continue # print file size mb print(str(int(head.headers['Content-Length']) / 1024 / 1024) + 'MB') # 保存到文件 with open(folder + '/' + version + '.jar', 'wb') as f: f.write(requests.get(url).content) print('Downloaded ' + version)