#!/usr/bin/env python3
"""
Simplified Gmail check script for debugging
"""

import json
import requests
import sys
from datetime import datetime

def load_token():
    """Load access token from file."""
    try:
        with open('/root/.clawdbot/google-oauth.json', 'r') as f:
            token_data = json.load(f)
        return token_data.get('access_token', '')
    except Exception as e:
        print(f"Error loading token: {e}")
        return ""

def make_gmail_request(endpoint, access_token, params=None):
    """Make a request to Gmail API."""
    headers = {
        "Authorization": f"Bearer {access_token}",
        "Accept": "application/json"
    }
    
    url = f"https://gmail.googleapis.com/gmail/v1/users/me/{endpoint}"
    
    try:
        print(f"Making request to: {endpoint}")
        response = requests.get(url, headers=headers, params=params, timeout=30)
        print(f"Response status: {response.status_code}")
        
        if response.status_code == 200:
            return response.json()
        else:
            print(f"Error response: {response.text}")
            return None
            
    except Exception as e:
        print(f"API request failed: {e}")
        return None

def main():
    print("=== Simplified Gmail Check ===")
    
    # Load token
    token = load_token()
    if not token:
        print("No token available")
        sys.exit(1)
    
    print(f"Token loaded: {token[:20]}...")
    
    # Test profile endpoint
    print("\n1. Testing profile endpoint...")
    profile = make_gmail_request("profile", token)
    if profile:
        print(f"   Email: {profile.get('emailAddress')}")
        print(f"   Total messages: {profile.get('messagesTotal')}")
    
    # Get unread messages
    print("\n2. Fetching unread messages...")
    params = {
        "labelIds": ["UNREAD"],
        "maxResults": 5
    }
    
    messages_list = make_gmail_request("messages", token, params)
    if messages_list and 'messages' in messages_list:
        print(f"   Found {len(messages_list['messages'])} unread messages")
        
        # Get details for first message
        if messages_list['messages']:
            msg_id = messages_list['messages'][0]['id']
            print(f"\n3. Fetching details for message {msg_id}...")
            msg_details = make_gmail_request(f"messages/{msg_id}", token, {
                "format": "metadata",
                "metadataHeaders": ["From", "Subject", "Date"]
            })
            
            if msg_details:
                print(f"   Message details retrieved")
                headers = msg_details.get('payload', {}).get('headers', [])
                for header in headers:
                    name = header.get('name', '')
                    value = header.get('value', '')
                    print(f"   {name}: {value[:50]}{'...' if len(value) > 50 else ''}")
    else:
        print("   No unread messages or error fetching")
    
    print("\n=== Script completed ===")

if __name__ == "__main__":
    main()