import os
import re

# Mapping of all 29 brothers from Desktop/fwdphotos (4)
new_photos = {
    "Br. Santosh Toppo": "assets/images/friars/br-santosh-toppo.png",
    "Fr. Santosh Toppo": "assets/images/friars/br-santosh-toppo.png",
    "Br. Juewel Tirkey": "assets/images/friars/br-juewel-tirkey.png",
    "Br. Bikash Kiro": "assets/images/friars/br-bikash-kiro.png",
    "Br. Harshit Kerketta": "assets/images/friars/br-harshit-kerketta.png",
    "Br. Remesh Dhodray": "assets/images/friars/br-remesh-dhodray.png",
    "Br. Roshan Soreng": "assets/images/friars/br-roshan-soreng.png",
    "Br. Abrahm Soren": "assets/images/friars/br-abrahm-soren.png",
    "Br. Odil Kerketta": "assets/images/friars/br-odil-kerketta.png",
    "Br. Rujesh Panna": "assets/images/friars/br-rujesh-panna.png",
    "Br. Sukesh Kullu": "assets/images/friars/br-sukesh-kullu.png",
    "Br. Joseph Kullu": "assets/images/friars/br-joseph-kullu.png",
    "Br. Kuldeep Ekka": "assets/images/friars/br-kuldeep-ekka.png",
    "Fr. Kuldeep Ekka": "assets/images/friars/br-kuldeep-ekka.png",
    "Br. Linus Kerketta": "assets/images/friars/br-linus-kerketta.png",
    "Br. Mohit Dungdung": "assets/images/friars/br-mohit-dungdung.png",
    "Br. Sudeep Barwa": "assets/images/friars/br-sudeep-barwa.png",
    "Br. Ashish Bhengra": "assets/images/friars/br-ashish-bhengra.png",
    "Br. Arpan Kongari": "assets/images/friars/br-arpan-kongari.png",
    "Br. Kishor Bage": "assets/images/friars/br-kishor-bage.png",
    "Br. Michael Topno": "assets/images/friars/br-michael-topno.png",
    "Br. Naman Kandulna": "assets/images/friars/br-naman-kandulna.png",
    "Br. Patrick Topno": "assets/images/friars/br-patrick-topno.png",
    "Br. Praful Xaxa": "assets/images/friars/br-praful-xaxa.png",
    "Br. Oskar Soreng": "assets/images/friars/br-oskar-soreng.png",
    "Br. Kishor Jariya": "assets/images/friars/br-kishor-jariya.png",
    "Br. Kishor Jaria": "assets/images/friars/br-kishor-jariya.png",
    "Br. Ajit Topno": "assets/images/friars/br-ajit-topno.png",
    "Br. Mukesh Toppo": "assets/images/friars/br-mukesh-toppo.png",
    "Br. Anselm Mundu": "assets/images/friars/br-anselem-mundu.png",
    "Br. Anselem Mundu": "assets/images/friars/br-anselem-mundu.png",
    "Br. Amardeep Lakra": "assets/images/friars/br-amardeep-lakra.png",
    "Br. William Minz": "assets/images/friars/br-william-minz.png"
}

