#!/usr/bin/env python3
"""
HTML 파일 업데이트 스크립트 (간단 버전)
스크린샷 없이 디자인 분석 섹션만 추가합니다.
"""

import re
from pathlib import Path

# 작업 디렉토리
BASE_DIR = Path("/var/www/tkim.planitai.co.jp/blog/20260130-make-design-adv")

# 분석 대상 사이트 (011-020)
SITES = [
    {
        "num": "011",
        "name": "Spotify",
        "colors": ["#1DB954", "#191414", "#FFFFFF", "#535353", "#B3B3B3"],
        "fonts": ["Circular, Helvetica, Arial, sans-serif"],
        "features": [
            "대담한 녹색 브랜드 컬러와 다크 테마의 조화",
            "큰 타이포그래피와 넉넉한 여백으로 가독성 향상",
            "그리드 기반 앨범/플레이리스트 레이아웃",
            "부드러운 그라데이션과 블러 효과",
            "음악 플레이어 중심의 인터페이스 디자인"
        ]
    },
    {
        "num": "012",
        "name": "Netflix",
        "colors": ["#E50914", "#000000", "#FFFFFF", "#564D4D", "#831010"],
        "fonts": ["Netflix Sans, Helvetica Neue, Helvetica, Arial, sans-serif"],
        "features": [
            "강렬한 빨간색 브랜드 컬러와 블랙 배경",
            "대형 히어로 이미지와 비디오 배경",
            "가로 스크롤 카드 레이아웃",
            "콘텐츠 중심의 미니멀한 네비게이션",
            "호버 시 확대되는 인터랙티브 카드"
        ]
    },
    {
        "num": "013",
        "name": "Adobe",
        "colors": ["#FF0000", "#000000", "#FFFFFF", "#FA0F00", "#505050"],
        "fonts": ["Adobe Clean, Source Sans Pro, sans-serif"],
        "features": [
            "빨간색 브랜드 컬러와 모던한 타이포그래피",
            "크리에이티브 작업물을 강조하는 비주얼",
            "제품 아이콘의 일관된 디자인 시스템",
            "깔끔한 그리드 레이아웃과 카드 디자인",
            "전문가적인 느낌의 세련된 UI"
        ]
    },
    {
        "num": "014",
        "name": "Microsoft",
        "colors": ["#00A4EF", "#FFB900", "#F25022", "#7FBA00", "#737373"],
        "fonts": ["Segoe UI, -apple-system, BlinkMacSystemFont, sans-serif"],
        "features": [
            "4색 로고의 브랜드 아이덴티티",
            "타일 기반의 메트로 디자인 언어",
            "넓은 여백과 명확한 타이포그래피 계층",
            "제품 카테고리별 섹션 구분",
            "기업적이면서도 친근한 디자인 톤"
        ]
    },
    {
        "num": "015",
        "name": "Google",
        "colors": ["#4285F4", "#EA4335", "#FBBC04", "#34A853", "#5F6368"],
        "fonts": ["Google Sans, Roboto, Arial, sans-serif"],
        "features": [
            "구글의 다채로운 브랜드 컬러 활용",
            "심플하고 깔끔한 Material Design",
            "일관된 그림자와 높이(elevation) 사용",
            "명확한 행동 유도 버튼",
            "접근성을 고려한 대비와 간격"
        ]
    },
    {
        "num": "016",
        "name": "Shopify",
        "colors": ["#96BF48", "#5E8E3E", "#000000", "#FFFFFF", "#F3FCF0"],
        "fonts": ["ShopifySans, Helvetica, Arial, sans-serif"],
        "features": [
            "밝은 녹색 브랜드 컬러로 성장과 긍정적 이미지",
            "이커머스 성공 사례를 강조하는 비주얼",
            "명확한 CTA와 전환 중심 디자인",
            "깔끔한 제품 이미지와 그리드",
            "비즈니스 신뢰도를 높이는 프로페셔널한 톤"
        ]
    },
    {
        "num": "017",
        "name": "Salesforce",
        "colors": ["#00A1E0", "#032D60", "#FFFFFF", "#E3F3FF", "#54698D"],
        "fonts": ["Salesforce Sans, Arial, sans-serif"],
        "features": [
            "파란색 계열의 신뢰감 있는 브랜드 컬러",
            "클라우드 테마의 일러스트레이션",
            "B2B SaaS 특성을 반영한 전문적 디자인",
            "데이터와 통계를 강조하는 레이아웃",
            "명확한 정보 계층과 섹션 구분"
        ]
    },
    {
        "num": "018",
        "name": "Slack",
        "colors": ["#4A154B", "#36C5F0", "#2EB67D", "#ECB22E", "#E01E5A"],
        "fonts": ["Larsseit, Helvetica Neue, Helvetica, sans-serif"],
        "features": [
            "다채로운 브랜드 컬러로 협업의 활기찬 느낌",
            "메시징 인터페이스를 연상시키는 레이아웃",
            "팀워크를 강조하는 비주얼과 일러스트",
            "친근하고 접근하기 쉬운 디자인 톤",
            "명확한 사용 사례와 기능 설명"
        ]
    },
    {
        "num": "019",
        "name": "Discord",
        "colors": ["#5865F2", "#23272A", "#FFFFFF", "#99AAB5", "#2C2F33"],
        "fonts": ["gg sans, Noto Sans, Helvetica Neue, sans-serif"],
        "features": [
            "보라색 브랜드 컬러와 다크 테마",
            "게이밍/커뮤니티 중심의 캐주얼한 톤",
            "말풍선과 채팅 UI 요소 활용",
            "일러스트레이션으로 친근함 강조",
            "커뮤니티 활동을 부각시키는 레이아웃"
        ]
    },
    {
        "num": "020",
        "name": "Dropbox",
        "colors": ["#0061FF", "#000000", "#FFFFFF", "#F7F5F2", "#B4D7FF"],
        "fonts": ["AtlasGrotesk, -apple-system, BlinkMacSystemFont, sans-serif"],
        "features": [
            "파란색 브랜드 컬러와 미니멀한 디자인",
            "파일 관리를 시각화하는 일러스트",
            "넓은 여백과 깨끗한 레이아웃",
            "심플한 아이콘과 타이포그래피",
            "사용 편의성을 강조하는 UI/UX"
        ]
    },
]


