ForcePilot/backend/package/yuxi/channels/adapters/qqbot/ark_templates.py
Kris 552aef767c feat(qqbot): 实现QQ机器人适配器完整功能模块
新增QQ Bot适配器完整代码栈,包含:
1. 基础适配器入口与工具类封装
2. 会话管理、重试队列与流量控制
3. 命令系统与内置指令(ping/help/status等)
4. 富媒体消息处理与格式转换
5. 引用存储与审批管理
6. 凭证备份与会话持久化
7. 健康检查与交互回调系统
2026-05-12 00:48:04 +08:00

81 lines
2.1 KiB
Python

from __future__ import annotations
from typing import Any
def build_ark_23(kv_pairs: list[dict[str, str]]) -> dict:
return {
"msg_type": 3,
"ark": {
"template_id": 23,
"kv": kv_pairs,
},
}
def build_ark_24(desc: str, prompt: str, title: str, meta_desc: str, img: str, jump_url: str) -> dict:
return {
"msg_type": 3,
"ark": {
"template_id": 24,
"kv": [
{"key": "#DESC#", "value": desc},
{"key": "#PROMPT#", "value": prompt},
{"key": "#TITLE#", "value": title},
{"key": "#METADESC#", "value": meta_desc},
{"key": "#IMG#", "value": img},
{"key": "#JUMPURL#", "value": jump_url},
],
},
}
def build_ark_37(prompt: str, title: str, subtitle: str, jump_url: str) -> dict:
return {
"msg_type": 3,
"ark": {
"template_id": 37,
"kv": [
{"key": "#PROMPT#", "value": prompt},
{"key": "#TITLE#", "value": title},
{"key": "#SUBTITLE#", "value": subtitle},
{"key": "#JUMPURL#", "value": jump_url},
],
},
}
def build_embed(
title: str = "",
description: str = "",
prompt: str = "",
fields: list[dict] | None = None,
thumbnail: str | None = None,
) -> dict:
result: dict[str, Any] = {
"msg_type": 4,
"embed": {
"title": title,
"description": description[:4096],
"prompt": prompt or description[:200],
"fields": fields or [],
},
}
if thumbnail:
result["embed"]["thumbnail"] = {"url": thumbnail}
return result
def build_text_card(text: str, buttons: list[dict] | None = None) -> dict:
payload: dict[str, Any] = {
"msg_type": 0,
"content": text,
}
if buttons:
payload["keyboard"] = {"content": {"rows": [{"buttons": buttons}]}}
return payload
def _kv(key: str, value: str) -> dict[str, str]:
return {"key": key, "value": value}