From 1472f12f5e4f02bf99f171f1f13f484f2183e098 Mon Sep 17 00:00:00 2001 From: "Timothy J. Baek" Date: Thu, 24 Oct 2024 15:02:26 -0700 Subject: [PATCH] refac --- .../open_webui/apps/webui/routers/files.py | 31 +++++++++++++++++++ src/lib/utils/index.ts | 2 +- 2 files changed, 32 insertions(+), 1 deletion(-) diff --git a/backend/open_webui/apps/webui/routers/files.py b/backend/open_webui/apps/webui/routers/files.py index 8294328cf..5e316fa12 100644 --- a/backend/open_webui/apps/webui/routers/files.py +++ b/backend/open_webui/apps/webui/routers/files.py @@ -236,6 +236,37 @@ async def get_file_content_by_id(id: str, user=Depends(get_verified_user)): ) +@router.get("/{id}/content/html") +async def get_html_file_content_by_id(id: str, user=Depends(get_verified_user)): + file = Files.get_file_by_id(id) + if file and (file.user_id == user.id or user.role == "admin"): + try: + file_path = Storage.get_file(file.path) + file_path = Path(file_path) + + # Check if the file already exists in the cache + if file_path.is_file(): + print(f"file_path: {file_path}") + return FileResponse(file_path) + else: + raise HTTPException( + status_code=status.HTTP_404_NOT_FOUND, + detail=ERROR_MESSAGES.NOT_FOUND, + ) + except Exception as e: + log.exception(e) + log.error(f"Error getting file content") + raise HTTPException( + status_code=status.HTTP_400_BAD_REQUEST, + detail=ERROR_MESSAGES.DEFAULT("Error getting file content"), + ) + else: + raise HTTPException( + status_code=status.HTTP_404_NOT_FOUND, + detail=ERROR_MESSAGES.NOT_FOUND, + ) + + @router.get("/{id}/content/{file_name}") async def get_file_content_by_id(id: str, user=Depends(get_verified_user)): file = Files.get_file_by_id(id) diff --git a/src/lib/utils/index.ts b/src/lib/utils/index.ts index b86321538..bc47d124d 100644 --- a/src/lib/utils/index.ts +++ b/src/lib/utils/index.ts @@ -32,7 +32,7 @@ export const replaceTokens = (content, char, user) => { // Replace HTML ID tags with corresponding HTML content content = content.replace(htmlIdToken, (match, fileId) => { - const htmlUrl = `${WEBUI_BASE_URL}/api/v1/files/${fileId}/content`; + const htmlUrl = `${WEBUI_BASE_URL}/api/v1/files/${fileId}/content/html`; return ``; });