From 81d420d88e87ccbbe3b0e7681bea17f31239fcdb Mon Sep 17 00:00:00 2001
From: zhangxiao <898441624@qq.com>
Date: 星期三, 23 十月 2024 10:49:30 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 app/api/__init__.py |   46 +++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 45 insertions(+), 1 deletions(-)

diff --git a/app/api/__init__.py b/app/api/__init__.py
index 8bd4579..a96baa1 100644
--- a/app/api/__init__.py
+++ b/app/api/__init__.py
@@ -1,3 +1,6 @@
+import urllib
+from urllib.parse import urlencode
+
 import jwt
 from fastapi import FastAPI, Depends, HTTPException
 from fastapi.security import OAuth2PasswordBearer
@@ -72,4 +75,45 @@
     except jwt.PyJWTError as e:
         print(e)
         await websocket.close(code=1008)
-        raise WebSocketDisconnect(code=status.WS_1008_POLICY_VIOLATION)
\ No newline at end of file
+        raise WebSocketDisconnect(code=status.WS_1008_POLICY_VIOLATION)
+
+
+def format_file_url(agent_id: str, file_url: str, doc_id: str = None, doc_name: str = None) -> str:
+    if file_url:
+        # 瀵� file_url 杩涜 URL 缂栫爜
+        encoded_file_url = urllib.parse.quote(file_url, safe=':/')
+        return f"./api/files/download/?url={encoded_file_url}&agent_id={agent_id}"
+
+    if doc_id:
+        # 瀵� doc_id 鍜� doc_name 杩涜 URL 缂栫爜
+        encoded_doc_id = urllib.parse.quote(doc_id, safe='')
+        encoded_doc_name = urllib.parse.quote(doc_name, safe='')
+        return f"./api/files/download/?doc_id={encoded_doc_id}&doc_name={encoded_doc_name}&agent_id={agent_id}"
+
+    return file_url
+
+
+def process_files(files, agent_id):
+    """
+    澶勭悊鏂囦欢鍒楄〃锛屾牸寮忓寲姣忎釜鏂囦欢鐨� URL銆�
+
+    :param files: 鏂囦欢鍒楄〃锛屾瘡涓枃浠舵槸涓�涓瓧鍏�
+    :param agent_id: 浠g悊 ID
+    """
+    if not files:
+        return  # 濡傛灉鏂囦欢鍒楄〃涓虹┖锛岀洿鎺ヨ繑鍥�
+
+    for file in files:
+        if "file_url" in file and file["file_url"]:
+            try:
+                file["file_url"] = format_file_url(agent_id, file["file_url"])
+            except Exception as e:
+                # 璁板綍寮傚父淇℃伅锛屼絾缁х画澶勭悊鍏朵粬鏂囦欢
+                print(f"Error processing file URL: {e}")
+if __name__=="__main__":
+
+    files1 = [{"file_url": "aaa.com"}, {"file_url":"bbb.com"}]
+    print(files1)
+
+    process_files(files1,11111)
+    print(files1)
\ No newline at end of file

--
Gitblit v1.8.0