#!/usr/bin/env python3
"""Film audit, irrelevant AI-relevant, full text of selected posts, t.co resolve."""
import json, re, requests
from datetime import datetime, timedelta, timezone

D = json.load(open("/home/kiro/trend-engine/trends/x/raw/scan_results_2026-10-20_FULL.json"))
raw = D["raw"]; qual = D["qualifying"]
FMT = "%a %b %d %H:%M:%S %z %Y"
def dt(s): return datetime.strptime(s, FMT)
now = datetime.now(timezone.utc)
cutoff = datetime(now.year, now.month, now.day, tzinfo=timezone.utc) - timedelta(days=3)

IRRELEVANT = {"AIBuzzNews","AIGuideHQ","AITECHio","AIFrontliner","TheAIColony","AITOPIAai","AISuperDomain",
 "GoogleLabs","GoogleAI","DonutAI","cladlabs","FaithJaiye2187","KammelaBala","MyStageAI","AlexStudio44",
 "AI_with_jasmin","Ai_Vaidehi","ChrisLaubAI","CINEMA505","AIScottAdams","AI_Jasonyu","AIByLeo"}
FILM = {"DiscussingFilm","nofilmschool"}

AI_TERMS = re.compile(r"(?<!prompt )(?<!prompts )\b(ai|a\.i\.|artificial intelligence|genai|gen ai|generative|"
 r"video model|image model|text-to-video|text to video|vfx|3d animation|(ai|3d|generated) ?animation|"
 r"machine learning|llm|sora|runway|midjourney|seedance|kling|veo|higgsfield|deepseek|gemini|stable diffusion)\b", re.I)

print("=== FILM BUCKET AUDIT ===")
for q in qual:
    if q["handle"] not in FILM: continue
    m = AI_TERMS.search(q["text"])
    if m:
        print(f"MATCH @{q['handle']} term={m.group(0)} {q['likes']}L/{q['views']}V {q['date']} | {q['text'][:220]}")

print("\n=== IRRELEVANT-TIER AI-RELEVANT (top 18 by score) ===")
irr = [q for q in qual if q["handle"] in IRRELEVANT and AI_TERMS.search(q["text"])]
irr.sort(key=lambda q: -q["score"])
for q in irr[:18]:
    print(f"@{q['handle']:15s} {q['likes']}L/{q['rt']}RT/{q['views']}V {q['date']} score={q['score']:.0f} | {q['text'][:180].replace(chr(10),' ')}")

print("\n=== SELECTED FULL TEXT ===")
SEL = [("CharaspowerAI","2112189582733140096"), ("Kling_ai","2111430491358339480"),
       ("runwayml","2112247791678541845"), ("higgsfield","2111446340534436281"),
       ("AITECHio", None)]
for h, tid in SEL:
    for t in raw.get(h, []):
        if tid and str(t.get("id")) != tid: continue
        if not tid and "GPU" not in (t.get("text") or ""): continue
        print(f"\n--- @{h} {t['createdAt']} {t.get('likeCount')}L/{t.get('viewCount')}V media={[m.get('type') for m in (t.get('media') or []) if isinstance(m,dict)]}")
        print((t.get("text") or "")[:900])
        if tid:
            urls = re.findall(r"https://t\.co/\w+", t.get("text") or "")
            for u in urls[:2]:
                try:
                    r = requests.head(u, allow_redirects=True, timeout=15)
                    print("  t.co ->", r.url)
                except Exception as e:
                    print("  t.co fail", e)
        break
