summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSefa Eyeoglu <contact@scrumplex.net>2022-06-22 20:38:54 +0200
committerSefa Eyeoglu <contact@scrumplex.net>2022-06-22 20:38:54 +0200
commit51cdb9b0c449f69488ce951b955c635a5eb8f329 (patch)
tree85d5e8a0bbba4ccaee1c55262fedb19f68cf95cd
parent8a60d9f38cb8a85553c76c9087a5e8b56d0f125d (diff)
downloadProject-Tick-51cdb9b0c449f69488ce951b955c635a5eb8f329.tar.gz
Project-Tick-51cdb9b0c449f69488ce951b955c635a5eb8f329.zip
fix: workaround Mojang forgetting to change all URLs
-rw-r--r--meta/common/__init__.py8
-rw-r--r--meta/model/__init__.py6
-rwxr-xr-xupdateMojang.py2
3 files changed, 14 insertions, 2 deletions
diff --git a/meta/common/__init__.py b/meta/common/__init__.py
index 4db3c57b61..8e463f8448 100644
--- a/meta/common/__init__.py
+++ b/meta/common/__init__.py
@@ -1,5 +1,6 @@
import os
import datetime
+from urllib.parse import urlparse
def serialize_datetime(dt: datetime.datetime):
@@ -41,3 +42,10 @@ def ensure_component_dir(component_id):
def transform_maven_key(maven_key: str):
return maven_key.replace(":", ".")
+
+def replace_old_launchermeta_url(url):
+ o = urlparse(url)
+ if o.netloc == "launchermeta.mojang.com":
+ return o._replace(netloc="piston-meta.mojang.com").geturl()
+
+ return url
diff --git a/meta/model/__init__.py b/meta/model/__init__.py
index 4371814a11..15004b9674 100644
--- a/meta/model/__init__.py
+++ b/meta/model/__init__.py
@@ -4,7 +4,7 @@ from typing import Optional, List, Dict, Any, Iterator
import pydantic
from pydantic import Field, validator
-from ..common import serialize_datetime
+from ..common import serialize_datetime, replace_old_launchermeta_url
META_FORMAT_VERSION = 1
@@ -144,6 +144,10 @@ class MojangArtifactBase(MetaBase):
class MojangAssets(MojangArtifactBase):
+ @validator("url")
+ def validate_url(cls, v):
+ return replace_old_launchermeta_url(v)
+
id: str
totalSize: int
diff --git a/updateMojang.py b/updateMojang.py
index 9117ee559d..ac11fd449d 100755
--- a/updateMojang.py
+++ b/updateMojang.py
@@ -53,7 +53,7 @@ def fetch_version(path, url):
def main():
# get the remote version list
- r = sess.get('https://launchermeta.mojang.com/mc/game/version_manifest_v2.json')
+ r = sess.get('https://piston-meta.mojang.com/mc/game/version_manifest_v2.json')
r.raise_for_status()
remote_versions = MojangIndexWrap(MojangIndex(**r.json()))