#!/usr/bin/env python3
"""
發送晨報到 LINE
"""
import os
import requests
import json

def send_line_message(message):
    """發送訊息到 LINE"""
    access_token = os.getenv('LINE_CHANNEL_ACCESS_TOKEN')
    user_id = os.getenv('LINE_USER_ID')
    
    if not access_token or not user_id:
        print("❌ LINE credentials 未設定")
        return False
    
    url = 'https://api.line.me/v2/bot/message/push'
    headers = {
        'Authorization': f'Bearer {access_token}',
        'Content-Type': 'application/json'
    }
    
    data = {
        'to': user_id,
        'messages': [{
            'type': 'text',
            'text': message
        }]
    }
    
    try:
        response = requests.post(url, headers=headers, data=json.dumps(data))
        if response.status_code == 200:
            print("✅ 晨報已發送到 LINE")
            return True
        else:
            print(f"❌ 發送失敗: {response.status_code}")
            return False
            
    except Exception as e:
        print(f"❌ 發送錯誤: {e}")
        return False

def main():
    """主程序"""
    # 讀取生成的晨報
    try:
        with open('output/briefing.md', 'r', encoding='utf-8') as f:
            briefing = f.read()
        
        # 限制長度 (LINE 單則訊息限制)
        if len(briefing) > 2000:
            briefing = briefing[:1900] + "\n\n... (內容過長，完整版請查看 GitHub)"
        
        # 發送到 LINE
        success = send_line_message(briefing)
        
        if success:
            print("🌅 台股晨報推送完成！")
        else:
            print("❌ 晨報推送失敗")
            
    except FileNotFoundError:
        print("❌ 找不到晨報檔案")

if __name__ == "__main__":
    main()