#!/usr/bin/env python from pip._vendor import requests from pip._vendor import tomli import json import glob import os mods = dict() count = dict() count["server"] = 0 count["client"] = 0 count["both"] = 0 cache = dict() if os.path.isfile("cache/licenses.json"): with open("cache/licenses.json", "r") as f: cache = json.load(f) for mod in glob.glob("pack/mods/*.toml"): with open(mod, "r") as f: data = tomli.load(f) moddata = dict() moddata["name"] = data["name"] moddata["url"] = "" moddata["side"] = data["side"] license = dict() if "modrinth" in data["update"]: id = data["update"]["modrinth"]["mod-id"] moddata["id"] = id moddata["url"] = "https://modrinth.com/mod/" + id moddata["site"] = "Modrinth" if id in cache: data = cache[id] else: data = requests.get("https://api.modrinth.com/v2/project/" + id).json()["license"] cache[id] = data moddata["license"] = data elif "curseforge" in data["update"]: moddata["url"] = "https://legacy.curseforge.com/projects/" + str(data["update"]["curseforge"]["project-id"]) moddata["site"] = "CurseForge" count[moddata["side"]] += 1 mods[moddata["name"]] = moddata with open("wiki/Modlist.md", "w") as f: f.write("## Total Count\r\n") f.write("") f.write("\r\n") f.write("") f.write("") f.write("\r\n") f.write("") f.write("") f.write("") f.write("\r\n") f.write("") f.write("") f.write("") f.write("\r\n") f.write("") f.write("") f.write("") f.write("\r\n") f.write("") f.write("") f.write("") f.write("\r\n") f.write("
SideCount
Total" + str(count["server"] + count["client"] + count["both"]) + "
Shared" + str(count["both"]) + "
Client" + str(count["client"]) + "
Server" + str(count["server"]) + "
\r\n\r\n") f.write("## Individual Mods\r\n") f.write("") f.write("\r\n") f.write("") f.write("") f.write("") f.write("\r\n") for mod in mods: data = mods[mod] f.write("\r\n") f.write("") f.write("") if data["url"] != "": f.write("") else: f.write("") f.write("\r\n") f.write("\r\n
NameSideLink
" + mod + "" + data["side"] + "" + data["site"] + "N/A
") with open("wiki/Licenses.md", "w") as f: for mod in mods: data = mods[mod] f.write("## " + mod + "\r\n") f.write("") if data["site"] == "CurseForge": f.write("CurseForge API does not provide license information, see mod page for details.") elif "license" in data: license = data["license"] if license["name"] == "": if license["id"] == "LicenseRef-Custom": license["name"] = "Custom" else: license["name"] = license["id"][11:].replace("-", " ") if license["url"] != None: f.write("" + license["name"] + "") else: f.write(license["name"]) else: f.write("Unknown") f.write("\r\n") with open("cache/licenses.json", "w") as f: json.dump(cache, f)