Nattiden 2 жил өмнө
parent
commit
1a6960eeb2

+ 1 - 76
Resources/Data/OfficialLink.json

@@ -1,87 +1,12 @@
 {
-    "24w11a": "https://www.minecraft.net/zh-hans/article/minecraft-snapshot-24w11a",
-    "24w10a": "https://www.minecraft.net/zh-hans/article/minecraft-snapshot-24w10a",
-    "24w09a": "https://www.minecraft.net/zh-hans/article/minecraft-snapshot-24w09a",
-    "24w03a": "https://minecraft.net/zh-hans/article/minecraft-snapshot-24w03a",
-    "24w03b": "https://minecraft.net/zh-hans/article/minecraft-snapshot-24w03b",
-    "24w04a": "https://minecraft.net/zh-hans/article/minecraft-snapshot-24w04a",
-    "24w05a": "https://minecraft.net/zh-hans/article/minecraft-snapshot-24w05a",
-    "24w05b": "https://minecraft.net/zh-hans/article/minecraft-snapshot-24w05b",
-    "24w06a": "https://minecraft.net/zh-hans/article/minecraft-snapshot-24w06a",
-    "24w07a": "https://minecraft.net/zh-hans/article/minecraft-snapshot-24w07a",
-    "23w03a": "https://minecraft.net/zh-hans/article/minecraft-snapshot-23w03a",
-    "23w04a": "https://minecraft.net/zh-hans/article/minecraft-snapshot-23w04a",
-    "23w05a": "https://minecraft.net/zh-hans/article/minecraft-snapshot-23w05a",
-    "23w06a": "https://minecraft.net/zh-hans/article/minecraft-snapshot-23w06a",
-    "23w07a": "https://minecraft.net/zh-hans/article/minecraft-snapshot-23w07a",
-    "1.19.4-pre1": "https://minecraft.net/article/minecraft-1-19-4-pre-release-1",
-    "1.19.4-pre2": "https://minecraft.net/article/minecraft-1-19-4-pre-release-2",
     "1.19.4-pre3": "https://minecraft.net/article/minecraft-1-19-4-pre-release-2",
-    "1.19.4-pre4": "https://minecraft.net/article/minecraft-1-19-4-pre-release-4",
     "1.19.4-rc2": "https://minecraft.net/article/minecraft-1-19-4-release-candidate-1",
-    "1.19.4-rc3": "https://minecraft.net/article/minecraft-1-19-4-release-candidate-3",
-    "1.19.4": "https://minecraft.net/article/minecraft-java-edition-1-19-4",
-    "23w12a": "https://minecraft.net/zh-hans/article/minecraft-snapshot-23w12a",
-    "23w13a": "https://www.minecraft.net/zh-hans/article/minecraft-snapshot-23w13a",
-    "23w14a": "https://minecraft.net/zh-hans/article/minecraft-snapshot-23w14a",
-    "23w16a": "https://www.minecraft.net/zh-hans/article/minecraft-snapshot-23w16a",
-    "23w17a": "https://minecraft.net/zh-hans/article/minecraft-snapshot-23w17a",
-    "23w18a": "https://www.minecraft.net/zh-hans/article/minecraft-snapshot-23w18a",
-    "1.20-pre1": "https://minecraft.net/article/minecraft-1-20-pre-release-1",
-    "1.20-pre2": "https://minecraft.net/article/minecraft-1-20-pre-release-2",
     "1.20-pre3": "https://minecraft.net/article/minecraft-1-20-pre-release-2",
     "1.20-pre4": "https://minecraft.net/article/minecraft-1-20-pre-release-2",
-    "1.20-pre5": "https://minecraft.net/article/minecraft-1-20-pre-release-5",
-    "1.20-pre6": "https://minecraft.net/article/minecraft-1-20-pre-release-5",
-    "1.20-pre7": "https://minecraft.net/article/minecraft-1-20-pre-release-7",
-    "1.20-rc1": "https://minecraft.net/article/minecraft-1-20-release-candidate-1",
     "1.20": "https://www.minecraft.net/zh-hans/article/trails-tales-update-out-today-java",
     "1.20.1": "https://minecraft.net/article/minecraft--java-edition-1-20-1",
-    "23w31a": "https://minecraft.net/zh-hans/article/minecraft-snapshot-23w31a",
-    "23w32a": "https://minecraft.net/zh-hans/article/minecraft-snapshot-23w32a",
-    "23w33a": "https://www.minecraft.net/zh-hans/article/minecraft-snapshot-23w33a",
-    "23w35a": "https://www.minecraft.net/zh-hans/article/minecraft-snapshot-23w35a",
-    "1.20.2-pre1": "https://minecraft.net/article/minecraft-1-20-2-pre-release-1",
-    "1.20.2-pre3": "https://minecraft.net/article/minecraft-1-20-2-pre-release-3",
-    "1.20.2-pre4": "https://minecraft.net/article/minecraft-1-20-2-pre-release-4",
-    "1.20.2-rc1": "https://www.minecraft.net/zh-hans/article/minecraft-1-20-2-release-candidate-1",
-    "1.20.2-rc2": "https://www.minecraft.net/zh-hans/article/minecraft-1-20-2-release-candidate-2",
-    "1.20.2": "https://www.minecraft.net/zh-hans/article/minecraft-java-edition-1-20-2",
-    "23w40a": "https://www.minecraft.net/zh-hans/article/minecraft-snapshot-23w40a",
-    "23w41a": "https://www.minecraft.net/zh-hans/article/minecraft-snapshot-23w41a",
-    "23w42a": "https://www.minecraft.net/zh-hans/article/minecraft-snapshot-23w42a",
-    "23w43a": "https://www.minecraft.net/zh-hans/article/minecraft-snapshot-23w43a",
-    "23w43b": "https://www.minecraft.net/zh-hans/article/minecraft-snapshot-23w43b",
-    "23w44a": "https://www.minecraft.net/zh-hans/article/minecraft-snapshot-23w44a",
-    "23w45a": "https://www.minecraft.net/zh-hans/article/minecraft-snapshot-23w45a",
-    "23w46a": "https://www.minecraft.net/zh-hans/article/minecraft-snapshot-23w46a",
-    "1.20.3-pre1": "https://minecraft.net/article/minecraft-1-20-3-pre-release-1",
-    "1.20.3-pre2": "https://minecraft.net/article/minecraft-1-20-3-pre-release-2",
-    "1.20.3-pre3": "https://minecraft.net/article/minecraft-1-20-3-pre-release-3",
-    "1.20.3-pre4": "https://minecraft.net/article/minecraft-1-20-3-pre-release-4",
-    "1.20.3-rc1": "https://minecraft.net/article/minecraft-1-20-3-release-candidate-1",
-    "1.20.3": "https://minecraft.net/article/minecraft-java-edition-1-20-3",
-    "1.20.4": "https://minecraft.net/article/minecraft-java-edition-1-20-4",
-    "23w51a": "https://www.minecraft.net/zh-hans/article/minecraft-snapshot-23w51a",
     "23w51b": "https://www.minecraft.net/zh-hans/article/minecraft-snapshot-23w51a",
-    "1.19.1-rc2": "https://www.minecraft.net/zh-hans/article/minecraft-1-19-1-release-candidate-2",
-    "1.19.1-pre6": "https://www.minecraft.net/zh-hans/article/minecraft-1-19-1-pre-release-6",
-    "1.19.1-pre5": "https://www.minecraft.net/zh-hans/article/minecraft-1-19-1-pre-release-5",
-    "1.19.1": "https://www.minecraft.net/zh-hans/article/minecraft-java-edition-1-19-1",
-    "1.19.1-rc3": "https://www.minecraft.net/zh-hans/article/minecraft-1-19-1-release-candidate-3",
-    "1.19.2-rc1": "https://www.minecraft.net/zh-hans/article/minecraft-1-19-2-release-candidate-1",
     "1.19.2-rc2": "https://www.minecraft.net/zh-hans/article/minecraft-1-19-2-release-candidate-1",
-    "1.19.2": "https://www.minecraft.net/zh-hans/article/minecraft-java-edition-1-19-2",
-    "22w42a": "https://minecraft.net/zh-hans/article/minecraft-snapshot-22w42a",
-    "22w43a": "https://minecraft.net/zh-hans/article/minecraft-snapshot-22w43a",
-    "22w44a": "https://minecraft.net/zh-hans/article/minecraft-snapshot-22w44a",
-    "22w45a": "https://minecraft.net/zh-hans/article/minecraft-snapshot-22w45a",
-    "22w46a": "https://minecraft.net/zh-hans/article/minecraft-snapshot-22w46a",
-    "1.19.3-pre1": "https://minecraft.net/article/minecraft-1-19-3-pre-release-1",
     "1.19.3-pre2": "https://minecraft.net/article/minecraft-1-19-3-pre-release-1",
-    "1.19.3-pre3": "https://minecraft.net/article/minecraft-1-19-3-pre-release-3",
-    "1.19.3-rc1": "https://minecraft.net/article/minecraft-1-19-3-release-candidate-1",
-    "1.19.3-rc2": "https://minecraft.net/article/minecraft-1-19-3-release-candidate-1",
-    "1.19.3-rc3": "https://minecraft.net/article/minecraft-1-19-3-release-candidate-3",
-    "1.19.3": "https://minecraft.net/article/minecraft-java-edition-1-19-3"
+    "1.19.3-rc2": "https://minecraft.net/article/minecraft-1-19-3-release-candidate-1"
 }

