#!/usr/bin/env python3
"""Create a Gmail draft with optional attachments via IMAP.
Usage: gmail-draft.py <app-password> <subject> <body> [attachment1] [attachment2] ...
"""
import imaplib
import sys
import os
import time
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.base import MIMEBase
from email import encoders

EMAIL = 'mikeziarko@gmail.com'

if len(sys.argv) < 4:
    print("Usage: gmail-draft.py <app-password> <subject> <body> [attachments...]")
    sys.exit(1)

PASSWORD = sys.argv[1]
SUBJECT = sys.argv[2]
BODY = sys.argv[3]
ATTACHMENTS = sys.argv[4:] if len(sys.argv) > 4 else []

msg = MIMEMultipart()
msg['From'] = EMAIL
msg['To'] = ''
msg['Subject'] = SUBJECT
msg.attach(MIMEText(BODY, 'plain'))

for filepath in ATTACHMENTS:
    if os.path.exists(filepath):
        with open(filepath, 'rb') as f:
            part = MIMEBase('application', 'octet-stream')
            part.set_payload(f.read())
            encoders.encode_base64(part)
            part.add_header('Content-Disposition', f'attachment; filename="{os.path.basename(filepath)}"')
            msg.attach(part)
        print(f"Attached: {os.path.basename(filepath)}")
    else:
        print(f"WARNING: File not found: {filepath}")

try:
    imap = imaplib.IMAP4_SSL('imap.gmail.com')
    imap.login(EMAIL, PASSWORD)
    imap.append('[Gmail]/Drafts', '', imaplib.Time2Internaldate(time.time()), msg.as_bytes())
    imap.logout()
    print("Draft created successfully in Gmail Drafts folder")
except Exception as e:
    print(f"ERROR: {e}")
    sys.exit(1)