# Necrology list with dates
necrology_data = [
    {"name": "Br. Carlus Bara", "date": "28.07.2002", "img": "assets/images/gallery/IMG_1013.JPG"},
    {"name": "Br. Michael Bhengra", "date": "23.07.2003", "img": "assets/images/gallery/IMG_1016.JPG"},
    {"name": "Deacon Sabu Vettikottil", "date": "13.12.2003", "img": "assets/images/gallery/IMG_1017.JPG"},
    {"name": "Fr. Dionis Kiro", "date": "29.02.2008", "img": "assets/images/gallery/IMG_1018.JPG"},
    {"name": "Fr. James Lakra", "date": "03.06.2013", "img": "assets/images/gallery/IMG_1019.JPG"},
    {"name": "Fr. Augustine Peedikamala", "date": "14.10.2014", "img": "assets/images/gallery/IMG_1020.JPG"},
    {"name": "Br. Benedict Kullu", "date": "28.01.2021", "img": "assets/images/gallery/IMG_1157.JPG"},
    {"name": "Fr. Gregory Kerketta", "date": "20.04.2021", "img": "assets/images/gallery/IMG_1163.JPG"},
    {"name": "Fr. Donatus Soreng", "date": "11.05.2021", "img": "assets/images/gallery/IMG_1166.JPG"},
    {"name": "Fr. Fabian Kunnappillil", "date": "20.01.2025", "img": "assets/images/gallery/IMG_1169.JPG"},
    {"name": "Fr. Sushil Prawin Tiru", "date": "07.01.2026", "img": "assets/images/gallery/IMG_1236.JPG"}
]

with open('community-friars.html', 'r', encoding='utf-8') as f:
    html = f.read()

# 1. Update existing cards with matching photos
for name, img_path in new_photos.items():
    # regex for card with this name
    pattern = re.compile(
        r'(<div style="text-align: center;">\s*<div style="width: 140px; height: 140px;[^"]*">\s*<img src=")[^"]+(" alt="[^"]*" style="[^"]*">\s*</div>\s*<h4[^>]*>' + re.escape(name) + r'</h4>)',
        re.MULTILINE
    )
    if pattern.search(html):
        html = pattern.sub(r'\g<1>' + img_path + r'\2', html)
        print(f"Updated photo for existing friar: {name}")

# 2. Check which of the 29 Brothers are not yet in the HTML, and add them
all_29_distinct = [
    ("Br. Santosh Toppo", "assets/images/friars/br-santosh-toppo.png"),
    ("Br. Kuldeep Ekka", "assets/images/friars/br-kuldeep-ekka.png"),
    ("Br. Oskar Soreng", "assets/images/friars/br-oskar-soreng.png"),
    ("Br. Kishor Jariya", "assets/images/friars/br-kishor-jariya.png"),
    ("Br. Ajit Topno", "assets/images/friars/br-ajit-topno.png"),
    ("Br. Mukesh Toppo", "assets/images/friars/br-mukesh-toppo.png"),
    ("Br. Anselm Mundu", "assets/images/friars/br-anselem-mundu.png"),
    ("Br. Amardeep Lakra", "assets/images/friars/br-amardeep-lakra.png"),
    ("Br. William Minz", "assets/images/friars/br-william-minz.png"),
    ("Br. Juewel Tirkey", "assets/images/friars/br-juewel-tirkey.png"),
    ("Br. Bikash Kiro", "assets/images/friars/br-bikash-kiro.png"),
    ("Br. Harshit Kerketta", "assets/images/friars/br-harshit-kerketta.png"),
    ("Br. Remesh Dhodray", "assets/images/friars/br-remesh-dhodray.png"),
    ("Br. Roshan Soreng", "assets/images/friars/br-roshan-soreng.png"),
    ("Br. Abrahm Soren", "assets/images/friars/br-abrahm-soren.png"),
    ("Br. Odil Kerketta", "assets/images/friars/br-odil-kerketta.png"),
    ("Br. Rujesh Panna", "assets/images/friars/br-rujesh-panna.png"),
    ("Br. Sukesh Kullu", "assets/images/friars/br-sukesh-kullu.png"),
    ("Br. Joseph Kullu", "assets/images/friars/br-joseph-kullu.png"),
    ("Br. Linus Kerketta", "assets/images/friars/br-linus-kerketta.png"),
    ("Br. Mohit Dungdung", "assets/images/friars/br-mohit-dungdung.png"),
    ("Br. Sudeep Barwa", "assets/images/friars/br-sudeep-barwa.png"),
    ("Br. Ashish Bhengra", "assets/images/friars/br-ashish-bhengra.png"),
    ("Br. Arpan Kongari", "assets/images/friars/br-arpan-kongari.png"),
    ("Br. Kishor Bage", "assets/images/friars/br-kishor-bage.png"),
    ("Br. Michael Topno", "assets/images/friars/br-michael-topno.png"),
    ("Br. Naman Kandulna", "assets/images/friars/br-naman-kandulna.png"),
    ("Br. Patrick Topno", "assets/images/friars/br-patrick-topno.png"),
    ("Br. Praful Xaxa", "assets/images/friars/br-praful-xaxa.png"),
]

