#!/usr/bin/env python3
"""
Скрипт обновления всех шаблонов для использования base.html
"""
import re
import os

templates_dir = 'web/templates'

# Карта соответствия страниц блокам активного меню
nav_map = {
    'dashboard.html': 'nav_dashboard',
    'users.html': 'nav_users',
    'verification.html': 'nav_verification',
    'phones.html': 'nav_phones',
    'broadcast.html': 'nav_broadcast',
    'scheduled_posts.html': 'nav_scheduled_posts',
    'polls.html': 'nav_polls',
    'events.html': 'nav_events',
    'schedules.html': 'nav_schedules',
    'ads.html': 'nav_ads',
    'export.html': 'nav_export',
}

def update_template(template_name):
    """Обновить один шаблон"""
    filepath = os.path.join(templates_dir, template_name)
    
    if not os.path.exists(filepath):
        print(f"⚠️  {template_name} - не найден")
        return False
    
    with open(filepath, 'r', encoding='utf-8') as f:
        content = f.read()
    
    # Проверяем уже ли обновлён
    if 'extends "base.html"' in content:
        print(f"✅ {template_name} - уже обновлён")
        return True
    
    # Определяем блок активного меню
    active_block = nav_map.get(template_name, '')
    
    # Извлекаем контент между sidebar закрывающим тегом и концом файла
    # Находим где начинается основной контент
    match = re.search(r'<!-- Main Content -->\s*<div class="col-md-10 content">(.*?)</div>\s*</div>\s*</div>\s*</body>\s*</html>', content, re.DOTALL)
    
    if not match:
        print(f"❌ {template_name} - не удалось найти контент")
        return False
    
    main_content = match.group(1)
    
    # Извлекаем title
    title_match = re.search(r'<title>(.*?)</title>', content)
    title = title_match.group(1) if title_match else 'Домовой Бот'
    
    # Создаём новый контент
    active_decl = f'{{% block {active_block} %}}active{{% endblock %}}' if active_block else ''
    
    new_content = f'''{{% extends "base.html" %}}

{{% block title %}}{title}{{% endblock %}}

{active_decl}

{{% block content %}}{main_content}
{{% endblock %}}
'''
    
    with open(filepath, 'w', encoding='utf-8') as f:
        f.write(new_content)
    
    print(f"✅ {template_name} - обновлён")
    return True

# Обновляем все шаблоны
print("🔄 Обновление шаблонов...")
updated = 0
for template in nav_map.keys():
    if update_template(template):
        updated += 1

print(f"\n✅ Обновлено {updated} шаблонов")
