#!/usr/bin/env python3 """Gera a pagina do FredyGames a partir do GameDefinition/index.html do LambdaHack: tira os de icones/manifesto (arquivos que nao vao na build) e o link para o GitHub, poe uma CSP sem rede externa e o fetch que troca LambdaHack.wasm por LambdaHack.wasm.gz (30 MB; o CloudFront nao comprime acima de 10 MB). Como o jogo tem tamanho fixo (a grade de 80 colunas de 16 px passa de 1280 px) e o player e menor, a pagina tira o banner e reduz tudo com CSS transform para caber na largura da janela (o mouse do jogo usa getBoundingClientRect, entao acompanha a escala); em tela cheia a escala e do proprio jogo. Uso: index.html.py """ import re, sys src = open(sys.argv[1], encoding="utf-8").read() n = len(re.findall(r'^\s*]*>\s*$', src, re.M)) src = re.sub(r'^\s*]*>\s*\n', '', src, flags=re.M) assert n == 5, n src = src.replace('\n', '') old = '''PLAYING.''' assert old in src src = src.replace(old, 'PLAYING.md in the source.') csp = ('\n' ' \n' ' \n') marker = '\n' assert marker in src src = src.replace(marker, marker + ' ' + csp, 1) fit_css = """ #banner { display: none; } html, body { overflow: hidden; } #wrap { width: max-content; min-width: 100%; transform-origin: 0 0; } """ assert '' in src src = src.replace(' ', fit_css + ' ', 1) assert '' in src and '' in src src = src.replace('', '\n
', 1) fit_js = """
""" src = src.replace(' ', fit_js, 1) open(sys.argv[2], "w", encoding="utf-8").write(src)