import json,re
from datetime import datetime,timezone
RAW="/home/kiro/trend-engine/trends/x/raw"
d=json.load(open(f"{RAW}/scan_results_2026-11-13_FULL.json"))
prev=json.load(open(f"{RAW}/scan_results_2026-11-12_FULL.json"))
CUT=datetime(2026,11,10,tzinfo=timezone.utc); FMT="%a %b %d %H:%M:%S %z %Y"
def dt(s): return datetime.strptime(s,FMT)

print("=== AI__TSUBAKI in-window originals (credit table) ===")
for x in d['raw'].get('AI__TSUBAKI',[]):
    if x.get('retweeted_tweet'): continue
    if dt(x['createdAt'])<CUT: continue
    print(f"\n{x['createdAt']} {x.get('likeCount')}L/{x.get('viewCount')}V media={[m.get('type') for m in (x.get('media') or [])]}")
    print(x['text'][:1200])
    print(f"https://x.com/AI__TSUBAKI/status/{x.get('id')}")

print("\n\n=== STANDING OFFER STATUS GREP (in-window originals) ===")
pats={
 "DaVinci":r"DaVinci|Resolve",
 "Topaz":r"Topaz",
 "Topview":r"Topview|TopView",
 "Nebius":r"Nebius",
 "Magnific":r"Magnific",
 "Kling_4_unlimited":r"Kling 4.*unlimited|unlimited.*Kling",
 "Genjutsu":r"Genjutsu",
 "ContentFactory":r"Content Factory",
 "AdsStudio":r"Ads Studio",
 "RunwayUnlimited":r"Runway Unlimited",
 "Chroma":r"Chroma",
 "Christmas":r"Christmas",
 "GeminiOmni":r"Gemini Omni",
 "Sora":r"Sora",
 "Veo":r"\bVeo\b",
 "Minimax_H3":r"Minimax H3|MiniMax H3|H3 Image|H3 Flex",
 "dreamina":r"[Dd]reamina",
 "elevenlabs":r"[Ee]levenLabs|Eleven v3",
 "seedance_flash":r"Seedance 2\.5 Flash",
}
orig=[]
for h,t in d['raw'].items():
    for x in t:
        if not x.get('createdAt') or x.get('retweeted_tweet'): continue
        if dt(x['createdAt'])<CUT: continue
        orig.append((h,x))
for name,p in pats.items():
    rx=re.compile(p)
    hits=[(h,x) for h,x in orig if rx.search(x.get('text',''))]
    print(f"\n-- {name}: {len(hits)}")
    for h,x in sorted(hits,key=lambda r:-r[1].get('viewCount',0))[:4]:
        print(f"   @{h} {x['createdAt'][:16]} {x.get('likeCount')}L/{x.get('viewCount')}V | {x.get('text','')[:120].replace(chr(10),' ')}")

print("\n\n=== NEW SINCE YESTERDAY (top 15 by views) ===")
previds={x.get('id') for t in prev['raw'].values() for x in t}
new=[]
for h,t in d['raw'].items():
    for x in t:
        if x.get('id') not in previds and x.get('createdAt') and dt(x['createdAt'])>=CUT and not x.get('retweeted_tweet'):
            new.append((h,x))
print("new in-window originals:",len(new))
for h,x in sorted(new,key=lambda r:-r[1].get('viewCount',0))[:15]:
    print(f"  @{h} {x['createdAt'][:16]} {x.get('likeCount')}L/{x.get('viewCount')}V | {x.get('text','')[:110].replace(chr(10),' ')}")

print("\n\n=== GOOGLEAI HYDROGEN / PERPLEXITY / AIWARPER ===")
for h in ['GoogleAI','perplexity_ai','AIWarper','pika_labs']:
    for x in d['raw'].get(h,[]):
        if x.get('retweeted_tweet') or dt(x['createdAt'])<CUT: continue
        print(f"\n@{h} {x['createdAt']} {x.get('likeCount')}L/{x.get('viewCount')}V\n{x.get('text','')[:700]}")
