新增 Google Chat 对接的全套工具模块,包括: - 会话线程管理、消息解析与格式化 - Pub/Sub 消息解码、提及和命令识别 - 权限审批、目录管理和审计日志 - 消息缓存、媒体上传下载和 SSFR 防护 - 策略配置、卡片构建和流式回复支持
22 lines
500 B
Python
22 lines
500 B
Python
from __future__ import annotations
|
|
|
|
import json
|
|
import base64
|
|
|
|
from yuxi.utils.logging_config import logger
|
|
|
|
|
|
def decode_pubsub_push(body: dict) -> dict | None:
|
|
message = body.get("message", {})
|
|
data_b64 = message.get("data", "")
|
|
|
|
if not data_b64:
|
|
return None
|
|
|
|
try:
|
|
decoded = base64.b64decode(data_b64).decode("utf-8")
|
|
return json.loads(decoded)
|
|
except Exception as e:
|
|
logger.warning(f"Failed to decode Pub/Sub push data: {e}")
|
|
return None
|