#!/usr/bin/env python3
"""Prepara a pagina (HTML unico de export do Bitsy) de um jogo: aplica as mudancas nossas e poe uma CSP.
uso: make.py [ ]"""
import re, sys
slug, src, out = sys.argv[1:4]
page = open(src, encoding='utf-8').read().replace('\r\n', '\n')
def cut(pattern, flags=re.S, count=1):
global page
page, n = re.subn(pattern, '', page, flags=flags)
assert n == count, (pattern, n)
if slug == 'left-undetected':
# sem os links do rodape (repositorio, itch, Twitter e site do autor)
cut(r'.*?
\n\n')
elif slug == 'a-cozy-winterwalk':
# sem a trilha de fundo, que o jogo tocava de um video do YouTube (script externo, musica de terceiros)
cut(r' \n \n\n')
cut(r' \n')
cut(r'\n')
assert 'youtube' not in page.lower()
csp = ("default-src 'none'; script-src 'unsafe-inline' 'unsafe-eval'; style-src 'unsafe-inline'; img-src data: blob:; "
"media-src data: blob:; font-src data:; connect-src 'self'")
assert page.count('') == 1
page = page.replace('', '\n' % csp, 1)
open(out, 'w', encoding='utf-8', newline='\n').write(page)
if len(sys.argv) > 4:
data = open(sys.argv[4], encoding='utf-8').read().replace('\r\n', '\n')
if slug == 'left-undetected':
old = 'LEFT UNDETECTED{br}by MILDMOJO{br}Twitter: @mildmojo{br}Web: mildmojo.com'
assert data.count(old) == 1
data = data.replace(old, 'LEFT UNDETECTED{br}by MILDMOJO')
open(sys.argv[5], 'w', encoding='utf-8', newline='\n').write(data)