+ 22 - 0
Resources/Scripts/GetLink.py

@@ -1,4 +1,24 @@
 from Core.Debug import LogWarning, LogInfo
+import re
+
+SNAPSHOT_PATTERN = re.compile(r'^[0-9]{2}[w|W][0-9]{2}[A-Fa-f]$')
+PRE_RELEASE_PATTERN = re.compile(r'^.*-pre[0-9]+$')
+RELEASE_CANDIDATE_PATTERN = re.compile(r'^.*-rc[0-9]+$')
+RELEASE_PATTERN = re.compile(r'^1\.[0-9]+(\.[0-9]+)?$')
+
+def gen_official_link(vid:str):
+    if re.match(SNAPSHOT_PATTERN,vid):
+        return f'https://minecraft.net/article/minecraft-snapshot-{vid.lower()}'
+    if re.match(PRE_RELEASE_PATTERN,vid):
+        version,sub=vid.split('-pre')
+        return f'https://minecraft.net/article/minecraft-{version.replace('.','-')}-pre-release-{sub}'
+    if re.match(RELEASE_CANDIDATE_PATTERN,vid):
+        version,sub=vid.split('-rc')
+        return f'https://minecraft.net/article/minecraft-{version.replace('.','-')}-release-candidate-{sub}'
+    if re.match(RELEASE_PATTERN,vid):
+        return f'https://minecraft.net/article/minecraft-java-edition-{vid.replace('.','-')}'
+    return ''
+
 def script(card,arg,res):
     name:str = card['version-id']
     data = res.data[f'{arg[1]}Link']
@@ -7,4 +27,6 @@ def script(card,arg,res):
     if arg[1] == 'Mcbbs' and name not in data:
         LogInfo(f'尝试获取MCBBS链接 {name},但未找到,由于 MCBBS 关站,返回空值以抑制 Warning')
         return ''
+    if arg[1] == 'Official' and name not in data:
+        return gen_official_link(name)
     return data[name]