added inventory, updated DB
This commit is contained in:
parent
f218350959
commit
10c51f6825
16528 changed files with 147743 additions and 79 deletions
121
inventory-service/extract_spell_names.py
Normal file
121
inventory-service/extract_spell_names.py
Normal file
|
|
@ -0,0 +1,121 @@
|
|||
#!/usr/bin/env python3
|
||||
"""
|
||||
Extract spell names from Mag-Plugins/Shared/Spells/Spells.csv for spell ID translation.
|
||||
"""
|
||||
|
||||
import csv
|
||||
import json
|
||||
from pathlib import Path
|
||||
|
||||
def extract_spell_names():
|
||||
"""Extract spell ID to name mappings from Spells.csv."""
|
||||
|
||||
csv_path = Path('/home/erik/MosswartOverlord/Mag-Plugins/Shared/Spells/Spells.csv')
|
||||
|
||||
if not csv_path.exists():
|
||||
print(f"❌ Spells.csv not found at {csv_path}")
|
||||
return {}
|
||||
|
||||
spell_mappings = {}
|
||||
|
||||
# Try different encodings
|
||||
encodings = ['utf-8', 'latin-1', 'windows-1252', 'utf-8-sig']
|
||||
|
||||
for encoding in encodings:
|
||||
try:
|
||||
with open(csv_path, 'r', encoding=encoding) as f:
|
||||
reader = csv.DictReader(f)
|
||||
print(f"✓ Successfully opened with {encoding} encoding")
|
||||
|
||||
for row in reader:
|
||||
try:
|
||||
spell_id = int(row['Id'])
|
||||
spell_name = row['Name'].strip()
|
||||
spell_description = row.get('Description', '').strip()
|
||||
spell_school = row.get('School', '').strip()
|
||||
spell_family = row.get('Family', '').strip()
|
||||
spell_difficulty = row.get('Difficulty', '').strip()
|
||||
spell_duration = row.get('Duration', '').strip()
|
||||
spell_mana = row.get('Mana', '').strip()
|
||||
|
||||
# Create comprehensive spell data
|
||||
spell_data = {
|
||||
'name': spell_name,
|
||||
'description': spell_description,
|
||||
'school': spell_school,
|
||||
'family': spell_family,
|
||||
'difficulty': spell_difficulty,
|
||||
'duration': spell_duration,
|
||||
'mana': spell_mana
|
||||
}
|
||||
|
||||
spell_mappings[spell_id] = spell_data
|
||||
|
||||
except (ValueError, KeyError) as e:
|
||||
print(f"⚠️ Skipping invalid row: {e}")
|
||||
continue
|
||||
|
||||
# If we get here successfully, we're done
|
||||
break
|
||||
|
||||
except Exception as e:
|
||||
print(f"❌ Error with {encoding} encoding: {e}")
|
||||
continue
|
||||
|
||||
if spell_mappings:
|
||||
print(f"✓ Extracted {len(spell_mappings)} spell entries")
|
||||
else:
|
||||
print("❌ Failed to extract spells with any encoding")
|
||||
|
||||
return spell_mappings
|
||||
|
||||
def save_spell_database(spell_mappings):
|
||||
"""Save spell mappings to JSON file."""
|
||||
|
||||
output_path = Path('/home/erik/MosswartOverlord/inventory-service/spell_database.json')
|
||||
|
||||
spell_database = {
|
||||
'metadata': {
|
||||
'version': '1.0.0',
|
||||
'source': 'Mag-Plugins/Shared/Spells/Spells.csv',
|
||||
'total_spells': len(spell_mappings),
|
||||
'description': 'Spell ID to name/data mappings for Asheron\'s Call'
|
||||
},
|
||||
'spells': spell_mappings
|
||||
}
|
||||
|
||||
try:
|
||||
with open(output_path, 'w', encoding='utf-8') as f:
|
||||
json.dump(spell_database, f, indent=2, ensure_ascii=False)
|
||||
|
||||
print(f"✓ Spell database saved to {output_path}")
|
||||
return True
|
||||
|
||||
except Exception as e:
|
||||
print(f"❌ Error saving spell database: {e}")
|
||||
return False
|
||||
|
||||
def main():
|
||||
"""Main extraction process."""
|
||||
print("Extracting spell names from Spells.csv...")
|
||||
|
||||
# Extract spell mappings
|
||||
spell_mappings = extract_spell_names()
|
||||
|
||||
if not spell_mappings:
|
||||
print("❌ No spells extracted")
|
||||
return
|
||||
|
||||
# Save to JSON file
|
||||
if save_spell_database(spell_mappings):
|
||||
# Show some sample spells
|
||||
print("\nSample spell entries:")
|
||||
for spell_id, spell_data in list(spell_mappings.items())[:5]:
|
||||
print(f" {spell_id}: {spell_data['name']} ({spell_data['school']})")
|
||||
|
||||
print(f"\n✓ Successfully processed {len(spell_mappings)} spells")
|
||||
else:
|
||||
print("❌ Failed to save spell database")
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Loading…
Add table
Add a link
Reference in a new issue