63 lines
1.5 KiB
Python
63 lines
1.5 KiB
Python
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)
|
||
|
||
|