From 87261dad9f15b690966ba659f5c3e1dcbd392a1a Mon Sep 17 00:00:00 2001 From: jingrow Date: Tue, 20 May 2025 13:10:54 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8Dmidjourney=E6=8F=90=E7=A4=BA?= =?UTF-8?q?=E8=AF=8D=E5=8C=85=E5=90=AB=E5=8F=82=E8=80=83=E5=9B=BE=E7=89=87?= =?UTF-8?q?=E6=97=B6=E5=93=8D=E5=BA=94=E6=A0=BC=E5=BC=8F=E4=B8=8D=E6=AD=A3?= =?UTF-8?q?=E7=A1=AE=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 2 +- apps/midjourney/service.py | 12 ++++++------ apps/midjourney/utils.py | 22 ++++++++++++++++++++++ 3 files changed, 29 insertions(+), 7 deletions(-) diff --git a/.gitignore b/.gitignore index a58a423..a48c221 100644 --- a/.gitignore +++ b/.gitignore @@ -4,7 +4,7 @@ test/ # 忽略所有 文件夹 -**/www/files/ +**/jfile/files/ **/output/ **/__pycache__/ diff --git a/apps/midjourney/service.py b/apps/midjourney/service.py index 091c0dc..16c75ef 100644 --- a/apps/midjourney/service.py +++ b/apps/midjourney/service.py @@ -593,12 +593,11 @@ class MidjourneyService: async for result in self.imagine(client, guild_id, channel_id, prompt, seed): if result.get("status") == "progress": - # 进度信息保持简单 + # 进度信息只包含必要字段 response = { "status": "progress", "progress": result.get("progress", 0), - "success_count": success_count, - "error_count": error_count + "seed": seed # 添加seed字段 } print(f"[服务端响应] {json.dumps(response, ensure_ascii=False)}") yield response @@ -607,11 +606,12 @@ class MidjourneyService: response = { "status": "success", "success_count": success_count, - "error_count": error_count + "error_count": error_count, + "images": result.get("images", []) # 添加images字段 } # 如果需要分割图片 - if config.get("split_image", False) and result.get("images"): + if config.get("split_image", True) and result.get("images"): try: orig_image_url = result["images"][0] split_urls = await self.split_image(orig_image_url) @@ -625,7 +625,7 @@ class MidjourneyService: print(f"[服务端响应] {json.dumps(response, ensure_ascii=False)}") yield response else: - # 错误信息保持简单 + # 错误信息保持统一格式 error_count += 1 response = { "status": "error", diff --git a/apps/midjourney/utils.py b/apps/midjourney/utils.py index fd87fcb..75164bf 100644 --- a/apps/midjourney/utils.py +++ b/apps/midjourney/utils.py @@ -233,3 +233,25 @@ def get_new_image_url(image_url: str) -> str: raise except Exception as e: raise HTTPException(status_code=500, detail=f"图片URL转换异常: {str(e)}") + +def sanitize_filename(filename: str) -> str: + """清理文件名,移除非法字符 + + Args: + filename: 原始文件名 + + Returns: + str: 清理后的文件名 + """ + # 移除路径分隔符和空字符 + filename = re.sub(r'[\\/:*?"<>|\x00-\x1f]', '', filename) + # 移除首尾空白字符 + filename = filename.strip() + # 如果文件名为空,使用默认名称 + if not filename: + filename = "untitled" + # 限制文件名长度 + if len(filename) > 255: + name, ext = os.path.splitext(filename) + filename = name[:255-len(ext)] + ext + return filename