Add liteloader tracking

This commit is contained in:
Petr Mrázek 2017-04-03 23:35:26 +02:00
parent fb1d3747a6
commit e13469dfb1
3 changed files with 137 additions and 1 deletions

95
liteloaderutil.py Normal file
View File

@ -0,0 +1,95 @@
from metautil import *
'''
"repo":{
"stream":"RELEASE",
"type":"m2",
"url":"http:\/\/dl.liteloader.com\/repo\/",
"classifier":""
},
'''
class LiteloaderRepo(JsonObject):
stream = StringProperty(required=True)
type = StringProperty(required=True)
url = StringProperty(required=True)
classifier = StringProperty(required=True)
'''
"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"
},
'''
class LiteloaderArtefact(JsonObject):
tweakClass = StringProperty(required=True)
libraries = ListProperty(MultiMCLibrary, required=True)
stream = StringProperty(required=True)
file = StringProperty(required=True)
version = StringProperty(required=True)
md5 = StringProperty(required=True)
timestamp = StringProperty(required=True)
srcJar = StringProperty(default=None, exclude_if_none=True)
mcpJar = StringProperty(default=None, exclude_if_none=True)
class LiteloaderArtefacts(JsonObject):
liteloader = DictProperty(LiteloaderArtefact, name="com.mumfrey:liteloader", required=True)
class LiteloaderSnapshot(LiteloaderArtefact):
lastSuccessfulBuild = IntegerProperty(required=True)
class LiteloaderSnapshots(JsonObject):
libraries = ListProperty(MultiMCLibrary, required=True)
liteloader = DictProperty(LiteloaderSnapshot, name="com.mumfrey:liteloader", required=True)
'''
"1.10.2":{
"repo":{ ... },
"artefacts":{
"com.mumfrey:liteloader":{ },
...
},
"snapshots":{
...
}
'''
class LiteloaderEntry(JsonObject):
repo = ObjectProperty(LiteloaderRepo, required=True)
artefacts = ObjectProperty(LiteloaderArtefacts, default=None, exclude_if_none=True)
snapshots = ObjectProperty(LiteloaderSnapshots, default=None, exclude_if_none=True)
'''
"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
},
'''
class LiteloaderMeta(JsonObject):
description = StringProperty(required=True)
authors = StringProperty(required=True)
url = StringProperty(required=True)
updated = ISOTimestampProperty(required=True)
updatedTime = IntegerProperty(required=True)
# The raw Forge version index
class LiteloaderIndex(JsonObject):
meta = ObjectProperty(LiteloaderMeta, required=True)
versions = DictProperty(LiteloaderEntry)

View File

@ -24,8 +24,9 @@ currentDate=`date --iso-8601`
./updateMojang.py || fail_in
./updateForge.py || fail_in
./updateLiteloader.py || fail_in
cd "${BASEDIR}/${UPSTREAM_DIR}"
git add mojang/version_manifest.json mojang/versions/* mojang/assets/* forge/*.json || fail_in
git add mojang/version_manifest.json mojang/versions/* mojang/assets/* forge/*.json liteloader/*.json || fail_in
if ! git diff --cached --exit-code ; then
git commit -a -m "Update ${currentDate}" || fail_in
git push || exit 1

40
updateLiteloader.py Executable file
View File

@ -0,0 +1,40 @@
#!/usr/bin/python
'''
Get the source files necessary for generating Forge versions
'''
from __future__ import print_function
import sys
import requests
from cachecontrol import CacheControl
from cachecontrol.caches import FileCache
import json
from jsonobject import *
from liteloaderutil import *
import os.path
import copy
def eprint(*args, **kwargs):
print(*args, file=sys.stderr, **kwargs)
forever_cache = FileCache('http_cache', forever=True)
sess = CacheControl(requests.Session(), forever_cache)
# get the remote version list
r = sess.get('http://dl.liteloader.com/versions/versions.json')
r.raise_for_status()
# make sure it's JSON
main_json = r.json()
# make sure we understand the schema
remoteVersionlist = LiteloaderIndex(copy.deepcopy(main_json))
newStr = json.dumps(remoteVersionlist.to_json())
origStr = json.dumps(main_json)
assert newStr == origStr
# save the json it to file
with open("upstream/liteloader/versions.json", 'w', encoding='utf-8') as f:
json.dump(main_json, f, sort_keys=True, indent=4)