#!/usr/bin/env python3
"""Cari foto cache mili yang BELUM dipakai di script/album mana pun (kandidat carousel berikutnya)."""
import os, re, subprocess, collections

CACHE = "/home/mantapman/.hermes/profiles/mili/cache/images"
ROOTS = ["/home/mantapman/.hermes/profiles/mili/workspace-mili",
         "/home/mantapman/.hermes/profiles/mili/memories",
         "/home/mantapman/.openclaw/workspace-mili"]

# kumpulkan semua teks referensi nama file img_*.jpg di workspace mili
refs = collections.Counter()
for root in ROOTS:
    for dirpath, dirnames, filenames in os.walk(root):
        if "/.git" in dirpath:
            continue
        for f in filenames:
            if f.endswith((".py", ".json", ".md", ".txt", ".log")):
                p = os.path.join(dirpath, f)
                try:
                    txt = open(p, errors="ignore").read()
                except Exception:
                    continue
                for m in re.findall(r"img_[0-9a-f]{6,}\.(?:jpg|jpeg|png)", txt):
                    refs[m] += 1

files = sorted(os.listdir(CACHE))
unref = []
print(f"{len(files)} file di cache, {len(refs)} nama direferensikan\n")
for f in files:
    st = os.stat(os.path.join(CACHE, f))
    tag = f"{refs[f]:2d}x" if refs[f] else "  -"
    if not refs[f]:
        unref.append(f)
    print(f"  {tag} {f}  {st.st_size/1e6:5.2f}MB  {__import__('datetime').datetime.fromtimestamp(st.st_mtime):%d %b %H:%M}")
print(f"\nBELUM direferensikan di script: {len(unref)}")
for f in unref:
    print("   ", f)
