import json, re
d = json.load(open('/home/kiro/trend-engine/trends/x/raw/scan_results_2026-10-15_FULL.json'))
q = d['qualifying']
print('=== full text: CharaspowerAI Dreamina / WAN / Magnific ===')
for x in q:
    if x['handle'] == 'CharaspowerAI' and re.search(r'dreamina|wan 3|magnific', x['text'] or '', re.I):
        print(f"{x['likes']}L/{x['views']}V {x['date']} {x['url']}")
        print((x['text'] or '')[:600]); print()
print('=== any mention of genjutsu / 50% / 60% / api across all qualifying ===')
rx = re.compile(r'genjutsu|50%|60%|% ?off|unlimited|roadmap|free', re.I)
seen = set()
for x in sorted(q, key=lambda y: -y['likes']):
    t = x['text'] or ''
    for m in rx.finditer(t):
        key = (x['handle'], m.group(0).lower())
        if key in seen: continue
        seen.add(key)
        print(f"@{x['handle']:16s} {x['likes']:>5}L/{x['views']:>8}V match={m.group(0)!r} | {t[:180]}")
print()
print('=== AI__TSUBAKI raw in-window (CORE, 0 qualifying) ===')
for t in d['raw'].get('AI__TSUBAKI', []):
    print(f"{t.get('likeCount')}L/{t.get('viewCount')}V {t.get('createdAt')} | {(t.get('text') or '')[:150]}")
print()
print('=== WuxiaRocks in-window originals (count + max) ===')
ws = [t for t in d['raw'].get('WuxiaRocks', [])]
print('fetched:', len(ws), 'maxV:', max((t.get('viewCount') or 0) for t in ws), 'maxL:', max((t.get('likeCount') or 0) for t in ws))
print()
print('=== last 5 days trend ===')
for day in ['2026-10-10','2026-10-11','2026-10-12','2026-10-13','2026-10-14','2026-10-15']:
    try:
        dd = json.load(open(f'/home/kiro/trend-engine/trends/x/raw/scan_results_{day}_FULL.json'))
        print(day, 'handles', len(dd['raw']), 'qualifying', len(dd['qualifying']), 'failures', len(dd.get('failures') or []))
    except Exception as e:
        print(day, 'err', e)
