#!/usr/bin/env python3
"""Film AI-term audit + like-rate + einsia content check for 2026-10-25."""
import json, re
from datetime import datetime, timezone, timedelta
RAW = "/home/kiro/trend-engine/trends/x/raw"
D = json.load(open(f"{RAW}/scan_results_2026-10-25_FULL.json"))
now = datetime.now(timezone.utc)
cutoff = now.replace(hour=0, minute=0, second=0, microsecond=0) - timedelta(days=3)

AI_TERMS = re.compile(r"(?<!av)(?<!av)(?<!tr)(?<!tr)\b(ai|a\.i\.|artificial intelligence|generative|"
                      r"machine learning|(ai|3d|generated) ?animation|prompt|midjourney|stable diffusion|"
                      r"sora|runway|seedance|kling|veo|llm)\b", re.I)

print("=== FILM BUCKET AI-TERM AUDIT ===")
for h in ["DiscussingFilm", "nofilmschool", "CINEMA505"]:
    tw = D["raw"].get(h, [])
    n_in = n_ai = 0
    for t in tw:
        if t.get("retweeted_tweet") or (t.get("text") or "").startswith("RT @"): continue
        try: dt = datetime.strptime(t.get("createdAt",""), "%a %b %d %H:%M:%S %z %Y")
        except Exception: continue
        if dt < cutoff: continue
        n_in += 1
        tx = t.get("text") or ""
        m = AI_TERMS.findall(tx)
        if m:
            n_ai += 1
            print(f"  @{h} MATCH {m[:4]} :: {tx[:180].replace(chr(10),' ')}")
            for mm in AI_TERMS.finditer(tx):
                s=max(0,mm.start()-30); print(f"      ...{tx[s:mm.end()+30]}...")
    print(f"  @{h}: {n_in} in-window originals, {n_ai} AI-term matches")

print("\n=== LIKE RATE on core top 10 ===")
IRR = {"AIBuzzNews","AIGuideHQ","AITECHio","AIFrontliner","TheAIColony","AITOPIAai","GoogleLabs","GoogleAI",
 "DonutAI","cladlabs","FaithJaiye2187","KammelaBala","MyStageAI","AlexStudio44","AI_with_jasmin","Ai_Vaidehi",
 "ChrisLaubAI","CINEMA505","OpenAI","AnthropicAI","AIScottAdams","AISuperDomain","AI_Jasonyu","AIByLeo"}
FILM={"DiscussingFilm","nofilmschool"}
core=[q for q in D["qualifying"] if q["handle"] not in IRR and q["handle"] not in FILM]
core.sort(key=lambda x:-x["score"])
for i,q in enumerate(core[:10],1):
    lr = q["likes"]/q["views"]*100 if q["views"] else 0
    print(f"  #{i} @{q['handle']} score={q['score']:.0f} like_rate={lr:.2f}% {q['date']}")
print(f"  cutoff(rank10)={core[9]['score']:.0f} rank11={core[10]['score']:.0f} (@{core[10]['handle']})")

print("\n=== BUCKET COUNTS ===")
def bucket(q):
    if q["handle"] in FILM: return "film"
    if q["handle"] in IRR: return "filtered"
    return "core"
from collections import Counter
c = Counter(bucket(q) for q in D["qualifying"])
print(" ", dict(c), "total", len(D["qualifying"]))
print("  film AI-relevant: 1 (subject to audit above)")
