#!/usr/bin/env python3
# -*- coding: utf-8 -*-

import subprocess
import time
from pathlib import Path
from datetime import datetime, timedelta

BASE_DIR = Path("/home/weernieuws")
SCRIPTS_DIR = BASE_DIR / "scripts"
PYTHON = BASE_DIR / "venv/bin/python"


def run_script(script_name):
    script_path = SCRIPTS_DIR / script_name

    print(f"\n➡️ Start: {script_name}")

    subprocess.run(
        [str(PYTHON), str(script_path)],
        check=True
    )

    print(f"✔ Gereed: {script_name}")


print("=== PWS kaartenproces gestart ===")

# ---------------------------------------------------
# 1. Actuele PWS kaarten
# ---------------------------------------------------

run_script("pws_actueel_tempkaarten.py")
run_script("pws_make_lists.py")

run_script("pws_actueel_windkaarten.py")
run_script("pws_make_lists.py")

run_script("pws_actueel_neerslagkaarten.py")
run_script("pws_make_lists.py")

# ---------------------------------------------------
# 2. PWS extremenkaarten
# ---------------------------------------------------

run_script("pws_extremen_tempkaarten.py")
run_script("pws_make_lists.py")

run_script("pws_extremen_windkaarten.py")
run_script("pws_make_lists.py")

run_script("pws_extremen_neerslagkaarten.py")
run_script("pws_make_lists.py")

# ---------------------------------------------------
# 3. Oude bestanden opschonen
# ---------------------------------------------------

CLEAN_DIRS = [
    BASE_DIR / "public/actueel",
]

MAX_AGE_HOURS = 48
cutoff = datetime.now() - timedelta(hours=MAX_AGE_HOURS)

for directory in CLEAN_DIRS:
    if not directory.exists():
        continue

    for path in directory.glob("*"):
        if not path.is_file():
            continue

        try:
            mtime = datetime.fromtimestamp(path.stat().st_mtime)

            if mtime < cutoff:
                path.unlink()
                print(f"🗑 Verwijderd: {path}")

        except Exception as e:
            print(f"⚠️ Kon bestand niet verwijderen: {path} - {e}")

print("\n✅ PWS kaartenproces afgerond.")