diff --git a/CONTRIBUTORS.md b/CONTRIBUTORS.md
index 67f81894..8aff1189 100644
--- a/CONTRIBUTORS.md
+++ b/CONTRIBUTORS.md
@@ -7,16 +7,6 @@ A lot of users spent much time on helping us adding more translations to this re
---
-[
](https://github.com/TehZombiJesus)[
](https://github.com/timokueck)[
](https://github.com/DAmNRelentless)[
](https://github.com/Greazi-Times)[
](https://github.com/Serviettesky)[
](https://github.com/Hitman477)
-
-[
](https://github.com/ItsWagPvP)[
](https://github.com/EazyFTW)[
](https://github.com/TechsCode)[
](https://github.com/MeepTortoise)[
](https://github.com/PanOkurka)[
](https://github.com/editon96)
-
-[
](https://github.com/Fedee0)[
](https://github.com/Crosby601)[
](https://github.com/CREEPERGAMER138)[
](https://github.com/NE137)[
](https://github.com/Kraineff)[
](https://github.com/Mellisen)
-
-[
](https://github.com/CraftJunkies)[
](https://github.com/iFlyinq)[
](https://github.com/mrodz)[
](https://github.com/faab007)[
](https://github.com/Im-Fran)[
](https://github.com/codebyxemu)
-
-[
](https://github.com/JamesBach93)[
](https://github.com/Larskrs)[
](https://github.com/chickiyeah)[
](https://github.com/Polda18)[
](https://github.com/reussy)[
](https://github.com/dlsf)
-
-[
](https://github.com/Mitricum)
+[
](https://github.com/Greazi-Times)[
](https://github.com/Fedee0)[
](https://github.com/slaapkopamy)[
](https://github.com/TehZombiJesus)[
](https://github.com/rlnt)[
](https://github.com/timomatrix)[
](https://github.com/Serviettesky)[
](https://github.com/OnlyMatty)[
](https://github.com/Hitman477)[
](https://github.com/PanOkurka)[
](https://github.com/gabrielecabrini)[
](https://github.com/SrLink16)[
](https://github.com/editon96)[
](https://github.com/chencu5958)[
](https://github.com/faab007nl)[
](https://github.com/Josesillo94)[
](https://github.com/NE137)[
](https://github.com/Im-Fran)[
](https://github.com/CraftJunkies)[
](https://github.com/Irowynn)[
](https://github.com/KahpotVanilla)[
](https://github.com/Crosby601)[
](https://github.com/iFlyinq)[
](https://github.com/WEBTER)[
](https://github.com/timokueck)[
](https://github.com/Wolf-Organisation)[
](https://github.com/mrodz)[
](https://github.com/enterih)[
](https://github.com/JamesBach93)[
](https://github.com/ImYenil)[
](https://github.com/blixy77)[
](https://github.com/YoshiiKun)[
](https://github.com/EazyFTW)[
](https://github.com/MeepTortoise)[
](https://github.com/codebyxemu)[
](https://github.com/MineTommy)
---
diff --git a/utils/contributorsUpdater b/utils/contributorsUpdater
new file mode 100644
index 00000000..9a4f1f94
--- /dev/null
+++ b/utils/contributorsUpdater
@@ -0,0 +1,74 @@
+import requests
+
+# Constants
+GITHUB_API_URL = "https://api.github.com"
+OUTPUT_FILE = "contributors.md"
+
+
+def fetch_contributors_with_stats(owner, repo):
+ """Fetch contributors of the GitHub repository with their stats."""
+ url = f"{GITHUB_API_URL}/repos/{owner}/{repo}/stats/contributors"
+ response = requests.get(url)
+
+ if response.status_code != 200:
+ print(f"Failed to fetch contributors: {response.status_code} {response.text}")
+ return []
+
+ data = response.json()
+ if not data:
+ print("No contributors or stats data available.")
+ return []
+
+ contributors = [
+ {
+ "login": contributor["author"]["login"],
+ "avatar_url": contributor["author"]["avatar_url"],
+ "lines_changed": sum(week["a"] + week["d"] for week in contributor["weeks"]),
+ }
+ for contributor in data
+ ]
+
+ # Sort contributors by lines changed, descending
+ contributors.sort(key=lambda x: x["lines_changed"], reverse=True)
+ return contributors
+
+
+def update_contributors_file(contributors):
+ """Update the Contributors file with the list of contributors."""
+ with open(OUTPUT_FILE, "w") as file:
+ file.write("# **Contributors**\n\n")
+ file.write("This page is for crediting work of other people.\n\n")
+ file.write(
+ "Since this repository moved multiple times, a lot of contribution credits were lost.
\n"
+ )
+ file.write(
+ "A lot of users spent much time on helping us adding more translations to this repository, we want to thank them with this list.\n\n"
+ )
+ file.write("---\n\n")
+
+ for contributor in contributors:
+ file.write(
+ f"[
](https://github.com/{contributor['login']})"
+ )
+ file.write("\n\n---\n")
+
+ print(f"Contributors have been written to {OUTPUT_FILE}.")
+
+
+def main():
+ """Main function to execute the tool."""
+ owner = "TechsCode"
+ repo = "PluginTranslations"
+
+ print(f"Fetching contributors for {owner}/{repo}...")
+ contributors = fetch_contributors_with_stats(owner, repo)
+
+ if contributors:
+ print(f"Fetched {len(contributors)} contributors.")
+ update_contributors_file(contributors)
+ else:
+ print("No contributors found or failed to fetch contributors.")
+
+
+if __name__ == "__main__":
+ main()