#!/usr/bin/env python3
"""Quita los botones sociales del derivado `site/`. `raw/` no se toca.
El bloque de K2 es uniforme en las 16.708 paginas que lo llevan: `
`
contiene el boton de Twitter, el de Facebook y un clearfix, nada mas (comprobado con
86-survey-social.py sobre 400 paginas: 0 variantes). Se elimina el bloque entero, asi no quedan
huecos ni botones rotos.
Red de seguridad: fuera del bloque tambien se eliminan los ',
re.I)
FB_ROOT = re.compile(r'
\s*
', re.I)
TW_ANCHOR = re.compile(r'
]*class="[^"]*twitter-share-button[^"]*"[^>]*>.*?', re.I | re.S)
FB_LIKE = re.compile(r'
]*class="[^"]*fb-like[^"]*"[^>]*>\s*
', re.I)
AVISO = ('')
def es_html(path, fn):
"""Decidir por extension no basta en este mirror: conviven `x.html?tmpl=…` (la extension esta
antes de la query) y `x?.html` con su copia `x` sin extension (alias de K2 con '?' literal).
Para esos casos se mira el contenido, que es lo unico fiable."""
base = fn.split("?", 1)[0].lower()
if base.endswith((".html", ".htm")) or fn.lower().endswith((".html", ".htm")):
return True
if "." in fn.split("/")[-1].split("?", 1)[0]:
return False # tiene otra extension (jpg, mp3, css…)
try:
with open(path, "rb") as f:
cabeza = f.read(512).lstrip().lower()
return cabeza.startswith(b"