missing_cards = []
for name, img_path in all_29_distinct:
    # Check if name exists in HTML
    if name not in html and name.replace('Jariya', 'Jaria').replace('Anselm', 'Anselem') not in html:
        card_html = f"""            <div style="text-align: center;">
                <div style="width: 140px; height: 140px; border-radius: 50%; overflow: hidden; margin: 0 auto 1rem auto; box-shadow: 0 10px 20px rgba(0,0,0,0.1); border: 2px solid #e6c888;">
                    <img src="{img_path}" alt="{name}" style="width: 100%; height: 100%; object-fit: cover;">
                </div>
                <h4 style="font-family: 'Phudu', sans-serif; font-size: 1rem; font-weight: 700; color: #4a2a18; margin: 0;">{name}</h4>
            </div>"""
        missing_cards.append(card_html)
        print(f"Adding new card for Brother: {name}")

if missing_cards:
    # Append before the closing </div> of the friars grid
    # Find the end of the friars grid (right before NECROLOGY)
    friars_grid_end = re.search(r'(</div>\s*<h2[^>]*>NECROLOGY</h2>)', html)
    if friars_grid_end:
        insert_pos = friars_grid_end.start(1)
        html = html[:insert_pos] + "\n".join(missing_cards) + "\n        " + html[insert_pos:]
        print(f"Appended {len(missing_cards)} missing brothers to OUR FRIARS grid.")

# 3. Replace the plain NECROLOGY list with the rich card grid style
necrology_cards = []
for item in necrology_data:
    card = f"""            <div style="text-align: center;">
                <div style="width: 140px; height: 140px; border-radius: 50%; overflow: hidden; margin: 0 auto 1rem auto; box-shadow: 0 10px 20px rgba(0,0,0,0.15); border: 2px solid #e6c888; background: #2a160b; position: relative;">
                    <img src="{item['img']}" alt="{item['name']}" style="width: 100%; height: 100%; object-fit: cover; filter: grayscale(40%);">
                </div>
                <h4 style="font-family: 'Phudu', sans-serif; font-size: 1rem; font-weight: 700; color: #4a2a18; margin: 0 0 0.35rem 0;">{item['name']}</h4>
                <p style="font-family: 'Instrument Sans', sans-serif; font-size: 0.85rem; font-weight: 600; color: #78716c; margin: 0;">&#10013; {item['date']}</p>
            </div>"""
    necrology_cards.append(card)

new_necrology_section = f"""        <h2 style="font-family: 'Phudu', sans-serif; font-size: 2.2rem; font-weight: 900; color: #1c1917; margin-bottom: 2.5rem; text-align: center; border-top: 1px solid #e5e5e5; padding-top: 4rem;">NECROLOGY</h2>
        <div style="display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 2rem; margin-bottom: 5rem;">
{"\n".join(necrology_cards)}
        </div>"""

# Replace existing necrology section
old_necro_pattern = re.compile(
    r'<h2[^>]*>NECROLOGY</h2>\s*<div style="max-width: 600px; margin: 0 auto;">[\s\S]*?</ul>\s*</div>',
    re.MULTILINE
)

if old_necro_pattern.search(html):
    html = old_necro_pattern.sub(new_necrology_section, html)
    print("Replaced NECROLOGY section with rich card grid.")
else:
    print("Necrology section pattern not found!")

with open('community-friars.html', 'w', encoding='utf-8') as f:
    f.write(html)

print("Finished updating community-friars.html")
