def __init__(self, manager, name, version=None):
self.manager = manager
self.name = name
self.pseudo = (name == "base")
self.required_version = version # None means newest
self._releases = None
self._installed_version = None
self._exists = None
if not self.pseudo and self.any_version_installed:
try:
with zipfile.ZipFile(mod_folder.file_path(self.name)) as zf:
info_json_candidates = [n for n in zf.namelist() if n.rsplit("/", 1)[1] == "info.json"]
assert info_json_candidates, "Not a mod file"
with zf.open(info_json_candidates[0]) as f:
data = json.loads(f.read().decode())
except zipfile.BadZipfile:
raise CorruptedZipFile(mod_folder.file_path(self.name))
self.title = data["title"]
self._installed_version = data["version"]
self._exists = True
评论列表
文章目录