mirror of
https://github.com/unmojang/meta.git
synced 2025-09-30 22:51:32 -04:00
136 lines
4.5 KiB
Python
Executable File
136 lines
4.5 KiB
Python
Executable File
import json
|
|
import os
|
|
|
|
import dateutil.parser
|
|
|
|
from meta.common import (
|
|
ensure_component_dir,
|
|
launcher_path,
|
|
upstream_path,
|
|
)
|
|
from meta.common.authlib_injector import BASE_DIR, ARTIFACTS_DIR, AGENT_COMPONENT
|
|
from meta.model import Agent, MetaVersion, Library, MetaPackage, GradleSpecifier
|
|
|
|
LAUNCHER_DIR = launcher_path()
|
|
UPSTREAM_DIR = upstream_path()
|
|
|
|
ensure_component_dir(AGENT_COMPONENT)
|
|
|
|
|
|
LEGACY_RELEASE_TIMES = {
|
|
1: "2018-06-28T21:14:02+08:00",
|
|
2: "2018-06-28T21:14:02+08:00",
|
|
3: "2018-06-28T21:14:02+08:00",
|
|
4: "2018-06-28T21:14:02+08:00",
|
|
6: "2018-06-28T21:14:02+08:00",
|
|
7: "2018-06-28T21:15:12+08:00",
|
|
8: "2018-06-28T21:26:23+08:00",
|
|
9: "2018-06-28T21:28:04+08:00",
|
|
10: "2018-06-28T21:28:14+08:00",
|
|
11: "2018-06-28T21:28:23+08:00",
|
|
12: "2018-06-28T21:28:29+08:00",
|
|
13: "2018-06-28T21:28:35+08:00",
|
|
14: "2018-06-28T21:28:42+08:00",
|
|
15: "2018-06-28T21:28:49+08:00",
|
|
16: "2018-06-28T21:28:55+08:00",
|
|
17: "2018-06-28T21:29:00+08:00",
|
|
18: "2018-06-29T13:25:41+00:00",
|
|
19: "2018-09-30T13:17:16+00:00",
|
|
20: "2018-10-20T13:43:43+00:00",
|
|
21: "2018-10-20T13:49:31+00:00",
|
|
22: "2018-11-23T16:11:54+00:00",
|
|
23: "2018-11-24T17:16:56+00:00",
|
|
24: "2018-12-31T13:03:32+00:00",
|
|
25: "2019-01-19T15:40:25+00:00",
|
|
26: "2019-02-14T05:26:31+00:00",
|
|
27: "2020-04-10T16:05:12+00:00",
|
|
28: "2020-04-29T02:46:56+00:00",
|
|
29: "2020-06-20T14:30:17Z",
|
|
30: "2020-08-15T03:08:38Z",
|
|
31: "2020-08-23T07:06:55Z",
|
|
32: "2020-08-27T04:21:52Z",
|
|
33: "2020-09-11T23:27:27Z",
|
|
34: "2020-10-17T17:18:31Z",
|
|
35: "2021-05-14T06:55:24Z",
|
|
36: "2021-06-11T10:34:18Z",
|
|
37: "2021-06-11T19:55:54Z",
|
|
38: "2021-06-13T22:05:49Z",
|
|
39: "2021-08-20T20:30:11Z",
|
|
40: "2021-11-18T13:49:40Z",
|
|
41: "2022-03-11T05:48:00Z",
|
|
42: "2022-03-15T18:07:46Z",
|
|
43: "2022-04-20T17:21:18Z",
|
|
44: "2022-05-03T13:42:48Z",
|
|
45: "2022-06-06T18:02:59Z",
|
|
46: "2022-07-02T06:06:24Z",
|
|
47: "2022-07-14T11:37:08Z",
|
|
48: "2022-08-04T16:53:00Z",
|
|
49: "2022-08-05T17:11:21Z",
|
|
50: "2023-03-25T10:42:43Z",
|
|
51: "2023-06-11T18:47:31Z",
|
|
}
|
|
|
|
|
|
def main():
|
|
latest_version: Optional[str] = None
|
|
|
|
with open(
|
|
os.path.join(UPSTREAM_DIR, BASE_DIR, "artifacts.json"), "r", encoding="utf-8"
|
|
) as artifacts_file:
|
|
artifacts = json.load(artifacts_file)
|
|
latest_build = 0
|
|
for artifact_info in artifacts["artifacts"]:
|
|
build_number = artifact_info["build_number"]
|
|
print(f"Processing agent {build_number}")
|
|
with open(
|
|
os.path.join(UPSTREAM_DIR, ARTIFACTS_DIR, f"{build_number}.json"),
|
|
"r",
|
|
encoding="utf-8",
|
|
) as artifact_file:
|
|
artifact = json.load(artifact_file)
|
|
|
|
version = artifact["version"]
|
|
|
|
latest_build = max(latest_build, build_number)
|
|
if latest_build == build_number:
|
|
latest_version = version
|
|
|
|
if "release_time" in artifact:
|
|
release_time = dateutil.parser.isoparse(artifact["release_time"])
|
|
elif build_number in LEGACY_RELEASE_TIMES:
|
|
release_time = LEGACY_RELEASE_TIMES[build_number]
|
|
else:
|
|
continue
|
|
|
|
v = MetaVersion(
|
|
name="authlib-injector",
|
|
uid=AGENT_COMPONENT,
|
|
version=version,
|
|
release_time=release_time,
|
|
)
|
|
v.type = "release"
|
|
v.additional_agents = [
|
|
Agent(
|
|
name=GradleSpecifier(
|
|
group="moe.yushi",
|
|
artifact="authlibinjector",
|
|
version=version,
|
|
),
|
|
absoluteUrl=artifact["download_url"],
|
|
)
|
|
]
|
|
v.write(
|
|
os.path.join(LAUNCHER_DIR, AGENT_COMPONENT, f"{v.version}.json")
|
|
)
|
|
|
|
package = MetaPackage(uid=AGENT_COMPONENT, name="authlib-injector")
|
|
package.recommended = [latest_version]
|
|
package.description = "authlib-injector enables you to build a Minecraft authentication system offering all the features that genuine Minecraft has."
|
|
package.project_url = "https://github.com/yushijinhun/authlib-injector"
|
|
package.authors = ["Haowei Wen"]
|
|
package.write(os.path.join(LAUNCHER_DIR, AGENT_COMPONENT, "package.json"))
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|