Files
astrbot_plugin_qq_group_dai…/src/shared/constants.py
T
SXP-Simon 39cc318d9b feat: 完善 DDD 架构 - 添加领域分析器服务适配层
- 添加 src/__init__.py 作为源码包入口
- 添加 domain/services 分析器适配层:
  - topic_analyzer.py: 话题分析领域服务
  - user_title_analyzer.py: 用户称号分析领域服务
  - golden_quote_analyzer.py: 金句分析领域服务
- 更新 domain/entities/__init__.py 导出更多实体类
- 更新 shared/constants.py 添加枚举类 (Platform, TaskStatus, ContentType, ReportFormat)
- 所有新代码使用中文注释
2026-02-08 15:12:52 +08:00

136 lines
2.8 KiB
Python

"""
常量 - 插件中使用的共享常量
"""
from enum import Enum
class Platform(str, Enum):
"""平台枚举类"""
ONEBOT = "onebot"
AIOCQHTTP = "aiocqhttp"
TELEGRAM = "telegram"
DISCORD = "discord"
SLACK = "slack"
LARK = "lark"
class TaskStatus(str, Enum):
"""任务状态枚举类"""
PENDING = "pending"
RUNNING = "running"
COMPLETED = "completed"
FAILED = "failed"
CANCELLED = "cancelled"
class ContentType(str, Enum):
"""消息内容类型枚举类"""
TEXT = "text"
IMAGE = "image"
EMOJI = "emoji"
STICKER = "sticker"
FILE = "file"
AUDIO = "audio"
VIDEO = "video"
REPLY = "reply"
AT = "at"
UNKNOWN = "unknown"
class ReportFormat(str, Enum):
"""报告格式枚举类"""
TEXT = "text"
MARKDOWN = "markdown"
IMAGE = "image"
HTML = "html"
# 插件元数据
PLUGIN_NAME = "astrbot_plugin_qq_group_daily_analysis"
PLUGIN_VERSION = "2.0.0"
# 平台标识符
PLATFORM_ONEBOT = "onebot"
PLATFORM_TELEGRAM = "telegram"
PLATFORM_DISCORD = "discord"
PLATFORM_SLACK = "slack"
PLATFORM_LARK = "lark"
SUPPORTED_PLATFORMS = [
PLATFORM_ONEBOT,
# 未来平台
# PLATFORM_TELEGRAM,
# PLATFORM_DISCORD,
# PLATFORM_SLACK,
# PLATFORM_LARK,
]
# 分析默认值
DEFAULT_MAX_TOPICS = 5
DEFAULT_MAX_USER_TITLES = 10
DEFAULT_MAX_GOLDEN_QUOTES = 5
DEFAULT_MIN_MESSAGES = 50
DEFAULT_MAX_TOKENS = 2000
# 时间段
HOUR_RANGES = {
"morning": (6, 12),
"afternoon": (12, 18),
"evening": (18, 24),
"night": (0, 6),
}
# 报告格式
REPORT_FORMAT_TEXT = "text"
REPORT_FORMAT_MARKDOWN = "markdown"
REPORT_FORMAT_IMAGE = "image"
REPORT_FORMAT_HTML = "html"
# 消息内容类型
CONTENT_TYPE_TEXT = "text"
CONTENT_TYPE_IMAGE = "image"
CONTENT_TYPE_EMOJI = "emoji"
CONTENT_TYPE_STICKER = "sticker"
CONTENT_TYPE_FILE = "file"
CONTENT_TYPE_AUDIO = "audio"
CONTENT_TYPE_VIDEO = "video"
CONTENT_TYPE_REPLY = "reply"
CONTENT_TYPE_AT = "at"
CONTENT_TYPE_UNKNOWN = "unknown"
# 分析任务状态
TASK_STATE_PENDING = "pending"
TASK_STATE_RUNNING = "running"
TASK_STATE_COMPLETED = "completed"
TASK_STATE_FAILED = "failed"
TASK_STATE_CANCELLED = "cancelled"
# 错误代码
ERROR_INSUFFICIENT_DATA = "INSUFFICIENT_DATA"
ERROR_LLM_FAILED = "LLM_FAILED"
ERROR_PLATFORM_ERROR = "PLATFORM_ERROR"
ERROR_CONFIG_ERROR = "CONFIG_ERROR"
ERROR_TIMEOUT = "TIMEOUT"
# 缓存 TTL(秒)
CACHE_TTL_SHORT = 60 # 1 分钟
CACHE_TTL_MEDIUM = 300 # 5 分钟
CACHE_TTL_LONG = 3600 # 1 小时
CACHE_TTL_DAY = 86400 # 24 小时
# 速率限制默认值
RATE_LIMIT_LLM_CALLS = 10 # 每分钟调用次数
RATE_LIMIT_API_CALLS = 60 # 每分钟调用次数
RATE_LIMIT_BURST = 5 # 突发大小
# 重试默认值
RETRY_MAX_ATTEMPTS = 3
RETRY_BASE_DELAY = 1.0
RETRY_MAX_DELAY = 30.0
# 文件路径
HISTORY_DIR = "history"
CACHE_DIR = "cache"
TEMP_DIR = "temp"