新增了完整的Confluence集成插件,包含以下核心功能: 1. 基础认证与配置管理,支持API Token和OAuth2两种认证方式 2. 评论去重、权限控制与提及解析 3. 知识库检索与页面内容处理 4. 评论收发、编辑删除与流式回复支持 5. 附件与页面标签管理 6. 内容属性存储与AI元数据管理 7. Webhook事件接收与处理 8. 完整的插件配置与状态检查
49 lines
1.4 KiB
Python
49 lines
1.4 KiB
Python
from datetime import datetime, UTC
|
|
|
|
|
|
class CQLBuilder:
|
|
@staticmethod
|
|
def comment_poll(
|
|
since_iso: str,
|
|
space_keys: list[str] | None = None,
|
|
) -> str:
|
|
parts = ['type = "comment"']
|
|
if space_keys:
|
|
space_clause = " OR ".join(f'space = "{sk}"' for sk in space_keys)
|
|
parts.append(f"({space_clause})")
|
|
parts.append(f'lastModified > "{since_iso}"')
|
|
parts.append("ORDER BY lastModified ASC")
|
|
return " AND ".join(parts)
|
|
|
|
@staticmethod
|
|
def search_pages(
|
|
query: str,
|
|
space_keys: list[str] | None = None,
|
|
) -> str:
|
|
parts = [
|
|
f'(title ~ "{query}" OR text ~ "{query}")',
|
|
'type = "page"',
|
|
]
|
|
if space_keys:
|
|
space_clause = " OR ".join(f'space = "{sk}"' for sk in space_keys)
|
|
parts.append(f"({space_clause})")
|
|
return " AND ".join(parts)
|
|
|
|
@staticmethod
|
|
def recent_pages(
|
|
space_keys: list[str] | None = None,
|
|
hours: int = 24,
|
|
) -> str:
|
|
parts = [
|
|
'type = "page"',
|
|
f'lastModified > now("-{hours}h")',
|
|
]
|
|
if space_keys:
|
|
space_clause = " OR ".join(f'space = "{sk}"' for sk in space_keys)
|
|
parts.append(f"({space_clause})")
|
|
return " AND ".join(parts)
|
|
|
|
@staticmethod
|
|
def format_timestamp(ts: float) -> str:
|
|
return datetime.fromtimestamp(ts, tz=UTC).strftime("%Y-%m-%dT%H:%M:%S.000Z")
|