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

SERVICE_ACCOUNT_FILE = 'google_service_account.json'
SCOPES = ['https://www.googleapis.com/auth/drive.readonly']

url = 'https://docs.google.com/document/d/18Z7qIqBq8lV7vcSa7F943CwId3IhP8vrWgXpzUVa7UI/edit?usp=sharing'
doc_id = url.split('/d/')[1].split('/')[0]
print(f"Document ID: {doc_id}")

creds = service_account.Credentials.from_service_account_file(
    SERVICE_ACCOUNT_FILE, scopes=SCOPES)
drive_service = build('drive', 'v3', credentials=creds)
docs_service = build('docs', 'v1', credentials=creds)

try:
    # Get file metadata
    file_metadata = drive_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))
    
    # Get document content
    doc = docs_service.documents().get(documentId=doc_id).execute()
    print("\nDocument title:", doc.get('title'))
    
    # Extract text
    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 2000 characters of content:")
    print(text[:2000])
    
    # Count total characters
    print(f"\nTotal characters in document: {len(text)}")
    
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)