import string
from bs4 import BeautifulSoup
from PIL import Image
from pyzbar.pyzbar import decode

qr_size = 25
pix_size = 10
img_size = pix_size * qr_size

with open("templates/santa.j2", "r") as f:
    soup = BeautifulSoup(f.read(), "html.parser")
    img = Image.new("RGB", (img_size, img_size), "white")
    y = 0

    for c in string.ascii_lowercase:
        bin_str = ""
        x = 0
        for e in soup.find_all("span"):
            if e.text.strip() == "{{" + c + "}}":               
                if "a" in e["class"]:
                    color = (0, 0, 0)
                else:
                    color = (255, 255, 255)

                for xi in range(x, x+pix_size):
                    for yi in range(y, y+pix_size):
                        img.putpixel((xi, yi), color)

                x += pix_size
        y += pix_size

    print("[+] Flag:", decode(img)[0].data.decode())