#!/usr/bin/env python3
"""Send email via assafdagancos@gmail.com (CoS bot account)"""

import argparse
import base64
import json
import sys
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from pathlib import Path

try:
    from google.oauth2.credentials import Credentials
    from googleapiclient.discovery import build
except ImportError:
    print("Error: Google API libraries not installed")
    sys.exit(1)

TOKEN_PATH = Path.home() / '.clawdbot' / 'skills' / 'gmail' / 'tokens' / 'cos.json'

def send_email(to: str, subject: str, body: str, html: bool = False) -> dict:
    """Send an email from assafdagancos@gmail.com"""
    
    if not TOKEN_PATH.exists():
        return {"error": f"Token not found at {TOKEN_PATH}"}
    
    creds = Credentials.from_authorized_user_file(str(TOKEN_PATH))
    service = build('gmail', 'v1', credentials=creds)
    
    if html:
        message = MIMEMultipart('alternative')
        message.attach(MIMEText(body, 'html'))
    else:
        message = MIMEText(body)
    
    message['to'] = to
    message['subject'] = subject
    message['from'] = 'assafdagancos@gmail.com'
    
    raw = base64.urlsafe_b64encode(message.as_bytes()).decode()
    
    try:
        result = service.users().messages().send(
            userId='me',
            body={'raw': raw}
        ).execute()
        return {"success": True, "message_id": result.get('id')}
    except Exception as e:
        return {"error": str(e)}


def main():
    parser = argparse.ArgumentParser(description='Send email via CoS bot account')
    parser.add_argument('--to', required=True, help='Recipient email')
    parser.add_argument('--subject', required=True, help='Email subject')
    parser.add_argument('--body', required=True, help='Email body')
    parser.add_argument('--html', action='store_true', help='Send as HTML')
    
    args = parser.parse_args()
    
    result = send_email(args.to, args.subject, args.body, args.html)
    print(json.dumps(result, indent=2))


if __name__ == '__main__':
    main()
