#!/usr/bin/env python

from PIL import Image
import glob
import re

happy_list = [
    "Jörg, DL2DA",
    "Jens, DL1JGR",
    "Michael, DF6MB",
    "Dieter, DH1DZ",
    "Thorsten, DL1THR",
    "Martin, DD6MH",
    "Gerd, DO3GP",
    "André, DL1ASX",
    "André, DM2MAT und Ingo, DM5DK",
    "Theo, DO1TCL",
    "Ronny, DO3RON",
    "Peter, DO7WA",
    "Dieter, DH9DH",
    "Hans, DL8KAM",
    "Peter, DK4KP",
    "Sven, DF2KS",
    "Nikolaus, DO7WU",
    "Wolfgang, DO3LW",
    "Rainer, DO7RG",
    "Michael, DM7HF",
    "Norbert, DC5ER",
    "Nicole, zunächst DO9NW, inzwischen DD9NW",
    "Markus, zunächst DO1MGH, inzwischen DG2MG",
    "Thore, DJ1TG",
    "Markus, DJ0LM und Achim, DM3KP",
    "Florian, DM8FJ"
]

call_name_re = re.compile("(?P<call>[A-Z0-9\+]+)_(?P<name>[\w\+]+)_cooked.jpg")

namecall2term = {}

replace_namecalls = {
    "Markus+Achim, DJ0LM+DM3KP":   "Markus, DJ0LM und Achim, DM3KP",
    "André+Ingo, DM2MAT+DM5DK": "André, DM2MAT und Ingo, DM5DK",
    "Nicole, DO9NW": "Nicole, zunächst DO9NW, inzwischen DD9NW",
    "Markus, DO1MGH": "Markus, zunächst DO1MGH, inzwischen DG2MG"
}

for pic in glob.glob("*_cooked.jpg"):
    img = Image.open(pic)
    x, y = img.size

    mo = call_name_re.fullmatch(pic)
    if mo:
        name = mo.group("name")
        call = mo.group("call")
        namecall = f"{name}, {call}"
        if namecall in replace_namecalls:
            namecall = replace_namecalls[namecall]
        uri = f"/2021-EA/images/{pic}"
        img_tag = f"<img src=\"{uri}\" alt=\"Bild von {namecall} nach bestandener Prüfung vor BNetzA\" " + \
            f"style=\"height: 36ex; width: {(36*x/y):.2f}ex;\">"
        namecall2term[namecall] = \
            f"<a href=\"{uri}\">{img_tag}</a> {namecall}"
    else:
        raise RuntimeError(f"Ooops: {pic}")

for namecall in namecall2term.keys():
    term = namecall2term[namecall]
    ilist = [i for i in range(0, len(happy_list)) if happy_list[i] == namecall]
    if ilist:
        happy_list[ilist[0]] = term
    else:
        raise SystemError(f"Could not find the place to put the \"{namecall}\" replacement.")


print("\n\n\n")

for happy in happy_list:
    if "<a " in happy:
        pass
    else:
        happy = f"<span>{happy}</span>"
    print(f"* 👌 {happy}")
    
