#!/usr/bin/env python3 """ Script pour générer et vérifier le sitemap XML Utile pour debug avant mise en production """ import os import sys from pathlib import Path from datetime import datetime # Ajouter le répertoire parent au path sys.path.insert(0, str(Path(__file__).resolve().parent.parent)) # Configuration Django os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'duhaz_blog.settings') import django django.setup() from django.contrib.sitemaps import views from django.test import RequestFactory from blog.sitemaps import BlogSitemap, CategorySitemap, PageSitemap, StaticViewSitemap def generate_sitemap_preview(): """Génère un aperçu du sitemap XML""" print("\n" + "="*70) print("GÉNÉRATION DU SITEMAP XML") print("="*70 + "\n") # Créer une fausse requête factory = RequestFactory() request = factory.get('/sitemap.xml') # Sitemaps configurés sitemaps = { 'blog': BlogSitemap, 'categories': CategorySitemap, 'pages': PageSitemap, 'static': StaticViewSitemap, } try: # Générer le sitemap response = views.sitemap(request, sitemaps) # Sauvegarder dans un fichier de preview output_file = Path(__file__).parent.parent / 'static' / 'sitemap_preview.xml' with open(output_file, 'wb') as f: f.write(response.content) print(f"✅ Sitemap généré avec succès !") print(f"📄 Fichier : {output_file}") print(f"📏 Taille : {len(response.content)} bytes") # Compter les URLs content_str = response.content.decode('utf-8') url_count = content_str.count('') print(f"🔗 Nombre d'URLs : {url_count}") # Afficher un extrait print("\n" + "="*70) print("EXTRAIT DU SITEMAP (premières lignes)") print("="*70) lines = content_str.split('\n')[:20] for line in lines: print(line) print("\n...") print(f"\n(Voir le fichier complet : {output_file})") return True except Exception as e: print(f"❌ Erreur lors de la génération : {e}") import traceback traceback.print_exc() return False if __name__ == "__main__": generate_sitemap_preview()