#!/usr/bin/env python3
"""Check Gmail via IMAP. Usage: gmail-check.py [app-password] [count]"""
import imaplib
import email
from email.header import decode_header
import sys
import json

EMAIL = 'mikeziarko@gmail.com'
PASSWORD = sys.argv[1] if len(sys.argv) > 1 else None
COUNT = int(sys.argv[2]) if len(sys.argv) > 2 else 10

if not PASSWORD:
    print("ERROR: App password required as first argument")
    sys.exit(1)

mail = imaplib.IMAP4_SSL('imap.gmail.com')
mail.login(EMAIL, PASSWORD)
mail.select('INBOX')

status, messages = mail.search(None, 'UNSEEN')
unread_ids = messages[0].split() if messages[0] else []
print(f"Unread: {len(unread_ids)}")

# Fetch latest N
mail.select('INBOX')
status, messages = mail.search(None, 'ALL')
all_ids = messages[0].split()
latest = all_ids[-COUNT:] if len(all_ids) >= COUNT else all_ids

for mid in reversed(latest):
    status, msg_data = mail.fetch(mid, '(RFC822)')
    msg = email.message_from_bytes(msg_data[0][1])
    subject = decode_header(msg['Subject'])[0]
    subject_text = subject[0].decode(subject[1] or 'utf-8') if isinstance(subject[0], bytes) else subject[0]
    from_addr = msg['From']
    date = msg['Date']
    is_unread = mid in unread_ids
    flag = "🔴" if is_unread else "  "
    print(f"{flag} {date[:22]}  From: {from_addr[:40]}  Subject: {subject_text[:60]}")

mail.logout()
