#!/usr/bin/env python3
"""
어댑터 HTML 파일을 TypeScript 브릿지로 변환하는 스크립트
"""
import re
import sys

def convert_adapter(filepath, container_selector='#battle-panel'):
    """어댑터 HTML 파일을 변환"""
    with open(filepath, 'r', encoding='utf-8') as f:
        content = f.read()
    
    # 1. sendPlayLog 함수 제거
    content = re.sub(
        r'\s*//\s*===\s*PlayLog Helper\s*===\s*\n\s*function sendPlayLog\([^)]*\)\s*\{[^}]*\}\s*\n',
        '\n',
        content,
        flags=re.DOTALL
    )
    
    # 2. postMessage Bridge 블록 전체 제거
    # 패턴: // === postMessage Bridge부터 </script> 전까지
    content = re.sub(
        r'\s*//\s*===\s*postMessage Bridge.*?(?=\s*</script>)',
        '',
        content,
        flags=re.DOTALL
    )
    
    # 3. window.BattleAdapter = { ... }; 를 registerAdapter({ ... }, { containerSelector: ... }); 로 변환
    # 먼저 window.BattleAdapter = { 위치 찾기
    adapter_pattern = r'(window\.BattleAdapter\s*=\s*)(\{(?:[^{}]|\{[^{}]*\})*\});'
    
    def replace_adapter(match):
        adapter_impl = match.group(2)
        return f'''<script src="/shared/adapter-bridge.js"></script>
  <script>
    registerAdapter({adapter_impl}, {{ containerSelector: '{container_selector}' }});
'''
    
    # 기존 window.BattleAdapter를 registerAdapter로 변경
    content = re.sub(adapter_pattern, replace_adapter, content, flags=re.DOTALL)
    
    return content


if __name__ == '__main__':
    if len(sys.argv) < 2:
        print("Usage: convert-adapter.py <html-file> [container-selector]")
        sys.exit(1)
    
    filepath = sys.argv[1]
    container = sys.argv[2] if len(sys.argv) > 2 else '#battle-panel'
    
    try:
        result = convert_adapter(filepath, container)
        with open(filepath, 'w', encoding='utf-8') as f:
            f.write(result)
        print(f"✓ Converted: {filepath}")
    except Exception as e:
        print(f"✗ Error: {e}")
        sys.exit(1)
