This commit is contained in:
Taylor Wilsdon
2026-02-28 17:43:44 -04:00
parent 3e175c9998
commit f29f16e591
2 changed files with 7 additions and 21 deletions

View File

@@ -79,9 +79,8 @@ async def search_drive_files(
detailed (bool): Whether to include size, modified time, and link in results. Defaults to True. detailed (bool): Whether to include size, modified time, and link in results. Defaults to True.
Returns: Returns:
str: A formatted list of found files/folders with their details (ID, name, type, size, modified time, link).
Includes a nextPageToken line when more results are available.
str: A formatted list of found files/folders with their details (ID, name, type, and optionally size, modified time, link). str: A formatted list of found files/folders with their details (ID, name, type, and optionally size, modified time, link).
Includes a nextPageToken line when more results are available.
""" """
logger.info( logger.info(
f"[search_drive_files] Invoked. Email: '{user_google_email}', Query: '{query}'" f"[search_drive_files] Invoked. Email: '{user_google_email}', Query: '{query}'"
@@ -123,12 +122,6 @@ async def search_drive_files(
header = f"Found {len(files)} files for {user_google_email} matching '{query}':" header = f"Found {len(files)} files for {user_google_email} matching '{query}':"
formatted_files_text_parts = [header] formatted_files_text_parts = [header]
for item in files: for item in files:
size_str = f", Size: {item.get('size', 'N/A')}" if "size" in item else ""
formatted_files_text_parts.append(
f'- Name: "{item["name"]}" (ID: {item["id"]}, Type: {item["mimeType"]}{size_str}, Modified: {item.get("modifiedTime", "N/A")}) Link: {item.get("webViewLink", "#")}'
)
if next_token:
formatted_files_text_parts.append(f"nextPageToken: {next_token}")
if detailed: if detailed:
size_str = f", Size: {item.get('size', 'N/A')}" if "size" in item else "" size_str = f", Size: {item.get('size', 'N/A')}" if "size" in item else ""
formatted_files_text_parts.append( formatted_files_text_parts.append(
@@ -138,6 +131,8 @@ async def search_drive_files(
formatted_files_text_parts.append( formatted_files_text_parts.append(
f'- Name: "{item["name"]}" (ID: {item["id"]}, Type: {item["mimeType"]})' f'- Name: "{item["name"]}" (ID: {item["id"]}, Type: {item["mimeType"]})'
) )
if next_token:
formatted_files_text_parts.append(f"nextPageToken: {next_token}")
text_output = "\n".join(formatted_files_text_parts) text_output = "\n".join(formatted_files_text_parts)
return text_output return text_output
@@ -481,12 +476,6 @@ async def list_drive_items(
header = f"Found {len(files)} items in folder '{folder_id}' for {user_google_email}:" header = f"Found {len(files)} items in folder '{folder_id}' for {user_google_email}:"
formatted_items_text_parts = [header] formatted_items_text_parts = [header]
for item in files: for item in files:
size_str = f", Size: {item.get('size', 'N/A')}" if "size" in item else ""
formatted_items_text_parts.append(
f'- Name: "{item["name"]}" (ID: {item["id"]}, Type: {item["mimeType"]}{size_str}, Modified: {item.get("modifiedTime", "N/A")}) Link: {item.get("webViewLink", "#")}'
)
if next_token:
formatted_items_text_parts.append(f"nextPageToken: {next_token}")
if detailed: if detailed:
size_str = f", Size: {item.get('size', 'N/A')}" if "size" in item else "" size_str = f", Size: {item.get('size', 'N/A')}" if "size" in item else ""
formatted_items_text_parts.append( formatted_items_text_parts.append(
@@ -496,6 +485,8 @@ async def list_drive_items(
formatted_items_text_parts.append( formatted_items_text_parts.append(
f'- Name: "{item["name"]}" (ID: {item["id"]}, Type: {item["mimeType"]})' f'- Name: "{item["name"]}" (ID: {item["id"]}, Type: {item["mimeType"]})'
) )
if next_token:
formatted_items_text_parts.append(f"nextPageToken: {next_token}")
text_output = "\n".join(formatted_items_text_parts) text_output = "\n".join(formatted_items_text_parts)
return text_output return text_output

View File

@@ -13,13 +13,6 @@ import os
sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), "../.."))) sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), "../..")))
from gdrive.drive_tools import list_drive_items, search_drive_files
def _unwrap(fn):
"""Unwrap a decorator chain to the original async function."""
if hasattr(fn, "fn"):
fn = fn.fn # FunctionTool wrapper (other server versions)
from gdrive.drive_helpers import build_drive_list_params from gdrive.drive_helpers import build_drive_list_params
from gdrive.drive_tools import list_drive_items, search_drive_files from gdrive.drive_tools import list_drive_items, search_drive_files
@@ -205,6 +198,8 @@ async def test_list_drive_items_no_next_page_token_when_absent(mock_resolve_fold
) )
assert "nextPageToken" not in result assert "nextPageToken" not in result
# Helpers # Helpers
# --------------------------------------------------------------------------- # ---------------------------------------------------------------------------