MinecraftJarDownloader/forge.py

63 lines
1.5 KiB
Python
Raw Permalink Normal View History

2023-12-03 14:31:32 +00:00
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)