#!/usr/bin/env python3
import os
import json
from google.oauth2 import service_account
from googleapiclient.discovery import build
from googleapiclient.errors import HttpError

# Path to service account key
SERVICE_ACCOUNT_FILE = 'google_service_account.json'
SCOPES = ['https://www.googleapis.com/auth/drive.readonly']

# Extract document ID from URL
url = 'https://docs.google.com/document/d/1OU4qFFbLCXybdyhTXOdh1Kuy4JBXpjDv/edit?usp=sharing&ouid=103789065343444502410&rtpof=true&sd=true'
# The ID is between /d/ and /edit
doc_id = url.split('/d/')[1].split('/')[0]
print(f"Document ID: {doc_id}")

# Authenticate
creds = service_account.Credentials.from_service_account_file(
    SERVICE_ACCOUNT_FILE, scopes=SCOPES)
service = build('drive', 'v3', credentials=creds)

try:
    # Get file metadata
    file_metadata = service.files().get(fileId=doc_id, fields='id, name, mimeType, owners, permissions').execute()
    print("File metadata:")
    print(json.dumps(file_metadata, indent=2, ensure_ascii=False))
    
    # Try to export as plain text
    docs_service = build('docs', 'v1', credentials=creds)
    doc = docs_service.documents().get(documentId=doc_id).execute()
    print("\nDocument title:", doc.get('title'))
    # Print first few lines of content
    content = doc.get('body', {}).get('content', [])
    text = ""
    for elem in content:
        if 'paragraph' in elem:
            for run in elem.get('paragraph', {}).get('elements', []):
                if 'textRun' in run:
                    text += run['textRun']['content']
    print("\nFirst 500 characters of content:")
    print(text[:500])
    
except HttpError as e:
    print(f"HTTP error: {e}")
    if e.resp.status == 404:
        print("File not found or no access.")
    else:
        print(e.resp.status, e.resp.reason)