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-12_FULL.json"))
CUT=datetime(2026,11,9,tzinfo=timezone.utc); FMT="%a %b %d %H:%M:%S %z %Y"
orig=[]
for h,t in d['raw'].items():
    for x in t:
        if not x.get('createdAt'): continue
        if x.get('retweeted_tweet'): continue
        if datetime.strptime(x['createdAt'],FMT)<CUT: continue
        orig.append((h,x))
print("in-window originals:",len(orig))

PATTERNS={
 "pct_off":r"\b\d{1,2}% ?(?:off|OFF)",
 "free":r"\bfree\b|\bFREE\b",
 "unlimited":r"[Uu]nlimited",
 "sale":r"\bsale\b|\bSALE\b|[Ll]ast chance",
 "trial":r"\btrial\b",
 "discount":r"[Dd]iscount",
 "credits":r"\bcredits?\b",
 "4k":r"\b4K\b|\b4k\b",
 "per_sec":r"per second|/sec|per/sec",
 "deadline":r"[Tt]hrough [A-Z][a-z]+|\buntil\b|ends? |deadline",
}
for name,p in PATTERNS.items():
    hits=[(h,x) for h,x in orig if re.search(p,x.get('text',''))]
    print(f"\n--- {name}: {len(hits)}")
    for h,x in sorted(hits,key=lambda r:-r[1].get('viewCount',0))[:8]:
        print(f"  @{h} {x['createdAt'][:16]} {x.get('likeCount')}L/{x.get('viewCount')}V | {x.get('text','')[:150].replace(chr(10),' ')}")

print("\n=== 4K SWEEP (full text) ===")
for h,x in orig:
    if re.search(r"\b4K\b|\b4k\b",x.get('text','')):
        print(f"\n@{h} {x['createdAt']} {x.get('likeCount')}L/{x.get('viewCount')}V\n{x.get('text','')}\n{x.get('url','')}")

print("\n=== HIGGSFIELD SALE FULL TEXTS ===")
for x in d['raw']['higgsfield']:
    if '60%' in x.get('text','') or 'Seedance 2.5 unlimited' in x.get('text',''):
        print(f"\n{x['createdAt']} | {x.get('likeCount')}L/{x.get('viewCount')}V\n{x.get('text','')}\nhttps://x.com/higgsfield/status/{x.get('id')}")