def update_html_file(site):
    """HTML 파일에 디자인 분석 섹션 추가"""
    html_path = BASE_DIR / f"{site['num']}.html"

    try:
        with open(html_path, 'r', encoding='utf-8') as f:
            content = f.read()

        # "학습 태그" 섹션 바로 앞에 새로운 섹션 추가
        new_section = f"""            <div class="section">
                <h2 class="section-title">실제 디자인 분석</h2>
                <div class="section-content">
                    <div style="margin-bottom: 24px; padding: 20px; background: #f0f9ff; border-radius: 8px; border-left: 4px solid #0ea5e9;">
                        <p style="color: #0c4a6e; margin: 0;">
                            <strong>참고:</strong> 실제 웹사이트를 방문하여 최신 디자인을 확인하세요.
                            <a href="{SITES[int(site['num'])-11]['name']}" target="_blank" style="color: #0369a1; text-decoration: underline;">
                                사이트 방문 →
                            </a>
                        </p>
                    </div>

                    <h3 style="margin-top: 24px; margin-bottom: 12px; font-size: 18px; color: #374151;">주요 색상 팔레트</h3>
                    <div style="display: flex; flex-wrap: wrap; gap: 12px; margin-bottom: 24px;">
"""

        # 색상 팔레트 추가
        for color in site['colors']:
            new_section += f"""                        <div style="display: flex; flex-direction: column; align-items: center;">
                            <div style="width: 80px; height: 80px; background: {color}; border-radius: 8px; border: 1px solid #e5e7eb; box-shadow: 0 2px 4px rgba(0,0,0,0.1);"></div>
                            <code style="margin-top: 8px; font-size: 12px; color: #6b7280; font-weight: 600;">{color}</code>
                        </div>
"""

        new_section += """                    </div>

                    <h3 style="margin-top: 24px; margin-bottom: 12px; font-size: 18px; color: #374151;">사용된 폰트</h3>
                    <div style="background: #f9fafb; padding: 16px; border-radius: 8px; margin-bottom: 24px;">
"""

        # 폰트 정보 추가
        for font in site['fonts']:
            new_section += f"""                        <div style="margin-bottom: 8px; color: #4b5563;">
                            <code style="background: white; padding: 8px 12px; border-radius: 4px; font-size: 14px; display: inline-block; border: 1px solid #e5e7eb;">{font}</code>
                        </div>
"""

        new_section += """                    </div>

                    <h3 style="margin-top: 24px; margin-bottom: 12px; font-size: 18px; color: #374151;">디자인 특징</h3>
                    <ul style="padding-left: 20px; color: #4b5563; line-height: 1.8;">
"""

        # 디자인 특징 추가
        for feature in site['features']:
            new_section += f"""                        <li style="margin-bottom: 8px;">{feature}</li>
"""

        new_section += """                    </ul>
                </div>
            </div>

"""

        # "학습 태그" 섹션 찾기
        tag_section_pattern = r'(\s+<div class="section">\s+<h2 class="section-title">학습 태그</h2>)'

        if re.search(tag_section_pattern, content):
            # "학습 태그" 섹션 바로 앞에 삽입
            updated_content = re.sub(tag_section_pattern, '\n' + new_section + r'\1', content)

            with open(html_path, 'w', encoding='utf-8') as f:
                f.write(updated_content)

            print(f"✓ [{site['num']}] {site['name']} - HTML 파일 업데이트 완료")
            return True
        else:
            print(f"✗ [{site['num']}] {site['name']} - '학습 태그' 섹션을 찾을 수 없습니다.")
            return False

    except Exception as e:
        print(f"✗ [{site['num']}] {site['name']} - HTML 업데이트 오류: {str(e)}")
        return False


def main():
    """메인 실행 함수"""
    print("=" * 60)
    print("HTML 파일 업데이트 스크립트 시작")
    print("=" * 60)
    print()

    success_count = 0
    for site in SITES:
        if update_html_file(site):
            success_count += 1

    print()
    print("=" * 60)
    print(f"완료: {success_count}/{len(SITES)}")
    print("=" * 60)


if __name__ == "__main__":
    main()
