summaryrefslogtreecommitdiff
path: root/meta/model/liteloader.py
blob: 64cdaadd7e0396b91e00b12ed89d3f8289aa3a02 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
from datetime import datetime
from typing import Optional, List, Dict, Any

from pydantic import Field

from . import Library, MetaBase


class LiteloaderDev(MetaBase):
    fgVersion: Optional[str]
    mappings: Optional[str]
    mcp: Optional[str]


class LiteloaderRepo(MetaBase):
    """
    "repo":{
        "stream":"RELEASE",
        "type":"m2",
        "url":"http://dl.liteloader.com/repo/",
        "classifier":""
    },
    """

    stream: str
    type: str
    url: str
    classifier: str


class LiteloaderArtefact(MetaBase):
    """
    "53639d52340479ccf206a04f5e16606f":{
        "tweakClass":"com.mumfrey.liteloader.launch.LiteLoaderTweaker",
        "libraries":[
            {
                "name":"net.minecraft:launchwrapper:1.5"
            },
            {
                "name":"net.sf.jopt-simple:jopt-simple:4.5"
            },
            {
                "name":"org.ow2.asm:asm-all:4.1"
            }
        ],
        "stream":"RELEASE",
        "file":"liteloader-1.5.2_01.jar",
        "version":"1.5.2_01",
        "md5":"53639d52340479ccf206a04f5e16606f",
        "timestamp":"1367366420"
    },
    """

    tweakClass: str
    libraries: List[Library]
    stream: str
    file: str
    version: str
    build: Optional[str]
    md5: str
    timestamp: str
    srcJar: Optional[str]
    mcpJar: Optional[str]
    lastSuccessfulBuild: Optional[int]  # only for snapshots


class LiteloaderArtefacts(MetaBase):
    liteloader: Dict[str, LiteloaderArtefact] = Field(alias="com.mumfrey:liteloader")
    libraries: Optional[List[Library]]


class LiteloaderEntry(MetaBase):
    """
    "1.10.2":{
        "dev": { ... },
        "repo":{ ... },
        "artefacts":{
            "com.mumfrey:liteloader":{ },
            ...
        },
        "snapshots":{
            ...
        }
    """

    dev: Optional[LiteloaderDev]
    repo: LiteloaderRepo
    artefacts: Optional[LiteloaderArtefacts]
    snapshots: Optional[LiteloaderArtefacts]


class LiteloaderMeta(MetaBase):
    """
    "meta":{
        "description":"LiteLoader is a lightweight mod bootstrap designed to provide basic loader functionality for mods which don't need to modify game mechanics.",
        "authors":"Mumfrey",
        "url":"http://dl.liteloader.com",
        "updated":"2017-02-22T11:34:07+00:00",
        "updatedTime":1487763247
    },
    """

    description: str
    authors: str
    url: str
    updated: datetime
    updated_time: int = Field(alias="updatedTime")


class LiteloaderIndex(MetaBase):
    meta: LiteloaderMeta
    versions: Dict[Any, LiteloaderEntry]