#!/usr/bin/env python3 """ Comprehensive enum extraction from ALL Mag-Plugins Constants files. This script extracts ALL missing enum values to complete our enum database. """ import json import re import os from pathlib import Path def extract_coverage_mask(): """Extract complete CoverageMask enum with ALL values.""" file_path = "../unused/Mag-Plugins/Shared/Constants/CoverageMask.cs" coverage_values = {} with open(file_path, 'r') as f: content = f.read() # Extract enum values using regex enum_pattern = r'(\w+)\s*=\s*0x([0-9A-Fa-f]+)' matches = re.findall(enum_pattern, content) for name, hex_value in matches: decimal_value = int(hex_value, 16) coverage_values[str(decimal_value)] = name return { "name": "CoverageMask", "values": coverage_values, "source_file": "CoverageMask.cs" } def extract_bool_value_key(): """Extract BoolValueKey enum (currently missing).""" file_path = "../unused/Mag-Plugins/Shared/Constants/BoolValueKey.cs" bool_values = {} with open(file_path, 'r') as f: content = f.read() # Extract enum values enum_pattern = r'(\w+)\s*=\s*(\d+)' matches = re.findall(enum_pattern, content) for name, value in matches: bool_values[value] = name return { "name": "BoolValueKey", "values": bool_values, "source_file": "BoolValueKey.cs" } def load_current_database(): """Load current enum database.""" with open('comprehensive_enum_database_v2.json', 'r') as f: return json.load(f) def update_enum_database(): """Update the enum database with ALL missing values.""" print("Loading current enum database...") db = load_current_database() print("Extracting complete CoverageMask...") complete_coverage = extract_coverage_mask() db['enums']['CoverageMask'] = complete_coverage print("Extracting BoolValueKey...") bool_values = extract_bool_value_key() db['enums']['BoolValueKey'] = bool_values # Update metadata db['metadata']['last_updated'] = "2025-06-12" db['metadata']['notes'] = "COMPLETE extraction: Added missing CoverageMask values (1,2,4,16,etc) and BoolValueKey enum" print("Saving updated database...") with open('comprehensive_enum_database_v2.json', 'w') as f: json.dump(db, f, indent=2) print("✅ Enum database updated successfully!") print(f"✅ CoverageMask now has {len(complete_coverage['values'])} values") print(f"✅ BoolValueKey now has {len(bool_values['values'])} values") if __name__ == "__main__": update_enum_database()