clean-tracks/scripts/initialize_word_lists.py

69 lines
1.9 KiB
Python

#!/usr/bin/env python3
"""
Initialize default word lists for Clean-Tracks.
"""
import sys
import logging
from pathlib import Path
# Add parent directory to path
sys.path.insert(0, str(Path(__file__).parent.parent))
from src.core import WordListManager
from src.database import init_database
logging.basicConfig(
level=logging.INFO,
format='%(asctime)s - %(name)s - %(levelname)s - %(message)s'
)
logger = logging.getLogger(__name__)
def main():
"""Initialize default word lists."""
logger.info("Initializing Clean-Tracks database and word lists...")
# Initialize database
init_database()
# Create word list manager
manager = WordListManager()
# Initialize default lists
created_lists = manager.initialize_default_lists()
logger.info(f"Created {len(created_lists)} default word lists:")
for name, list_id in created_lists.items():
stats = manager.get_word_statistics(list_id)
logger.info(f" - {name} (ID: {list_id}): {stats['total_words']} words")
# Set default list
if 'English - General' in created_lists:
manager.set_default_word_list(created_lists['English - General'])
logger.info(f"Set 'English - General' as default word list")
logger.info("Word list initialization complete!")
# Display summary
all_lists = manager.get_all_word_lists()
print("\n" + "="*60)
print("WORD LISTS SUMMARY")
print("="*60)
for word_list in all_lists:
default_marker = " [DEFAULT]" if word_list['is_default'] else ""
print(f"\n{word_list['name']}{default_marker}")
print(f" ID: {word_list['id']}")
print(f" Description: {word_list['description']}")
print(f" Language: {word_list['language']}")
print(f" Word Count: {word_list['word_count']}")
print(f" Active: {word_list['is_active']}")
print("\n" + "="*60)
if __name__ == "__main__":
main()