#!/usr/bin/env python3
import os, glob, json, urllib.request, urllib.parse

token = None
for line in open("/root/site/yandex/.env", encoding="utf-8"):
    if line.startswith("YANDEX_ACCESS_TOKEN="):
        token = line.split("=", 1)[1].strip()
H = {"Authorization": f"OAuth {token}"}

def disk_delete(path):
    url = "https://cloud-api.yandex.net/v1/disk/resources?path=" + urllib.parse.quote(path) + "&permanently=true"
    req = urllib.request.Request(url, method="DELETE", headers=H)
    try:
        with urllib.request.urlopen(req, timeout=60) as r:
            return r.status
    except urllib.error.HTTPError as e:
        return e.code

ROOT = "/root/site/video/site_renders"
projects = sorted(d for d in os.listdir(ROOT) if os.path.isdir(os.path.join(ROOT, d)))
removed_local = 0
removed_disk = 0
for p in projects:
    ext = os.path.join(ROOT, p, "Внешний вид")
    for f in sorted(glob.glob(os.path.join(ext, "*"))):
        name = os.path.basename(f)
        num = name.split(".")[0]
        if num in ("01", "02", "03"):
            os.remove(f)
            removed_local += 1
            code = disk_delete(f"/Рендеры с сайта/{p}/Внешний вид/{name}")
            if code in (202, 204):
                removed_disk += 1
            else:
                print("disk fail", p, name, code)
print(f"Удалено локально: {removed_local}, на Диске: {removed_disk}")

# итоговые счётчики
final = {}
for p in projects:
    for grp in ("Внешний вид", "Планировки"):
        d = os.path.join(ROOT, p, grp)
        if os.path.isdir(d):
            final.setdefault(p, {})[grp] = len(glob.glob(os.path.join(d, "*")))
with open("/root/site/video/final_counts.json", "w", encoding="utf-8") as f:
    json.dump(final, f, ensure_ascii=False, indent=1)
total = sum(sum(v.values()) for v in final.values())
print("ИТОГО файлов осталось:", total)
for p in sorted(final):
    print(" ", p, final[p])
