56 lines
1.1 KiB
Python
56 lines
1.1 KiB
Python
"""
|
|
前端工具函数模块
|
|
包含通用的辅助函数
|
|
"""
|
|
|
|
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()) |