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("Side | ")
+ f.write("Count | ")
+ f.write("
\r\n")
+
+ f.write("")
+ f.write("Total | ")
+ f.write("" + str(count["server"] + count["client"] + count["both"]) + " | ")
+ f.write("
\r\n")
+
+ f.write("")
+ f.write("Shared | ")
+ f.write("" + str(count["both"]) + " | ")
+ f.write("
\r\n")
+
+ f.write("")
+ f.write("Client | ")
+ f.write("" + str(count["client"]) + " | ")
+ f.write("
\r\n")
+
+ f.write("")
+ f.write("Server | ")
+ f.write("" + str(count["server"]) + " | ")
+ f.write("
\r\n")
+
+ f.write("
\r\n\r\n")
+
+ f.write("## Individual Mods\r\n")
+ f.write("")
+ f.write("\r\n")
+ f.write("Name | ")
+ f.write("Side | ")
+ f.write("Link | ")
+ f.write("
\r\n")
+
+ for mod in mods:
+ data = mods[mod]
+ f.write("\r\n")
+ f.write("" + mod + " | ")
+ f.write("" + data["side"] + " | ")
+ if data["url"] != "":
+ f.write("" + data["site"] + " | ")
+ else:
+ f.write("N/A | ")
+ f.write("\r\n
")
+ f.write("\r\n
")
+
+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"