#!/usr/bin/env python3
"""
Script para extrair dados do ML usando cookies salvos
USO: python3 extrair_ml_com_cookies.py URL_DO_PRODUTO
"""

import sys
import os

# Define o caminho dos browsers do Playwright (acessível pelo www-data)
os.environ['PLAYWRIGHT_BROWSERS_PATH'] = '/var/www/.cache/ms-playwright'

from ml_scraper_autenticado import MercadoLivreScraper

if len(sys.argv) < 2:
    print("❌ Uso: python3 extrair_ml_com_cookies.py URL_DO_PRODUTO")
    sys.exit(1)

url = sys.argv[1]

print("🚀 Iniciando scraper em modo headless...")
print(f"🔍 URL: {url}\n")

# Cria scraper em modo headless (sem interface)
scraper = MercadoLivreScraper(headless=True)

try:
    scraper.iniciar_navegador()
    
    # Verifica se tem cookies
    import os
    if not os.path.exists('ml_cookies.json'):
        print("\n❌ ERRO: Arquivo 'ml_cookies.json' não encontrado!")
        print("\n💡 SOLUÇÃO:")
        print("   1. No Windows, rode: python capturar_cookies_windows.py")
        print("   2. Faça login no navegador que abrir")
        print("   3. Envie o arquivo para o servidor:")
        print("      scp ml_cookies.json root@servidor:/var/www/get-produtos-api/")
        sys.exit(1)
    
    print("✅ Cookies encontrados!")
    
    # Extrai dados
    dados = scraper.extrair_dados_produto(url)
    
    if dados:
        print("\n" + "="*70)
        print("✅ DADOS EXTRAÍDOS COM SUCESSO")
        print("="*70)
        print(f"\n📌 TÍTULO:")
        print(f"   {dados['titulo']}")
        
        print(f"\n📝 DESCRIÇÃO:")
        if dados['descricao']:
            desc_preview = dados['descricao'][:200]
            print(f"   {desc_preview}...")
        else:
            print("   (Não encontrada)")
        
        print(f"\n🖼️ IMAGENS ({len(dados['imagens'])}):")
        for i, img in enumerate(dados['imagens'][:5], 1):
            print(f"   {i}. {img}")
        
        if len(dados['imagens']) > 5:
            print(f"   ... e mais {len(dados['imagens']) - 5} imagens")
        
        print("\n" + "="*70)
        
        # Salva em JSON
        import json
        output_file = 'produto_extraido.json'
        with open(output_file, 'w', encoding='utf-8') as f:
            json.dump(dados, f, indent=2, ensure_ascii=False)
        
        print(f"💾 Dados salvos em: {output_file}")
        
    else:
        print("\n❌ Não foi possível extrair dados do produto")
        
except Exception as e:
    print(f"\n❌ Erro: {e}")
    import traceback
    traceback.print_exc()
    
finally:
    scraper.fechar()
