#!/usr/bin/env python3
# -*- coding: utf-8 -*-

"""
Script d'exemple pour extraire les images du ticket T0241.
Cet exemple montre comment utiliser l'extracteur d'images HTML.
"""

import os
import sys
import json

# Ajouter le répertoire parent au chemin de recherche
parent_dir = os.path.abspath(os.path.join(os.path.dirname(__file__), '../../..'))
sys.path.append(parent_dir)

from utils.image_extractor import extract_images_from_ticket
from utils.image_extractor.extract_all_images import enhance_ticket_data_with_images

# Chemin vers le répertoire du ticket T0241
ticket_dir = os.path.join(parent_dir, "output", "ticket_T0241", "T0241_20250409_141018")

def main():
    """
    Fonction principale pour extraire les images du ticket T0241.
    """
    if not os.path.exists(ticket_dir):
        print(f"Répertoire introuvable: {ticket_dir}")
        sys.exit(1)
        
    print(f"Extraction des images pour le ticket: {os.path.basename(ticket_dir)}")
    
    # 1. Utiliser directement l'extracteur d'images HTML
    print("\n1. Extraction des images intégrées dans le HTML:")
    embedded_images = extract_images_from_ticket(ticket_dir)
    print(f"  Nombre d'images trouvées: {len(embedded_images)}")
    for img in embedded_images:
        print(f"  - {os.path.basename(img)}")
    
    # 2. Utiliser l'extracteur complet pour récupérer toutes les images
    print("\n2. Extraction de toutes les images (standard + intégrées):")
    
    # Charger les données minimales du ticket
    ticket_data = {"ticket_dir": ticket_dir}
    
    # Charger les pièces jointes si disponibles
    attachments_info_path = os.path.join(ticket_dir, "attachments_info.json")
    if os.path.exists(attachments_info_path):
        with open(attachments_info_path, 'r', encoding='utf-8') as f:
            ticket_data["attachments"] = json.load(f)
    
    # Enrichir avec toutes les images
    enhanced_data = enhance_ticket_data_with_images(ticket_data)
    
    # Afficher les statistiques
    stats = enhanced_data.get("images_stats", {})
    print(f"  Total: {stats.get('total', 0)}")
    print(f"  Standard: {stats.get('standard', 0)}")
    print(f"  Intégrées: {stats.get('embedded', 0)}")
    
    # Afficher les chemins des images
    print("\n  Images standard:")
    for img in enhanced_data.get("standard_images", []):
        print(f"    - {os.path.basename(img)}")
    
    print("\n  Images intégrées dans le HTML:")
    for img in enhanced_data.get("embedded_images", []):
        print(f"    - {os.path.basename(img)}")
    
    # 3. Sauvegarder les résultats
    output_file = os.path.join(ticket_dir, "all_images.json")
    result = {
        "images": enhanced_data.get("images", []),
        "standard_images": enhanced_data.get("standard_images", []),
        "embedded_images": enhanced_data.get("embedded_images", []),
        "stats": enhanced_data.get("images_stats", {})
    }
    
    with open(output_file, 'w', encoding='utf-8') as f:
        json.dump(result, f, indent=2, ensure_ascii=False)
    
    print(f"\nRésultats sauvegardés dans: {output_file}")
    
    # Afficher un message pour intégrer cette fonctionnalité dans le flux de traitement
    print("\nPour intégrer cette fonctionnalité dans votre flux de traitement existant:")
    print("1. Importez l'extracteur d'images:")
    print("   from utils.image_extractor import extract_images_from_ticket")
    print("2. Utilisez-le pour compléter votre liste d'images:")
    print("   embedded_images = extract_images_from_ticket(ticket_dir)")
    print("3. Ajoutez ces images à votre liste d'images existante")

if __name__ == "__main__":
    main() 