55 lines
No EOL
2.2 KiB
Python
55 lines
No EOL
2.2 KiB
Python
#!/usr/bin/env python3
|
|
"""
|
|
Generate mapping between icon filenames and rare item names.
|
|
"""
|
|
|
|
import os
|
|
import json
|
|
|
|
def generate_icon_mapping():
|
|
"""Generate mapping from icon filenames to display names."""
|
|
icons_dir = "/home/erik/MosswartOverlord/discord-rare-monitor/icons"
|
|
|
|
# Create reverse mapping from filename to display name
|
|
icon_mapping = {}
|
|
|
|
# List all PNG files in the icons directory
|
|
for filename in os.listdir(icons_dir):
|
|
if filename.endswith("_Icon.png"):
|
|
# Convert filename back to display name
|
|
# Remove _Icon.png suffix
|
|
base_name = filename[:-9]
|
|
|
|
# Convert underscores to spaces and handle apostrophes
|
|
display_name = base_name.replace("_", " ")
|
|
|
|
# Fix common patterns
|
|
display_name = display_name.replace("s Crystal", "'s Crystal")
|
|
display_name = display_name.replace("s Pearl", "'s Pearl")
|
|
display_name = display_name.replace("s Jewel", "'s Jewel")
|
|
display_name = display_name.replace("s Breath", "'s Breath")
|
|
display_name = display_name.replace("s Glaive", "'s Glaive")
|
|
display_name = display_name.replace("s Grip", "'s Grip")
|
|
display_name = display_name.replace("Tri Blade", "Tri-Blade")
|
|
display_name = display_name.replace("T ing", "T'ing")
|
|
|
|
# Special cases
|
|
if "Renari" in display_name:
|
|
display_name = display_name.replace("Renaris", "Renari's")
|
|
if "Leikotha" in display_name:
|
|
display_name = display_name.replace("Leikothas", "Leikotha's")
|
|
|
|
icon_mapping[filename] = display_name
|
|
|
|
# Save mapping to JSON file
|
|
with open(os.path.join(os.path.dirname(icons_dir), "icon_name_mapping.json"), "w") as f:
|
|
json.dump(icon_mapping, f, indent=2, sort_keys=True)
|
|
|
|
return icon_mapping
|
|
|
|
if __name__ == "__main__":
|
|
mapping = generate_icon_mapping()
|
|
print(f"Generated mapping for {len(mapping)} icons")
|
|
print("\nFirst 10 mappings:")
|
|
for i, (filename, display_name) in enumerate(list(mapping.items())[:10]):
|
|
print(f" {filename} -> {display_name}") |