#!/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"