import requests
import json
import os
import html

# --- Dossier de sortie ---
os.makedirs("data", exist_ok=True)
output_path = "data/quran.json"

# --- Liste des sourates méritoires ---
sourates = [
    {"sourate": 1, "nom": "Al-Fatihah", "nom_ar": "الفاتحة", "versets": [(1, 7)]},
    {"sourate": 2, "nom": "Al-Baqara", "nom_ar": "البقرة", "versets": [(1, 5), (255, 257), (284, 286)]},
    {"sourate": 3, "nom": "Al-Imran", "nom_ar": " آل عمران", "versets": [(1, 9), (18, 19), (26, 27), (190, 200)]},
    {"sourate": 9, "nom": "At-Tawba", "nom_ar": "التوبة", "versets": [(128, 129)]},
    {"sourate": 18, "nom": "Al-Kahf", "nom_ar": "الكهف", "versets": [(107, 110)]},
    {"sourate": 32, "nom": "As-Sajda", "nom_ar": "السجدة", "versets": [(1, 30)]},
    {"sourate": 36, "nom": "Ya-Sin", "nom_ar": "يس", "versets": [(1, 83)]},
    {"sourate": 40, "nom": "Ghafir", "nom_ar": "غافر", "versets": [(1, 3)]},
    {"sourate": 44, "nom": "Ad-Dukhan", "nom_ar": "الدخان", "versets": [(1, 40)]},
    {"sourate": 56, "nom": "Al-Waqi‘ah", "nom_ar": "الواقعة", "versets": [(1, 96)]},
    {"sourate": 57, "nom": "Al-Hadid", "nom_ar": "الحديد", "versets": [(1, 29)]},
    {"sourate": 59, "nom": "Al-Hashr", "nom_ar": "الحشر", "versets": [(1, 24)]},
    {"sourate": 61, "nom": "As-Saff", "nom_ar": "الصف", "versets": [(1, 11)]},
    {"sourate": 62, "nom": "Al-Joumou‘a", "nom_ar": "الصف", "versets": [(1, 11)]},
    {"sourate": 64, "nom": "At-Taghaboun", "nom_ar": " التغابن", "versets": [(1, 18)]},
    {"sourate": 67, "nom": "Al-Mulk", "nom_ar": "الملك", "versets": [(1, 30)]},
    {"sourate": 87, "nom": "Al-A‘la", "nom_ar": " الأعلى", "versets": [(1, 19)]},
    {"sourate": 93, "nom": "Ad-Dhoha", "nom_ar": " الضحى", "versets": [(1, 11)]},
    {"sourate": 94, "nom": "Ash-Sharh", "nom_ar": "الشرح", "versets": [(1, 8)]},
    {"sourate": 96, "nom": "Al-‘Alaq", "nom_ar": "العلق", "versets": [(1, 19)]},
    {"sourate": 97, "nom": "Al-Qadr", "nom_ar": "القدر", "versets": [(1, 5)]},
    {"sourate": 99, "nom": "Al-Zalzala", "nom_ar": " الزلزلة", "versets": [(1, 8)]},
    {"sourate": 102, "nom": "At-Takathour", "nom_ar": " التكاثر", "versets": [(1, 8)]},
    {"sourate": 103, "nom": "Al-‘Asr", "nom_ar": "العصر", "versets": [(1, 3)]},
    {"sourate": 106, "nom": "Quraish", "nom_ar": "قريش", "versets": [(1, 4)]},
    {"sourate": 107, "nom": "Al-Ma‘oun", "nom_ar": "الماعون", "versets": [(1, 7)]},
    {"sourate": 108, "nom": "Al-Kaouthar", "nom_ar": "الكوثر", "versets": [(1, 3)]},
    {"sourate": 109, "nom": "Al-Kafiroun", "nom_ar": "الكافرون", "versets": [(1, 6)]},
    {"sourate": 110, "nom": "An-Nasr", "nom_ar": "النصر", "versets": [(1, 3)]},
    {"sourate": 112, "nom": "Al-Ikhlas", "nom_ar": "الإخلاص", "versets": [(1, 5)]},
    {"sourate": 113, "nom": "Al-Falaq", "nom_ar": "الفلق", "versets": [(1, 5)]},
    {"sourate": 114, "nom": "An-Nass", "nom_ar": "الناس", "versets": [(1, 6)]},
]

# --- Structure du futur fichier JSON ---
quran_data = {}

# --- Téléchargement des versets ---
for s in sourates:
    sid = str(s["sourate"])
    print(f"→ Téléchargement de la sourate {s['nom']} ({sid})")

    url = f"https://api.quran.com/api/v4/quran/verses/uthmani?chapter_number={sid}"
    try:
        r = requests.get(url, verify=False)
        data = r.json()
    except Exception as e:
        print(f"⚠️ Erreur de connexion pour la sourate {sid} : {e}")
        continue

    quran_data[sid] = {
        "nom": s["nom"],
        "nom_ar": s["nom_ar"],
        "versets": {}
    }

    for (start, end) in s["versets"]:
        for v in data.get("verses", []):
            num = int(v["verse_key"].split(":")[1])
            if start <= num <= end:
                texte = html.unescape(v["text_uthmani"])
                quran_data[sid]["versets"][str(num)] = texte

# --- Sauvegarde dans data/quran.json ---
with open(output_path, "w", encoding="utf-8") as f:
    json.dump(quran_data, f, ensure_ascii=False, indent=2)

print(f"✅ Fichier JSON généré : {output_path}")
