From 84fe1b779bf6c88aeb246b977e0924f9b732ef7a Mon Sep 17 00:00:00 2001 From: Ashley Graves Date: Sun, 29 Sep 2024 18:02:34 +0200 Subject: [PATCH] bep --- .forgejo/scripts/update-wiki.py | 128 ++++++++++++++++++++++++++++++-- index.toml | 2 +- pack.toml | 2 +- 3 files changed, 122 insertions(+), 10 deletions(-) diff --git a/.forgejo/scripts/update-wiki.py b/.forgejo/scripts/update-wiki.py index 568b0e7..1c75c41 100644 --- a/.forgejo/scripts/update-wiki.py +++ b/.forgejo/scripts/update-wiki.py @@ -1,11 +1,123 @@ ---2024-09-29 17:54:28-- https://git.lgbt/root/posspack/raw/branch/mistress/.forgejo/scripts/update-wiki.py -Resolving git.lgbt (git.lgbt)... 213.66.116.217 -Connecting to git.lgbt (git.lgbt)|213.66.116.217|:443... connected. -HTTP request sent, awaiting response... 200 OK -Length: 3328 (3.2K) [text/plain] -Saving to: ‘update-wiki.py’ +#!/usr/bin/env python - 0K ... 100% 677M=0s +from pip._vendor import requests +from pip._vendor import tomli +import json +import glob +import os -2024-09-29 17:54:28 (677 MB/s) - ‘update-wiki.py’ saved [3328/3328] +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) diff --git a/index.toml b/index.toml index a5da5bf..d200c27 100644 --- a/index.toml +++ b/index.toml @@ -2,7 +2,7 @@ hash-format = "sha256" [[files]] file = ".forgejo/scripts/update-wiki.py" -hash = "ac697fc13bb0d86899e2e57eb08a4a21ac8c77abdb16c66ae8413ccdc39e9907" +hash = "da922924b0fdc67aa7add46ac43745625b511c3d8ffab6291b7df002c0b9d6db" [[files]] file = ".forgejo/workflows/update-wiki.yaml" diff --git a/pack.toml b/pack.toml index cff7253..30a0dd2 100644 --- a/pack.toml +++ b/pack.toml @@ -6,7 +6,7 @@ pack-format = "packwiz:1.1.0" [index] file = "index.toml" hash-format = "sha256" -hash = "b245e20e5eee0a391976c3c5d7d2e46a9934bf46900550b6fce34e07f541e7f1" +hash = "acdff981e88708a60c7f97d2a77a26d98fb1ad7eaa1a91e4c7ab4fd6d05a44d5" [versions] fabric = "0.16.5"