#!/usr/bin/env python3 """Market briefing runner — standalone script for cron. Called by Wadsworth's cron job. Not imported by anything. """ import asyncio import os import sys # Add services to path sys.path.insert(0, '/home/hoffmann_admin/.openclaw/workspace/services') # Load env from dotenv import load_dotenv load_dotenv('/home/hoffmann_admin/.openclaw/.env') import httpx from icarus.core.market.sentiment import generate_briefing, format_briefing from icarus.core.config.staging import TELEGRAM_BOT_TOKEN, TELEGRAM_CHAT_ID_MATT async def send_briefing(is_am: bool = False) -> None: """Generate and send market briefing.""" # Generate briefing briefing = await generate_briefing(premarket=is_am) text = format_briefing(briefing) # Send via Telegram url = f"https://api.telegram.org/bot{TELEGRAM_BOT_TOKEN}/sendMessage" payload = { "chat_id": TELEGRAM_CHAT_ID_MATT, "text": text, "parse_mode": "Markdown", } async with httpx.AsyncClient() as client: resp = await client.post(url, json=payload, timeout=30.0) resp.raise_for_status() print(f"Briefing sent. Status: {resp.status_code}") if __name__ == "__main__": is_am = "--am" in sys.argv asyncio.run(send_briefing(is_am))