#!/usr/bin/env python
# -*- coding: utf-8 -*-
#Page html pour les dépouillements d'actes généalogiques
import sys, os, glob #laisser os ici, sinon, les .open ne fonctionnent pas...
from string import *
from os.path import *
from distutils.file_util import *
from time import strftime
from bonaccent import *

#### Traitement des globals
import __builtin__
def setGlobal(**d):
    "Ajout au dictionnaire de globals"
    __builtin__.__dict__.update(d)
    ### syntaxe d'ajout : SetGlobal(xx=99)

def detail(ligne):
    "calcul des champs d'un acte"
    ligne = bonacc(ligne) + ";"
    res = []
    dep = 0
    champ = ""
    for i in range(len(ligne)):
        if ligne[i] == ";":
           res.append(champ)
           dep = i + 1
           champ = ""
        elif ligne[i] != '"':
            champ += ligne[i]
    return(res)

##########################################################
######### Traitement principal
def main():
    "Traitement de tête"
    param1 = ""
    timedebut = strftime("%d/%m/%Y %H:%M")
    setGlobal(saccVersion = "html actes version 1.0a")
    try:
        param1 = sys.argv[1]
    except:
        param1 = ""
        print saccVersion + " - " + timedebut + "\n"
    else:
        if param1 == "--help":
            print saccVersion + " - " + timedebut + "\n"
            mess = "Ce programme crée une page html pour les actes de actes.txt"
            print mess
            return ()
    factes = "actes.txt"
    if not exists(factes):
        print "Le fichier Actes.txt est absent"
        return()
    fich0 = open(factes,'r')
    ligacte=fich0.readlines()
    fich0.close()
    fich = open("actes.html","w")
    ligne =     '<html><meta http-equiv="Content-Type" ' \
        + ' content="text/html; charset=ISO-8859-1">'
    ligne += "<head><title>St Martin La Fosse</title></head><body>"
    ligne += '<a name="Haut"></a><center>'
    ligne += "<h1>Dépouillements des archives paroissiales de<br>St Martin La Fosse, de 1841 à 1903</h1></center>"
    ligne += "Entre crochets, le(s) lieu(x) : M pour St Martin, P pour St Pierre, B pour Bossenay, F pour La Fosse, C pour Corduan<br>\n\n"
    for i in range(len(ligacte)):
        if i != 0:
            det = detail(ligacte[i])
            ligne += '\n<br><b>' + det[1] + "</b> [" + det[3] + "], "
            if det[2][0] == "N":
                for i in [1, 3, 6, 7, 8, 9, 11, 12, 13, 14]:
                    if det[i] == "":
                        det[i] = "?"
                ligne += '<a href="' + det[0] + '.jpg">Naissance'
                if det[2] == "ND":
                    ligne += "/décés"
                ligne += " de " + upper(det[4]) + " " + det[5] + "</a>, enfant de "
                ligne += upper(det[6]) + " " + det[7] + " et de "
                ligne += upper(det[8]) + " " + det[9] + " avec pour parrain "
                ligne += upper(det[11]) + " " + det[12] + " et pour marraine "
                ligne += upper(det[13]) + " " + det[14]
            elif det[2] == "M":
                for i in [1, 3, 6, 7, 8, 9, 11, 12, 13, 14]:
                    if det[i] == "":
                        det[i] = "?"
                ligne += '<a href="' + det[0] + '.jpg">Mariage'
                ligne += " de " + upper(det[4]) + " " + det[5] + " et de "
                ligne += upper(det[6]) + " " + det[7] + "</a>"
                if det[11] != "?":
                    ligne += " avec pour témoin"
                    if det[13] != "?":
                        ligne += "s"
                    ligne += upper(det[11]) + " " + det[12]
                    if det[13] != "?":
                        ligne += " et " + upper(det[13]) + " " + det[14]
            elif det[2] == "D":
                for i in [1, 3, 6, 7, 8, 9, 11, 12, 13, 14]:
                    if det[i] == "":
                        det[i] = "?"
                ligne += '<a href="' + det[0] + '.jpg">Décès'
                ligne += " de " + upper(det[4]) + " " + det[5] + "</a>"
                if det[10] != "":
                    ligne += " à l'âge de " + det[10] + " ans"
                if det[6] != "?" and det[8] != "?":
                    ligne += ", enfant de " + upper(det[6]) + " " + det[7]
                    ligne += " et de " + upper(det[8]) + " " + det[9]
                elif det[6] != "?" and det[8] == "?":
                    if det[10] != "" and isNumeric(det[10]):
                        ligne += ", enfant de " + upper(det[6]) + " " + det[7]
                    else:
                        ligne += ", conjoint de " + upper(det[6]) + " " + det[7]
                if det[11] != "?":
                    ligne += " avec pour témoin"
                    if det[13] != "?":
                        ligne += "s"
                    ligne += upper(det[11]) + " " + det[12]
                    if det[13] != "?":
                        ligne += " et " + upper(det[13]) + " " + det[14]
            if det[15] != "":
                ligne += " - " + det[15]
    ligne += '</body></html>'
    fich.write(ligne)
    fich.close

rr = main()
