#!/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}")