#!/usr/bin/env python3
"""Probe: Viggle Remake launch, AIWarper/CapCut/Flova post texts, quoted-source expansion."""
import json, os, re, time
import requests
from datetime import datetime, timezone, timedelta

ENV = os.path.expanduser("~/.hermes/.env")
API_KEY = None
with open(ENV) as f:
    for line in f:
        if line.startswith("GETXAPI_KEY="):
            API_KEY = line.strip().split("=", 1)[1]; break

RAW = "/home/kiro/trend-engine/trends/x/raw"
cur = json.load(open(os.path.join(RAW, "scan_results_2026-11-05_FULL.json")))

def fetch(h):
    try:
        r = requests.get("https://api.getxapi.com/twitter/user/tweets",
            headers={"Authorization": f"Bearer {API_KEY}"},
            params={"userName": h, "count": 5}, timeout=60)
        if r.status_code != 200: return None, f"HTTP {r.status_code}"
        tw = r.json().get("tweets", [])
        return tw, None
    except Exception as e:
        return None, str(e)

def pdate(s):
    try: return datetime.strptime(s, "%a %b %d %H:%M:%S %z %Y")
    except Exception: return None

# 1) Viggle launch — official account
for h in ["ViggleAI", "viggle_ai"]:
    tw, err = fetch(h)
    print(f"\n=== @{h} :: {err or str(len(tw))+' tweets'} ===")
    if tw:
        rows = sorted([(pdate(t.get('createdAt','')), t) for t in tw if pdate(t.get('createdAt',''))],
                      key=lambda r: r[0], reverse=True)
        for d, t in rows[:10]:
            print(f"  {d.strftime('%m-%d %H:%M')} {t.get('likeCount',0)}L/{t.get('retweetCount',0)}RT/"
                  f"{t.get('replyCount',0)}R/{t.get('viewCount',0)}V id={t.get('id')}")
            print(f"    {(t.get('text') or '').replace(chr(10),' ')[:600]}")
    time.sleep(0.8)

# 2) full text of selected high-value posts from today's set
print("\n=== SELECTED FULL TEXTS ===")
want = {
 "EHuanglu": ["2117944888599994477","2118166856498638932","2118181550617710877"],
 "AIWarper": ["2118055878129758435","2118053944085860538"],
 "azed_ai": ["2118048741659910601"],
 "heyglif": ["2118025596626497614","2118025599197364285"],
 "CharaspowerAI": ["2118055783908925927"],
 "Kling_ai": ["2117995299591319932","2117229927107883219"],
 "AidenChaoyangHe": ["2117613537929703708"],
}
for h, ids in want.items():
    for t in cur["raw"].get(h, []):
        if str(t.get("id")) in ids:
            print(f"\n-- @{h} {t.get('id')} {t.get('likeCount',0)}L/{t.get('viewCount',0)}V")
            print((t.get("text") or "").replace("\n"," "))
            q = t.get("quoted_tweet")
            if q:
                print(f"   [QUOTED] {(q.get('text') or '').replace(chr(10),' ')[:800]}")

# 3) does cur contain viggle mentions anywhere?
print("\n=== VIGGLE MENTIONS IN TODAY'S FETCHED SET ===")
seen=set()
for h, tw in cur["raw"].items():
    for t in tw:
        blob = json.dumps(t)
        if "viggle" in blob.lower():
            key=(h,t.get("id"))
            if key in seen: continue
            seen.add(key)
            d=pdate(t.get("createdAt",""))
            print(f"  @{h} {d.strftime('%m-%d %H:%M') if d else '?'} "
                  f"{t.get('likeCount',0)}L/{t.get('viewCount',0)}V: "
                  f"{(t.get('text') or '').replace(chr(10),' ')[:300]}")
