#!/usr/bin/env python3
"""Pull @adamcitron_ timeline + keyword-filtered posts for a Meta ads read."""
import json, os, time
import requests

key = None
for line in open(os.path.expanduser("~/.hermes/.env")):
    if line.startswith("GETXAPI_KEY="):
        key = line.split("=", 1)[1].strip()
        break
H = {"Authorization": f"Bearer {key}"}
BASE = "https://api.getxapi.com/twitter"

r = requests.get(f"{BASE}/user/tweets", params={"userName": "adamcitron_", "count": 100}, headers=H, timeout=60)
print("timeline HTTP", r.status_code)
d = r.json() if r.status_code == 200 else {}
tw = d.get("tweets", [])
print("tweets:", len(tw))
if tw:
    au = tw[0].get("author", {})
    print("name:", au.get("name"), "| followers:", au.get("followers"), "| statuses:", au.get("statusesCount"))
    print("bio:", (au.get("description") or "").replace("\n", " ")[:300])
    print("location:", au.get("location"))
    print("created:", au.get("createdAt"))
    dates = sorted([str(t.get("createdAt"))[:10] for t in tw])
    print("window:", dates[0], "->", dates[-1])
json.dump(tw, open("/home/kiro/trend-engine/trends/x/banger-x-results/2026-11-05_adamcitron_timeline.json", "w"), indent=1)

KW = ("meta", "facebook", "fb ", "ads", "ad ", "creative", "roas", "cpa", "cpm", "ctr",
      "angle", "hook", "campaign", "adset", "ad set", "spend", "test", "scale", "ugc", "static", "video")
print("\n=== keyword-relevant posts")
hits = 0
for t in tw:
    txt = " ".join((t.get("text") or "").split())
    low = " " + txt.lower()
    if any(k in low for k in KW) and len(txt) > 60:
        hits += 1
        print(f"\n[{str(t.get('createdAt'))[:10]} | {t.get('likeCount')} likes | {t.get('viewCount')} views]")
        print(txt[:700])
print("\nkeyword hits:", hits)
