Initial commit: N64 Tracker source from server (excludes Coverart images)
This commit is contained in:
commit
ccf87df36d
14 changed files with 10105 additions and 0 deletions
59
build_coverart_mapping.py
Normal file
59
build_coverart_mapping.py
Normal file
|
|
@ -0,0 +1,59 @@
|
|||
import json
|
||||
import os
|
||||
import re
|
||||
|
||||
COVERART_DIR = "/Users/matt/Desktop/VideoGameList/Coverart"
|
||||
GAMES_JSON = "/Users/matt/Desktop/VideoGameList/games.json"
|
||||
|
||||
def title_to_filename(title):
|
||||
"""Transform a game title to its expected Coverart filename."""
|
||||
transformed = title.replace("'", "_").replace(":", "_")
|
||||
return f"{transformed}-01.png"
|
||||
|
||||
def main():
|
||||
# 1. Build a set of available Coverart filenames
|
||||
coverart_files = set(os.listdir(COVERART_DIR))
|
||||
print(f"Coverart files available: {len(coverart_files)}")
|
||||
|
||||
# 2. Load games.json
|
||||
with open(GAMES_JSON, "r", encoding="utf-8") as f:
|
||||
games = json.load(f)
|
||||
print(f"Games in JSON: {len(games)}")
|
||||
|
||||
matched = []
|
||||
unmatched = []
|
||||
cleared = []
|
||||
|
||||
for game in games:
|
||||
title = game.get("title", game.get("name", ""))
|
||||
expected = title_to_filename(title)
|
||||
current = game.get("cover_art_local", "")
|
||||
|
||||
if expected in coverart_files:
|
||||
game["cover_art_local"] = f"coverart/{expected}"
|
||||
matched.append(title)
|
||||
else:
|
||||
# Clear any stale metadata/ paths; leave truly empty ones alone
|
||||
if current.startswith("metadata/"):
|
||||
game["cover_art_local"] = ""
|
||||
cleared.append(title)
|
||||
unmatched.append(title)
|
||||
|
||||
# 3. Save updated games.json
|
||||
with open(GAMES_JSON, "w", encoding="utf-8") as f:
|
||||
json.dump(games, f, indent=2, ensure_ascii=False)
|
||||
|
||||
# 4. Report
|
||||
print(f"\nMatched : {len(matched)}")
|
||||
print(f"Unmatched : {len(unmatched)}")
|
||||
print(f"Cleared (metadata/ paths removed): {len(cleared)}")
|
||||
|
||||
if unmatched:
|
||||
print("\nUnmatched titles:")
|
||||
for t in unmatched:
|
||||
expected = title_to_filename(t)
|
||||
print(f" Title : {t!r}")
|
||||
print(f" Expected : {expected!r}")
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Loading…
Add table
Add a link
Reference in a new issue