posspack/.forgejo/scripts/update-wiki.py
Ashley Graves e452922f41
All checks were successful
Update wiki / test (push) Successful in 14s
test
2024-07-28 22:42:02 +02:00

76 lines
1.9 KiB
Python

#!/usr/bin/env python
from pip._vendor import tomli
import glob
import os
def noop():
return
mods = dict()
count = dict()
count["server"] = 0
count["client"] = 0
count["both"] = 0
for mod in glob.glob("pack/mods/*.toml"):
with open(mod, "r") as f:
data = tomli.load(f)
moddata = dict()
moddata["url"] = ""
if "modrinth" in data["update"]:
moddata["url"] = "https://modrinth.com/mod/" + data["update"]["modrinth"]["mod-id"]
moddata["site"] = "Modrinth"
elif "curseforge" in data["update"]:
moddata["url"] = "https://legacy.curseforge.com/projects/" + str(data["update"]["curseforge"]["project-id"])
moddata["site"] = "CurseForge"
count[data["side"]] += 1
moddata["side"] = data["side"]
mods[data["name"]] = moddata
with open("wiki/Modlist.md", "w") as f:
f.write("## Total Count\r\n")
f.write("<table>")
f.write("\r\n<tr>")
f.write("<th>Side</th>")
f.write("<th>Count</th>")
f.write("</tr>\r\n")
f.write("<tr>")
f.write("<td>Shared</td>")
f.write("<td>" + str(count["both"]) + "</td>")
f.write("</tr>\r\n")
f.write("<tr>")
f.write("<td>Client</td>")
f.write("<td>" + str(count["client"]) + "</td>")
f.write("</tr>\r\n")
f.write("<tr>")
f.write("<td>Server</td>")
f.write("<td>" + str(count["server"]) + "</td>")
f.write("</tr>\r\n")
f.write("\r\n</table>\r\n")
f.write("## Individual Mods\r\n")
f.write("<table>")
f.write("\r\n<tr>")
f.write("<th>Name</th>")
f.write("<th>Side</th>")
f.write("<th>Link</th>")
f.write("</tr>\r\n")
for mod in mods:
f.write("\r\n<tr>")
f.write("<td>" + mod + "</td>")
f.write("<td>" + mods[mod]["side"] + "</td>")
if mods[mod]["url"] != "":
f.write("<td><a href=\"" + mods[mod]["url"] + "\">" + mods[mod]["site"] + "</a></td>")
else:
f.write("<td>N/A</td>")
f.write("\r\n<tr>")
f.write("\r\n</table>")