#!/usr/bin/env python3
# gerar_sitemap.py
# Rode este script antes de fazer deploy para gerar o sitemap.xml completo

import requests
import xml.etree.ElementTree as ET
from datetime import datetime

SUPABASE_URL = 'https://mrlcqddfplhnagvlzhvi.supabase.co'
SUPABASE_KEY = 'sb_publishable_may9XrcV_KjqCplPaac9TQ_CgrrusCQ'

def buscar_animes():
    """Busca todos os animes do Supabase"""
    url = f"{SUPABASE_URL}/rest/v1/animes?select=id,updated_at&limit=5000"
    headers = {
        'apikey': SUPABASE_KEY,
        'Authorization': f'Bearer {SUPABASE_KEY}'
    }

    try:
        response = requests.get(url, headers=headers, timeout=30)
        response.raise_for_status()
        return response.json()
    except Exception as e:
        print(f"Erro ao buscar animes: {e}")
        return []

def gerar_sitemap():
    animes = buscar_animes()
    hoje = datetime.now().strftime('%Y-%m-%d')

    urlset = ET.Element('urlset', xmlns='http://www.sitemaps.org/schemas/sitemap/0.9')

    # Páginas principais
    paginas = [
        {'loc': 'https://aniorbita.uk/', 'priority': '1.0', 'changefreq': 'daily'},
        {'loc': 'https://aniorbita.uk/catalogo', 'priority': '0.9', 'changefreq': 'daily'},
        {'loc': 'https://aniorbita.uk/catalogo?tipo=filmes', 'priority': '0.8', 'changefreq': 'weekly'},
        {'loc': 'https://aniorbita.uk/catalogo?tipo=em_alta', 'priority': '0.8', 'changefreq': 'weekly'},
    ]

    # Adiciona cada anime
    for anime in animes:
        anime_id = anime.get('id', '')
        updated = anime.get('updated_at', '')
        lastmod = updated.split('T')[0] if updated else hoje

        paginas.append({
            'loc': f'https://aniorbita.uk/anime?id={anime_id}',
            'priority': '0.7',
            'changefreq': 'weekly',
            'lastmod': lastmod
        })

    for pagina in paginas:
        url_elem = ET.SubElement(urlset, 'url')
        ET.SubElement(url_elem, 'loc').text = pagina['loc']
        ET.SubElement(url_elem, 'lastmod').text = pagina.get('lastmod', hoje)
        ET.SubElement(url_elem, 'changefreq').text = pagina['changefreq']
        ET.SubElement(url_elem, 'priority').text = pagina['priority']

    # Formata o XML bonitinho
    ET.indent(urlset, space='  ')
    xml_str = ET.tostring(urlset, encoding='unicode', xml_declaration=True)

    with open('sitemap.xml', 'w', encoding='utf-8') as f:
        f.write(xml_str)

    print(f"✅ Sitemap gerado com sucesso!")
    print(f"   Total de URLs: {len(paginas)}")
    print(f"   Animes indexados: {len(animes)}")
    print(f"   Arquivo: sitemap.xml")

if __name__ == '__main__':
    gerar_sitemap()
