Initial commit
This commit is contained in:
118
organize.py
Normal file
118
organize.py
Normal file
@@ -0,0 +1,118 @@
|
||||
#!/usr/bin/env python3
|
||||
"""
|
||||
Verplaatst alle afbeeldingen naar de /images/ folder en past
|
||||
HTML/CSS verwijzingen aan naar de nieuwe paden.
|
||||
"""
|
||||
|
||||
import os
|
||||
import shutil
|
||||
import re
|
||||
from pathlib import Path
|
||||
|
||||
BASE_DIR = Path("/home/anisy/projects/websites/correctvloerverwarming/correctvloerverwarming.nl")
|
||||
IMAGES_DIR = BASE_DIR / "images"
|
||||
IMAGES_DIR.mkdir(exist_ok=True)
|
||||
|
||||
IMAGE_EXTENSIONS = {".jpg", ".jpeg", ".png", ".gif", ".webp", ".svg", ".ico", ".bmp"}
|
||||
|
||||
def collect_images():
|
||||
"""Verzamel alle afbeeldingen en verplaats ze naar /images/."""
|
||||
moved = 0
|
||||
mapping = {} # old_relative_path -> new_relative_path
|
||||
|
||||
for img_path in BASE_DIR.rglob("*"):
|
||||
if img_path.suffix.lower() in IMAGE_EXTENSIONS and img_path.is_file():
|
||||
# Sla over als al in images/ staat
|
||||
if img_path.parent == IMAGES_DIR:
|
||||
continue
|
||||
|
||||
dest = IMAGES_DIR / img_path.name
|
||||
|
||||
# Voorkom naamconflicten
|
||||
if dest.exists():
|
||||
stem = img_path.stem
|
||||
suffix = img_path.suffix
|
||||
counter = 1
|
||||
while dest.exists():
|
||||
dest = IMAGES_DIR / f"{stem}_{counter}{suffix}"
|
||||
counter += 1
|
||||
|
||||
old_rel = str(img_path.relative_to(BASE_DIR))
|
||||
new_rel = str(dest.relative_to(BASE_DIR))
|
||||
|
||||
mapping[old_rel] = new_rel
|
||||
shutil.copy2(img_path, dest)
|
||||
moved += 1
|
||||
print(f" Gekopieerd: {old_rel} -> {new_rel}")
|
||||
|
||||
print(f"\nTotaal {moved} afbeeldingen naar images/ gekopieerd.")
|
||||
return mapping
|
||||
|
||||
|
||||
def update_html_files(mapping):
|
||||
"""Pas HTML bestanden aan met nieuwe afbeelding paden."""
|
||||
updated = 0
|
||||
|
||||
for html_path in BASE_DIR.rglob("*.html"):
|
||||
try:
|
||||
content = html_path.read_text(encoding="utf-8", errors="ignore")
|
||||
original = content
|
||||
|
||||
for old_path, new_path in mapping.items():
|
||||
filename = Path(old_path).name
|
||||
# Vervang verwijzingen naar de afbeelding op basis van bestandsnaam
|
||||
old_name_escaped = re.escape(filename)
|
||||
# Vervang src="...filename..." en href="...filename..."
|
||||
content = re.sub(
|
||||
r'(src|href)=["\']([^"\']*/)?' + old_name_escaped + r'["\']',
|
||||
lambda m: f'{m.group(1)}="images/{filename}"',
|
||||
content
|
||||
)
|
||||
|
||||
if content != original:
|
||||
html_path.write_text(content, encoding="utf-8")
|
||||
updated += 1
|
||||
|
||||
except Exception as e:
|
||||
print(f" Fout bij {html_path}: {e}")
|
||||
|
||||
print(f"{updated} HTML bestanden bijgewerkt.")
|
||||
|
||||
|
||||
def update_css_files(mapping):
|
||||
"""Pas CSS bestanden aan met nieuwe afbeelding paden."""
|
||||
updated = 0
|
||||
|
||||
for css_path in BASE_DIR.rglob("*.css"):
|
||||
try:
|
||||
content = css_path.read_text(encoding="utf-8", errors="ignore")
|
||||
original = content
|
||||
|
||||
for old_path, new_path in mapping.items():
|
||||
filename = Path(old_path).name
|
||||
old_name_escaped = re.escape(filename)
|
||||
# Vervang url(...) verwijzingen
|
||||
content = re.sub(
|
||||
r'url\(["\']?([^"\'()]*/)?' + old_name_escaped + r'["\']?\)',
|
||||
f'url("../images/{filename}")',
|
||||
content
|
||||
)
|
||||
|
||||
if content != original:
|
||||
css_path.write_text(content, encoding="utf-8")
|
||||
updated += 1
|
||||
|
||||
except Exception as e:
|
||||
print(f" Fout bij {css_path}: {e}")
|
||||
|
||||
print(f"{updated} CSS bestanden bijgewerkt.")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
print("=== Afbeeldingen organiseren ===\n")
|
||||
mapping = collect_images()
|
||||
print("\n=== HTML bestanden bijwerken ===")
|
||||
update_html_files(mapping)
|
||||
print("\n=== CSS bestanden bijwerken ===")
|
||||
update_css_files(mapping)
|
||||
print("\nKlaar!")
|
||||
Reference in New Issue
Block a user