This commit is contained in:
56
frontend/utils.py
Normal file
56
frontend/utils.py
Normal file
@@ -0,0 +1,56 @@
|
||||
"""
|
||||
前端工具函数模块
|
||||
包含通用的辅助函数
|
||||
"""
|
||||
|
||||
from datetime import datetime
|
||||
from typing import Optional
|
||||
|
||||
|
||||
def format_datetime(dt_str: Optional[str], format: str = "%m-%d %H:%M") -> str:
|
||||
"""
|
||||
格式化日期时间字符串
|
||||
|
||||
Args:
|
||||
dt_str: ISO 格式的日期时间字符串
|
||||
format: 输出格式
|
||||
|
||||
Returns:
|
||||
格式化后的字符串
|
||||
"""
|
||||
if not dt_str:
|
||||
return "未知"
|
||||
|
||||
try:
|
||||
dt = datetime.fromisoformat(dt_str.replace("Z", "+00:00"))
|
||||
return dt.strftime(format)
|
||||
except:
|
||||
return dt_str[:10]
|
||||
|
||||
|
||||
def truncate_text(text: str, max_length: int = 50, suffix: str = "...") -> str:
|
||||
"""
|
||||
截断文本
|
||||
|
||||
Args:
|
||||
text: 原始文本
|
||||
max_length: 最大长度
|
||||
suffix: 截断后缀
|
||||
|
||||
Returns:
|
||||
截断后的文本
|
||||
"""
|
||||
if len(text) <= max_length:
|
||||
return text
|
||||
return text[:max_length] + suffix
|
||||
|
||||
|
||||
def generate_thread_id() -> str:
|
||||
"""
|
||||
生成新的线程 ID
|
||||
|
||||
Returns:
|
||||
UUID 字符串
|
||||
"""
|
||||
import uuid
|
||||
return str(uuid.uuid4())
|
||||
Reference in New Issue
Block a user