!/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))