#!/usr/bin/env python3
"""mofin_collect.py — MoFin 数据采集链

每轮盯盘 cron 前运行，顺序执行：
  1. market_watch — 拉90个行业板块数据
  2. trend_detector — 检测17种信号
  3. xiaoguo_news_processor — 搜新闻+小果分析
"""

import subprocess, sys, time
from pathlib import Path

BASE = Path(__file__).parent.parent if "hermes" in str(Path(__file__).resolve()) else Path(__file__).parent

SCRIPTS = [
    ("market_watch.py", 60),
    ("trend_detector.py", 10),
    ("mofin_news.py", 50),
]

for script, timeout in SCRIPTS:
    path = BASE / script
    if not path.exists():
        path = Path("/home/hmo/MoFin") / script
    print(f"--- {script} ---", flush=True)
    start = time.time()
    try:
        result = subprocess.run(
            [sys.executable, str(path)],
            capture_output=True, text=True, timeout=timeout
        )
        elapsed = time.time() - start
        if result.returncode == 0:
            print(f"OK ({elapsed:.0f}s)", flush=True)
            if result.stdout.strip():
                for line in result.stdout.strip().split("\n")[-3:]:
                    print(f"  {line}", flush=True)
        else:
            print(f"FAIL ({elapsed:.0f}s): {result.stderr[:200]}", flush=True)
    except subprocess.TimeoutExpired:
        print(f"TIMEOUT ({timeout}s)", flush=True)
    except Exception as e:
        print(f"ERROR: {e}", flush=True)

print("采集链完成", flush=True)
