本提交新增了全渠道SDK核心模块: 1. 异步锁、目标解析、动作调度等基础工具 2. 消息动作注册与统一调度系统 3. 测试套件与契约测试框架 4. 完整的目标解析流水线与工具函数 5. 资源依赖注入与生命周期管理
36 lines
952 B
Python
36 lines
952 B
Python
def format_target_display(
|
|
target: str,
|
|
*,
|
|
display: str = "",
|
|
kind: str = "",
|
|
channel: str = "",
|
|
) -> str:
|
|
trimmed = target.strip()
|
|
display_trimmed = display.strip()
|
|
|
|
if display_trimmed:
|
|
if kind == "user":
|
|
return f"@{display_trimmed}"
|
|
if kind in ("group", "channel"):
|
|
return f"#{display_trimmed}"
|
|
return display_trimmed
|
|
|
|
if trimmed.startswith("@") or trimmed.startswith("#"):
|
|
return trimmed
|
|
|
|
lowered = trimmed.lower()
|
|
channel_prefix = f"{channel.lower()}:"
|
|
core = trimmed[len(channel_prefix) :] if lowered.startswith(channel_prefix) else trimmed
|
|
|
|
if core.lower().startswith("channel:"):
|
|
return f"#{core.split(':', 1)[1]}"
|
|
if core.lower().startswith("user:"):
|
|
return f"@{core.split(':', 1)[1]}"
|
|
|
|
if kind == "user":
|
|
return f"@{core}"
|
|
if kind in ("group", "channel"):
|
|
return f"#{core}"
|
|
|
|
return core
|