import os
import re
from pathlib import Path

def remove_scripts_and_css_from_html(content):
    """
    Odstraní všechny skripty z HTML obsahu a CSS odkazy na web-static.archive.org.
    Podporuje jak jednořádkové, tak víceřádkové skripty.
    """
    # Pattern pro nalezení všech script tagů a jejich obsahu
    script_pattern = r'<script\b[^>]*>.*?</script>'
    # Pattern pro nalezení CSS linků z web-static.archive.org
    css_pattern = r'<link[^>]*href="https://web-static\.archive\.org[^"]*"[^>]*>'
    
    # Odstraň skripty (re.DOTALL zajistí, že tečka matchuje i newline znaky)
    cleaned_content = re.sub(script_pattern, '', content, flags=re.DOTALL | re.IGNORECASE)
    # Odstraň specifické CSS linky
    cleaned_content = re.sub(css_pattern, '', cleaned_content, flags=re.IGNORECASE)
    
    return cleaned_content

def process_directory(directory_path):
    """
    Rekurzivně projde adresář a zpracuje všechny .htm a .html soubory
    """
    directory = Path(directory_path)
    
    # Získej seznam všech HTML souborů
    html_files = list(directory.rglob('*.htm')) + list(directory.rglob('*.html'))
    
    for file_path in html_files:
        try:
            print(f"Zpracovávám soubor: {file_path}")
            
            # Přečti obsah souboru
            with open(file_path, 'r', encoding='utf-8') as file:
                content = file.read()
            
            # Odstraň skripty a CSS
            cleaned_content = remove_scripts_and_css_from_html(content)
            
            # Pokud došlo ke změně, ulož soubor
            if content != cleaned_content:
                # Vytvoř záložní kopii původního souboru
                backup_path = str(file_path) + '.backup'
                os.rename(file_path, backup_path)
                
                # Ulož vyčištěný obsah
                with open(file_path, 'w', encoding='utf-8') as file:
                    file.write(cleaned_content)
                print(f"  - Skripty byly odstraněny, záloha uložena jako: {backup_path}")
            else:
                print("  - Žádné skripty nebyly nalezeny")
                
        except Exception as e:
            print(f"Chyba při zpracování souboru {file_path}: {str(e)}")

if __name__ == "__main__":
    # Získej cestu k adresáři od uživatele
    directory_path = input("Zadejte cestu k adresáři: ")
    
    if os.path.isdir(directory_path):
        process_directory(directory_path)
        print("\nZpracování dokončeno!")
    else:
        print("Zadaná cesta není platným adresářem!")
