feat: add upload title fallback
This commit is contained in:
@@ -59,6 +59,15 @@ def _user_designer_aliases(user: User) -> list[str]:
|
|||||||
return aliases
|
return aliases
|
||||||
|
|
||||||
|
|
||||||
|
def _generate_fallback_title(category: str, designer_name: str, unique_id: str) -> str:
|
||||||
|
category_name = str(category or "设计素材").strip() or "设计素材"
|
||||||
|
designer = str(designer_name or "").strip()
|
||||||
|
suffix = unique_id.replace("-", "")[:6]
|
||||||
|
if designer:
|
||||||
|
return f"{category_name}_{designer}_{suffix}"
|
||||||
|
return f"{category_name}_自动生成_{suffix}"
|
||||||
|
|
||||||
|
|
||||||
def generate_thumbnail(image_path: str, thumb_path: str, size=(400, 400)):
|
def generate_thumbnail(image_path: str, thumb_path: str, size=(400, 400)):
|
||||||
"""生成缩略图 - 修复透明 PNG 问题"""
|
"""生成缩略图 - 修复透明 PNG 问题"""
|
||||||
with Image.open(image_path) as img:
|
with Image.open(image_path) as img:
|
||||||
@@ -115,7 +124,7 @@ def add_watermark(image_path: str, watermarked_path: str, watermark_text: str =
|
|||||||
@router.post("", summary="上传作品")
|
@router.post("", summary="上传作品")
|
||||||
async def upload_work(
|
async def upload_work(
|
||||||
file: UploadFile = File(..., description="作品图片文件"),
|
file: UploadFile = File(..., description="作品图片文件"),
|
||||||
title: str = Form(..., description="作品标题"),
|
title: Optional[str] = Form(None, description="作品标题"),
|
||||||
description: Optional[str] = Form(None, description="作品描述"),
|
description: Optional[str] = Form(None, description="作品描述"),
|
||||||
category: str = Form(..., description="作品分类"),
|
category: str = Form(..., description="作品分类"),
|
||||||
tags: Optional[str] = Form(None, description="标签,逗号分隔"),
|
tags: Optional[str] = Form(None, description="标签,逗号分隔"),
|
||||||
@@ -191,10 +200,11 @@ async def upload_work(
|
|||||||
else:
|
else:
|
||||||
tags_str = None
|
tags_str = None
|
||||||
resolved_designer = str(designer_name or "").strip() or current_user.nickname or current_user.phone
|
resolved_designer = str(designer_name or "").strip() or current_user.nickname or current_user.phone
|
||||||
|
resolved_title = str(title or "").strip() or _generate_fallback_title(category, resolved_designer, unique_id)
|
||||||
|
|
||||||
# 创建数据库记录 - 修复所有字段问题
|
# 创建数据库记录 - 修复所有字段问题
|
||||||
work = Work(
|
work = Work(
|
||||||
title=title,
|
title=resolved_title,
|
||||||
description=description or "",
|
description=description or "",
|
||||||
category=category,
|
category=category,
|
||||||
tags=tags_str, # 修复:使用字符串而不是列表
|
tags=tags_str, # 修复:使用字符串而不是列表
|
||||||
|
|||||||
Reference in New Issue
Block a user