From f8dc0b332c63bdb9f9e2ac293323ae95f1113ec9 Mon Sep 17 00:00:00 2001 From: FlanChanOwO Date: Sun, 19 Apr 2026 06:59:52 +0800 Subject: [PATCH 1/5] chore: update changelog for version 1.3.1 release --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2830628..2601846 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,7 @@ # Changelog +## [1.3.1] - 2026-04-19 + ## [1.3.0] - 2026-04-10 ### Added From 627f69837ea545e3811c4f8bf6593fd073ef027a Mon Sep 17 00:00:00 2001 From: FlanChanOwO Date: Tue, 28 Apr 2026 23:16:35 +0800 Subject: [PATCH 2/5] feat: add sanitization methods for handler and display descriptions --- api/__init__.py | 23 + config/__init__.py | 4 +- config/safety.py | 2 +- constants.py | 19 - core/__init__.py | 974 +---------------------------------- fortune/__init__.py | 103 ---- fortune/core.py | 664 ------------------------ fortune/handlers.py | 425 --------------- fortune/llm_handlers.py | 441 ---------------- fortune/renderer.py | 265 ---------- fortune/session_config.py | 237 --------- handlers/__init__.py | 8 - handlers/command_handlers.py | 838 ------------------------------ handlers/llm_handlers.py | 544 ------------------- llm_registry.py | 382 -------------- main.py | 21 +- providers/__init__.py | 129 ----- providers/atri.py | 106 ---- providers/base.py | 46 -- providers/custom.py | 249 --------- providers/lolicon.py | 109 ---- providers/multi.py | 96 ---- providers/sexnyan.py | 75 --- render/__init__.py | 8 + services/__init__.py | 18 +- services/cache.py | 271 ---------- services/config_manager.py | 657 ----------------------- services/docx.py | 116 ----- services/html.py | 170 ------ services/image.py | 451 ---------------- services/setu/__init__.py | 20 + session_config.py | 455 ---------------- session_config_base.py | 92 ---- utils.py | 115 ----- 34 files changed, 82 insertions(+), 8051 deletions(-) create mode 100644 api/__init__.py delete mode 100644 constants.py delete mode 100644 fortune/__init__.py delete mode 100644 fortune/core.py delete mode 100644 fortune/handlers.py delete mode 100644 fortune/llm_handlers.py delete mode 100644 fortune/renderer.py delete mode 100644 fortune/session_config.py delete mode 100644 handlers/__init__.py delete mode 100644 handlers/command_handlers.py delete mode 100644 handlers/llm_handlers.py delete mode 100644 llm_registry.py delete mode 100644 providers/__init__.py delete mode 100644 providers/atri.py delete mode 100644 providers/base.py delete mode 100644 providers/custom.py delete mode 100644 providers/lolicon.py delete mode 100644 providers/multi.py delete mode 100644 providers/sexnyan.py create mode 100644 render/__init__.py delete mode 100644 services/cache.py delete mode 100644 services/config_manager.py delete mode 100644 services/docx.py delete mode 100644 services/html.py delete mode 100644 services/image.py create mode 100644 services/setu/__init__.py delete mode 100644 session_config.py delete mode 100644 session_config_base.py delete mode 100644 utils.py diff --git a/api/__init__.py b/api/__init__.py new file mode 100644 index 0000000..d4a1646 --- /dev/null +++ b/api/__init__.py @@ -0,0 +1,23 @@ +"""API integration layer for setu plugin.""" + +from __future__ import annotations + +from .providers import ( + AtriProvider, + CustomApiProvider, + LoliconProvider, + MultiApiProvider, + SetuImageProvider, + SexNyanRunProvider, + get_provider, +) + +__all__ = [ + "SetuImageProvider", + "MultiApiProvider", + "LoliconProvider", + "AtriProvider", + "SexNyanRunProvider", + "CustomApiProvider", + "get_provider", +] diff --git a/config/__init__.py b/config/__init__.py index 5eafeae..9561ba9 100644 --- a/config/__init__.py +++ b/config/__init__.py @@ -14,6 +14,8 @@ from .html_card import HtmlCardConfigMixin from .messages import MessagesConfigMixin from .safety import SafetyConfigMixin +from .session import SessionConfigManager +from .session_base import SessionConfigBase class SetuConfig( @@ -45,4 +47,4 @@ def __init__(self, config: AstrBotConfig): super().__init__(config) -__all__ = ["SetuConfig", "parse_count"] +__all__ = ["SetuConfig", "parse_count", "SessionConfigManager", "SessionConfigBase"] diff --git a/config/safety.py b/config/safety.py index 2fdb968..2350d4b 100644 --- a/config/safety.py +++ b/config/safety.py @@ -6,7 +6,7 @@ from astrbot.api import logger -from ..constants import DEFAULT_TAG_ALIAS +from ..domain import DEFAULT_TAG_ALIAS from .helpers import safe_bool, safe_int if TYPE_CHECKING: diff --git a/constants.py b/constants.py deleted file mode 100644 index fbf674b..0000000 --- a/constants.py +++ /dev/null @@ -1,19 +0,0 @@ -"""Setu 插件的常量和映射配置。""" - -from __future__ import annotations - -# 图片下载的 HTTP 超时时间(秒)- 默认值为 30,可通过配置覆盖 -HTTP_TIMEOUT_SECONDS = 30 - -# 常见标签的默认别名映射 -DEFAULT_TAG_ALIAS: dict[str, list[str]] = { - "白丝": ["白丝", "白絲", "white stockings"], - "萝莉": ["萝莉", "蘿莉", "loli"], - "碧蓝档案": ["碧蓝档案", "碧藍檔案", "blue archive", "ba"], -} - -# 命令匹配正则表达式 -COMMAND_PATTERN = r"^/?(来\s*(.*?)(份|个|张|点))(.*?)(?:福利|色|瑟|涩|塞)?图$" - -# 今日运势命令正则 - 只匹配不以斜杠开头的纯文本 -FORTUNE_PATTERN = r"^(?!/)(今日运势|jrys)$" diff --git a/core/__init__.py b/core/__init__.py index 594b88b..25fb24c 100644 --- a/core/__init__.py +++ b/core/__init__.py @@ -1,975 +1,7 @@ -"""Setu 插件核心逻辑。""" +"""Core orchestration exports for setu plugin.""" from __future__ import annotations -import asyncio -import random -from collections.abc import AsyncGenerator -from pathlib import Path -from typing import Any +from .setu_core import SetuCore -import httpx - -import astrbot.api.message_components as Comp -from astrbot.api import logger -from astrbot.api.event import AstrMessageEvent - -from ..config import SetuConfig -from ..providers import get_provider -from ..services import ( - AccessControlManager, - ConfigManager, - DocxService, - HtmlCardRenderer, - ImageService, - UrlImageDiskCache, -) -from ..session_config import SessionConfigManager -from .rate_limiter import SessionRequestLimiter -from .revoke_manager import RevokeManager -from .revoke_tasks import RevokeTaskMixin -from .send_revoke import SendWithRevokeMixin - - -class SetuCore(RevokeTaskMixin, SendWithRevokeMixin): - """Setu 插件核心逻辑类。""" - - def __init__(self, plugin, config: SetuConfig, data_dir: Path, astrbot_config=None): - self.plugin = plugin - self._config = config - self.data_dir = data_dir - self._revoke_manager = RevokeManager(data_dir) - self._session_config = SessionConfigManager( - astrbot_config or plugin.config, data_dir - ) - self._rate_limiter = SessionRequestLimiter() - self._docx_service = DocxService() - self._revoke_tasks: set[asyncio.Task] = set() - self._cache: UrlImageDiskCache | None = None - self._image_service: ImageService | None = None - self._html_renderer: HtmlCardRenderer | None = None - self._config_manager = ConfigManager(data_dir, astrbot_config or plugin.config) - self._access_control = AccessControlManager(self._config_manager) - - async def initialize(self) -> None: - """初始化核心组件。""" - await self._revoke_manager.initialize() - await self._session_config.initialize() - await self._config_manager.initialize() - await self._restore_pending_revokes() - - if ( - self._config.html_card_strategy in ("fallback", "always") - or self._config.auto_handle_send_failure - ): - self._ensure_html_renderer() - - try: - if self._config.cache_enabled: - cache_dir = self.data_dir / "image_cache" - self._cache = UrlImageDiskCache( - cache_dir=cache_dir, - ttl_hours=self._config.cache_ttl_hours, - max_items=self._config.cache_max_items, - ) - if self._config.cache_cleanup_on_start: - await self._cache.cleanup_expired() - self._image_service = ImageService( - self._cache, - concurrent_limit=self._config.download_concurrent_limit, - timeout_seconds=self._config.download_timeout_seconds, - enable_range_download=self._config.enable_range_download, - range_segments=self._config.range_segments, - range_threshold=self._config.range_threshold, - ) - except (OSError, RuntimeError, ValueError): - logger.exception( - "SetuCore initialize failed, fallback to no-cache ImageService" - ) - self._cache = None - self._image_service = ImageService( - None, - concurrent_limit=self._config.download_concurrent_limit, - timeout_seconds=self._config.download_timeout_seconds, - ) - - def terminate(self) -> None: - """终止插件,取消所有后台任务。""" - for task in list(self._revoke_tasks): - if not task.done(): - task.cancel() - self._revoke_tasks.clear() - logger.info("[revoke] All revoke tasks cancelled") - - def _get_provider(self): - cfg = self._config - lolicon_config = None - atri_config = None - if cfg.api_type in ("lolicon", "all"): - lolicon_config = { - "image_size": cfg.image_size, - "proxy": cfg.proxy, - "aspect_ratio": cfg.aspect_ratio, - "uid": cfg.uid, - "keyword": cfg.keyword, - } - if cfg.api_type in ("atri", "all"): - atri_config = { - "image_size": cfg.atri_image_size, - "proxy": cfg.atri_proxy, - "aspect_ratio": cfg.atri_aspect_ratio, - "uid": cfg.atri_uid, - "keyword": cfg.atri_keyword, - } - return get_provider( - cfg.api_type, - custom_config=cfg.custom_api if cfg.api_type == "custom" else None, - parser_config=cfg.api_response_parser if cfg.api_type == "custom" else None, - custom_api_configs=cfg.custom_api_configs - if cfg.api_type in ("custom", "all") - else None, - multi_api_strategy=cfg.multi_api_strategy, - lolicon_config=lolicon_config, - atri_config=atri_config, - ) - - def _get_fortune_provider(self): - """获取今日运势专用的 provider。 - - 支持独立的 API 提供商配置。 - """ - cfg = self._config - # 获取生效的 fortune API 类型 - effective_api_type = cfg.get_effective_fortune_api_type() - - lolicon_config = None - atri_config = None - if effective_api_type in ("lolicon", "all"): - lolicon_config = { - "image_size": cfg.image_size, - "proxy": cfg.proxy, - "aspect_ratio": cfg.aspect_ratio, - "uid": cfg.uid, - "keyword": cfg.keyword, - } - if effective_api_type in ("atri", "all"): - atri_config = { - "image_size": cfg.atri_image_size, - "proxy": cfg.atri_proxy, - "aspect_ratio": cfg.atri_aspect_ratio, - "uid": cfg.atri_uid, - "keyword": cfg.atri_keyword, - } - return get_provider( - effective_api_type, - custom_config=cfg.custom_api if effective_api_type == "custom" else None, - parser_config=cfg.api_response_parser - if effective_api_type == "custom" - else None, - custom_api_configs=cfg.custom_api_configs - if effective_api_type in ("custom", "all") - else None, - multi_api_strategy=cfg.multi_api_strategy, - lolicon_config=lolicon_config, - atri_config=atri_config, - ) - - async def get_effective_content_mode(self, event: AstrMessageEvent) -> str: - """获取生效的内容模式(优先会话配置)。""" - session_id = event.get_session_id() - is_group = bool(event.get_group_id()) - session_mode = await self._session_config.get_session_content_mode( - session_id, is_group - ) - - # 调试日志 - logger.debug( - "[content_mode] session_id=%s, is_group=%s, session_mode=%s, global_mode=%s", - session_id, - is_group, - session_mode, - self._config.content_mode, - ) - - if session_mode: - logger.debug("[content_mode] Using session mode: %s", session_mode) - return session_mode - logger.debug("[content_mode] Using global mode: %s", self._config.content_mode) - return self._config.content_mode - - async def get_effective_r18_docx_mode(self, event: AstrMessageEvent) -> bool: - """获取生效的 R18 Docx 模式设置。""" - session_id = event.get_session_id() - is_group = bool(event.get_group_id()) - session_mode = await self._session_config.get_session_r18_docx_mode( - session_id, is_group - ) - if session_mode is not None: - return session_mode - return self._config.r18_docx_mode - - async def get_effective_auto_revoke_r18(self, event: AstrMessageEvent) -> bool: - """获取生效的自动撤回 R18 设置。""" - session_id = event.get_session_id() - is_group = bool(event.get_group_id()) - session_mode = await self._session_config.get_session_auto_revoke_r18( - session_id, is_group - ) - if session_mode is not None: - return session_mode - return self._config.auto_revoke_r18 - - async def get_effective_send_mode(self, event: AstrMessageEvent) -> str: - """获取生效的发送模式(优先会话配置)。""" - session_id = event.get_session_id() - is_group = bool(event.get_group_id()) - session_mode = await self._session_config.get_session_send_mode( - session_id, is_group - ) - if session_mode: - logger.debug("[send_mode] Using session mode: %s", session_mode) - return session_mode - logger.debug("[send_mode] Using global mode: %s", self._config.send_mode) - return self._config.send_mode - - @staticmethod - def determine_r18(content_mode: str) -> bool: - """根据内容模式确定是否为 R18。""" - if content_mode == "r18": - return True - if content_mode == "mix": - return random.random() > 0.5 - return False - - @staticmethod - def _resolve_send_mode(send_mode: str, image_count: int) -> str: - if send_mode == "auto": - return "forward" if image_count > 1 else "image" - return send_mode - - def _ensure_html_renderer(self) -> bool: - if self._html_renderer is not None: - return True - try: - template_path = Path(__file__).parent.parent / "templates" / "setu.html" - self._html_renderer = HtmlCardRenderer(template_path) - return True - except (OSError, ValueError): - logger.exception("html renderer initialize failed") - return False - - def is_group_blocked( - self, event: AstrMessageEvent, feature: str | None = None - ) -> bool: - """检查群聊或用户是否被屏蔽。 - - 完全独立的功能级黑白名单:setu 和 fortune 有各自独立的黑白名单配置。 - 用户级黑白名单也是分开的:setu 的用户黑白名单只影响色图功能, - fortune 的用户黑白名单只影响运势功能。 - - 参数: - event: 消息事件 - feature: 功能名称,可选值为 "setu" 或 "fortune" - - 返回: - 如果被屏蔽返回 True,否则返回 False - """ - try: - # 获取用户 ID - user_id = event.get_sender_id() - - # 获取群组 ID(私聊时可能为 None) - group_id = None - try: - group_id = event.message_obj.group_id - except AttributeError: - pass - - # 根据功能类型检查对应的黑白名单 - if feature == "setu": - setu_user_mode = self._config.setu_user_access_control_mode - setu_group_mode = self._config.setu_group_access_control_mode - logger.debug( - "[setu] Access control mode from SetuConfig: user_mode=%s, group_mode=%s (user=%s, group=%s)", - setu_user_mode, - setu_group_mode, - user_id, - group_id, - ) - - is_blocked, reason = self._access_control.check_setu_access( - user_id, - group_id, - user_access_control_mode=setu_user_mode, - group_access_control_mode=setu_group_mode, - ) - if is_blocked: - logger.info( - "[setu] Access denied for user=%s, group=%s: %s", - user_id, - group_id, - reason, - ) - return True - elif feature == "fortune": - fortune_user_mode = self._config.fortune_user_access_control_mode - fortune_group_mode = self._config.fortune_group_access_control_mode - logger.debug( - "[fortune] Access control mode from SetuConfig: user_mode=%s, group_mode=%s (user=%s, group=%s)", - fortune_user_mode, - fortune_group_mode, - user_id, - group_id, - ) - - is_blocked, reason = self._access_control.check_fortune_access( - user_id, - group_id, - user_access_control_mode=fortune_user_mode, - group_access_control_mode=fortune_group_mode, - ) - if is_blocked: - logger.debug( - "[fortune] Access denied for user=%s, group=%s: %s", - user_id, - group_id, - reason, - ) - return True - else: - # 失败关闭:未指定/非法 feature 时,避免静默绕过访问控制。 - logger.warning( - "[access_control] Missing or invalid feature=%s, deny by default (user=%s, group=%s)", - feature, - user_id, - group_id, - ) - return True - - except AttributeError: - logger.debug("failed to inspect user/group id for blocked check") - - return False - - def _is_forward_supported(self, event: AstrMessageEvent) -> bool: - """检查当前平台是否支持合并转发消息。 - - 目前支持的平台:OneBot v11 (aiocqhttp) - """ - # 获取平台信息(多种方式) - platform_name = None - try: - platform_type_name = "Unknown" - # 方式1:通过 event.platform.name - if hasattr(event, "platform") and event.platform: - platform_obj = event.platform - platform_type_name = type(platform_obj).__name__ - if hasattr(platform_obj, "name"): - platform_name = platform_obj.name - - # 方式2:通过 event.get_platform_name() - if not platform_name and hasattr(event, "get_platform_name"): - try: - platform_name = event.get_platform_name() - except Exception: - pass - - # 方式3:通过 context 获取 - if not platform_name and hasattr(self, "plugin") and self.plugin: - try: - ctx = getattr(self.plugin, "context", None) - if ctx and hasattr(ctx, "get_platform"): - platform = ctx.get_platform() - if platform and hasattr(platform, "name"): - platform_name = platform.name - platform_type_name = type(platform).__name__ - except Exception: - pass - - # 调试日志 - logger.debug( - "[platform] Checking forward support: platform_name=%s, platform_type=%s", - platform_name, - platform_type_name, - ) - - # 支持的平台列表(检查名称) - supported_platforms = ( - "aiocqhttp", - "onebot11", - "onebot", - "go-cqhttp", - "napcat", - "llonebot", - ) - if platform_name: - platform_name_lower = platform_name.lower() - for p in supported_platforms: - if p in platform_name_lower: - logger.debug("[platform] Forward supported: name match '%s'", p) - return True - - # 检查 platform 对象类型名 - if platform_type_name and any( - p in platform_type_name.lower() for p in ("cqhttp", "onebot", "gocq") - ): - logger.debug( - "[platform] Forward supported: type match '%s'", platform_type_name - ) - return True - - # 检查 event 是否有 bot 属性且看起来是 OneBot(有 call_action 方法) - if hasattr(event, "bot") and event.bot: - bot = event.bot - if hasattr(bot, "call_action"): - logger.debug("[platform] Forward supported: bot has call_action") - return True - - # 检查 unified_msg_origin 格式 - if hasattr(event, "unified_msg_origin"): - umo = event.unified_msg_origin - if umo and isinstance(umo, str): - if any(p in umo.lower() for p in ("aiocqhttp", "onebot", "gocq")): - logger.debug( - "[platform] Forward supported: unified_msg_origin match" - ) - return True - - except Exception as exc: - logger.debug("[platform] Error checking forward support: %s", exc) - - logger.debug("[platform] Forward not supported for platform=%s", platform_name) - return False - - @property - def session_config(self) -> SessionConfigManager: - return self._session_config - - @property - def rate_limiter(self) -> SessionRequestLimiter: - return self._rate_limiter - - @property - def config(self) -> SetuConfig: - return self._config - - @property - def access_control(self) -> AccessControlManager: - return self._access_control - - async def fetch_and_download_images( - self, num: int, tags: list[str], is_r18: bool - ) -> list[bytes]: - """获取并下载图片。""" - try: - provider = self._get_provider() - except (ValueError, RuntimeError): - logger.exception("provider initialization failed") - return [] - - if not provider: - logger.error("no provider available") - return [] - - exclude_ai = self._config.exclude_ai - max_replenish = self._config.max_replenish_rounds - - try: - img_urls = await provider.fetch_image_urls( - num=num, tags=tags, r18=is_r18, exclude_ai=exclude_ai - ) - except (RuntimeError, ConnectionError, TimeoutError) as exc: - logger.error("provider fetch failed: %s", exc) - return [] - - if not img_urls or not self._image_service: - return [] - - downloaded = await self._image_service.download_parallel(img_urls) - - # 补充机制 - round_num = 0 - while len(downloaded) < num and round_num < max_replenish: - missing = num - len(downloaded) - if len(downloaded) == len(img_urls): - break - try: - extra_urls = await provider.fetch_image_urls( - num=missing, tags=tags, r18=is_r18, exclude_ai=exclude_ai - ) - if extra_urls: - extra_downloaded = await self._image_service.download_parallel( - extra_urls - ) - downloaded.extend(extra_downloaded) - if len(extra_urls) < missing: - break - else: - break - except Exception as exc: - logger.warning("replenish round %d failed: %s", round_num + 1, exc) - round_num += 1 - return downloaded - - async def _direct_send(self, event: AstrMessageEvent, chain: list) -> bool: - """通过 context.send_message 直接发送消息,返回是否成功。""" - try: - result = event.chain_result(chain) - - # 检查图片大小,Telegram 等平台有 10MB 或 20MB 限制 - for comp in chain: - if hasattr(comp, "file") and isinstance(comp.file, bytes): - size_mb = len(comp.file) / (1024 * 1024) - if size_mb > 10: # Telegram 通常限制 10-20MB - logger.warning( - "[send] Image size %.2f MB may exceed platform limit", - size_mb, - ) - - send_result = await self.plugin.context.send_message( - event.unified_msg_origin, result - ) - - # 获取平台名称 - platform_name = getattr(event.platform, "name", "unknown") - - # 检查发送结果 - # 注意:某些平台(如 Telegram)send_message 可能返回 None 但实际发送成功 - # 只对特定平台严格检查返回值 - if send_result is None and platform_name == "aiocqhttp": - # OneBot v11 平台应该返回消息 ID,如果没有可能是失败了 - logger.warning( - "[send] send_message returned None on %s, " - "platform may not support this message type", - platform_name, - ) - return False - - # 对于其他平台(Telegram 等),不严格检查返回值 - logger.debug("[send] Direct send completed on %s", platform_name) - return True - except TimeoutError: - logger.warning( - "[send] Direct send timed out on %s", - getattr(event.platform, "name", "unknown"), - ) - return False - except Exception as exc: - logger.warning("[send] Direct send failed: %s", exc, exc_info=True) - return False - - async def _direct_send_plain(self, event: AstrMessageEvent, text: str) -> bool: - """直接发送纯文本消息,返回是否成功。""" - try: - result = event.plain_result(text) - await self.plugin.context.send_message(event.unified_msg_origin, result) - return True - except Exception as exc: - logger.warning("direct send plain failed: %s", exc) - return False - - async def send_images( - self, - event: AstrMessageEvent, - images: list[bytes], - is_r18: bool, - tags: list[str] | None = None, - ) -> AsyncGenerator[Any, None]: - """发送图片,失败时尝试 HTML 卡片降级发送(复用已下载的图片)。""" - if not images: - yield event.plain_result("运气不好,一张图都没拿到...") - return - - cfg = self._config - # 使用会话级发送模式(优先会话配置) - send_mode = await self.get_effective_send_mode(event) - actual_send_mode = self._resolve_send_mode(send_mode, len(images)) - - effective_auto_revoke = await self.get_effective_auto_revoke_r18(event) - effective_r18_docx = await self.get_effective_r18_docx_mode(event) - auto_revoke = is_r18 and effective_auto_revoke - - # R18 Docx 模式 - if is_r18 and effective_r18_docx: - docx_path = self._docx_service.create_docx_with_images(images, tags=tags) - if docx_path: - if auto_revoke: - message_id = await self._send_file_with_revoke( - event, str(docx_path), docx_path.name - ) - if message_id: - await self._schedule_revoke( - event, message_id, cfg.auto_revoke_delay - ) - if cfg.msg_found_enabled: - yield event.plain_result( - cfg.format_found_message( - len(images), cfg.auto_revoke_delay - ) - ) - return - if cfg.msg_found_enabled: - yield event.plain_result(cfg.format_found_message(len(images))) - yield event.chain_result( - [Comp.File(file=str(docx_path), name=docx_path.name)] - ) - return - yield event.plain_result("R18 Docx 封装失败,请稍后再试或联系管理员。") - return - - # 准备提示消息 - found_message = ( - cfg.format_found_message(len(images)) if cfg.msg_found_enabled else None - ) - - # 判断 HTML 卡片策略 - html_strategy = cfg.html_card_strategy - use_html_always = html_strategy == "always" - use_html_fallback = html_strategy == "fallback" or cfg.auto_handle_send_failure - - # 如果策略是 always,直接使用 HTML 卡片发送 - if use_html_always: - if found_message: - await self._direct_send_plain(event, found_message) - send_success = await self._try_html_card_fallback( - event, images, actual_send_mode, auto_revoke - ) - if not send_success: - yield event.plain_result("HTML 卡片发送失败,请检查网络或联系管理员。") - return - - # 尝试普通发送(使用直接发送以捕获异常) - send_success = False - - # 检测平台是否支持合并转发 - forward_supported = self._is_forward_supported(event) - if actual_send_mode == "forward" and not forward_supported: - logger.debug( - "[send] Platform %s does not support forward messages, " - "falling back to normal image send", - getattr(event.platform, "name", "unknown"), - ) - actual_send_mode = "image" - - if actual_send_mode == "forward": - import time - - build_start = time.monotonic() - nodes = [] - for img_data in images: - node = Comp.Node( - uin=event.get_self_id(), - name="色图", - content=[Comp.Image.fromBytes(img_data)], - ) - nodes.append(node) - build_end = time.monotonic() - logger.debug( - "[forward] Built %d nodes in %.3fs", len(nodes), build_end - build_start - ) - - if auto_revoke: - message_id = await self._send_nodes_with_revoke(event, nodes) - if message_id: - await self._schedule_revoke( - event, message_id, cfg.auto_revoke_delay - ) - if cfg.msg_found_enabled: - yield event.plain_result( - cfg.format_found_message(len(images), cfg.auto_revoke_delay) - ) - send_success = True - else: - if found_message: - await self._direct_send_plain(event, found_message) - # 使用优化的合并转发发送(绕过 AstrBot 内部处理) - send_start = time.monotonic() - send_success = await self._send_nodes_direct(event, nodes) - logger.debug( - "[forward] Send nodes completed in %.3fs", - time.monotonic() - send_start, - ) - # 如果合并转发失败(平台不支持),降级为普通图片发送 - if not send_success: - logger.info( - "[forward] Forward message not supported or failed, " - "falling back to normal image send" - ) - chain = [Comp.Image.fromBytes(img) for img in images] - send_success = await self._direct_send(event, chain) - else: - if auto_revoke: - chain = [Comp.Image.fromBytes(img) for img in images] - message_id = await self._send_with_revoke_support( - event, - chain, - bool(event.get_group_id()), - event.get_group_id() or event.get_sender_id(), - ) - if message_id: - await self._schedule_revoke( - event, message_id, cfg.auto_revoke_delay - ) - if cfg.msg_found_enabled: - yield event.plain_result( - cfg.format_found_message(len(images), cfg.auto_revoke_delay) - ) - send_success = True - else: - if found_message: - await self._direct_send_plain(event, found_message) - # 将所有图片放在一条消息链中发送,提高速度和可靠性 - chain = [Comp.Image.fromBytes(img) for img in images] - send_success = await self._direct_send(event, chain) - - # 如果普通发送失败,尝试 HTML 卡片降级(使用已下载的图片) - if not send_success and use_html_fallback: - logger.debug("Image send failed, attempting HTML card fallback") - send_success = await self._try_html_card_fallback( - event, images, actual_send_mode, auto_revoke - ) - logger.debug("HTML card fallback result: %s", send_success) - - if not send_success: - if use_html_fallback: - yield event.plain_result( - "图片发送失败,HTML 卡片降级发送也失败了,请检查网络或联系管理员。" - ) - else: - yield event.plain_result( - "图片发送失败,可尝试在插件配置中启用 HTML 卡片模式作为备选方案。" - ) - else: - # 发送成功,yield 一个标记供调用者识别 - logger.debug("Images sent successfully: count=%d", len(images)) - yield {"send_success": True, "image_count": len(images)} - - async def _try_html_card_fallback( - self, - event: AstrMessageEvent, - images: list[bytes], - send_mode: str, - auto_revoke: bool = False, - ) -> bool: - """使用 HTML 卡片包装已下载的图片发送,返回是否成功。""" - cfg = self._config - - if not self._ensure_html_renderer() or not self._html_renderer: - logger.warning("HTML renderer not available for fallback") - return False - - render_style = { - "card_padding": cfg.html_card_padding, - "card_gap": cfg.html_card_gap, - } - - # 渲染 HTML 卡片(现在直接返回字节数据) - html_image_data: list[bytes] = [] - for i, img_data in enumerate(images): - logger.debug("[html_fallback] Rendering image %d/%d", i + 1, len(images)) - rendered = await self._html_renderer.render_single_image( - context=self.plugin, - image=img_data, - style_options=render_style, - ) - if rendered: - html_image_data.append(rendered) - logger.debug( - "[html_fallback] Image %d rendered, size=%d", i + 1, len(rendered) - ) - else: - logger.warning("[html_fallback] Failed to render image %d", i + 1) - - if not html_image_data: - logger.warning("HTML card rendering produced no images") - return False - - logger.debug( - "[html_fallback] Successfully rendered %d HTML cards", len(html_image_data) - ) - - # 发送渲染后的 HTML 卡片图片 - if send_mode == "forward" and self._is_forward_supported(event): - nodes = [] - for img_data in html_image_data: - node = Comp.Node( - uin=event.get_self_id(), - name="色图", - content=[Comp.Image.fromBytes(img_data)], - ) - nodes.append(node) - - if auto_revoke: - message_id = await self._send_nodes_with_revoke(event, nodes) - if message_id: - await self._schedule_revoke( - event, message_id, cfg.auto_revoke_delay - ) - if cfg.msg_found_enabled: - await self._direct_send_plain( - event, - cfg.format_found_message( - len(html_image_data), cfg.auto_revoke_delay - ), - ) - return True - return False - - send_success = await self._send_nodes_direct(event, nodes) - # 如果合并转发失败,降级为普通发送 - if not send_success: - logger.debug( - "[forward] HTML card forward send failed, falling back to normal send" - ) - chain = [Comp.Image.fromBytes(img) for img in html_image_data] - return await self._direct_send(event, chain) - return True - else: - if auto_revoke: - chain = [Comp.Image.fromBytes(img) for img in html_image_data] - message_id = await self._send_with_revoke_support( - event, - chain, - bool(event.get_group_id()), - event.get_group_id() or event.get_sender_id(), - ) - if message_id: - await self._schedule_revoke( - event, message_id, cfg.auto_revoke_delay - ) - if cfg.msg_found_enabled: - await self._direct_send_plain( - event, - cfg.format_found_message( - len(html_image_data), cfg.auto_revoke_delay - ), - ) - return True - return False - - # 所有 HTML 卡片图片放在一条消息链中发送 - chain = [Comp.Image.fromBytes(img) for img in html_image_data] - logger.debug( - "[html_fallback] Sending %d HTML card images via direct send", - len(chain), - ) - result = await self._direct_send(event, chain) - logger.info("[html_fallback] Direct send result: %s", result) - return result - - async def verify_image_urls(self, urls: list[str]) -> list[str]: - """验证图片 URL 是否可访问。 - - 使用 HEAD 请求快速验证 URL 是否返回 200。 - 支持并发请求以提高性能。 - - 参数: - urls: 图片 URL 列表 - - 返回: - 验证通过的 URL 列表 - """ - if not urls: - return [] - - valid_urls = [] - semaphore = asyncio.Semaphore(8) # 限制并发数为8 - - async def _check_single_url(client: httpx.AsyncClient, url: str) -> str | None: - async with semaphore: - try: - response = await client.head(url, follow_redirects=True) - if response.status_code == 200: - logger.debug("[url_verify] URL valid: %s", url) - return url - else: - logger.warning( - "[url_verify] URL returned %d: %s", - response.status_code, - url, - ) - except httpx.HTTPError as exc: - logger.warning( - "[url_verify] URL verification failed: %s - %s", url, exc - ) - return None - - async with httpx.AsyncClient(timeout=self._config.url_send_timeout) as client: - tasks = [_check_single_url(client, url) for url in urls] - results = await asyncio.gather(*tasks, return_exceptions=True) - - for result in results: - if isinstance(result, str): - valid_urls.append(result) - - return valid_urls - - async def send_images_by_url( - self, - event: AstrMessageEvent, - urls: list[str], - is_r18: bool, - tags: list[str] | None = None, - ): - """通过 URL 直接发送图片(不下载)。 - - 参数: - event: 消息事件 - urls: 图片 URL 列表 - is_r18: 是否为 R18 内容 - tags: 标签列表(保留用于接口一致性) - """ - # tags 参数保留用于接口一致性,当前实现不使用 - _ = tags - if not urls: - yield event.plain_result("运气不好,没有获取到图片链接...") - return - - cfg = self._config - - # 验证 URL(如果启用) - if cfg.url_send_verify: - valid_urls = await self.verify_image_urls(urls) - if not valid_urls: - yield event.plain_result("获取的图片链接均无法访问,请稍后再试。") - return - if len(valid_urls) < len(urls): - logger.warning( - "[url_send] %d/%d URLs invalid, using valid ones", - len(urls) - len(valid_urls), - len(urls), - ) - else: - valid_urls = urls - - # 准备提示消息 - found_message = ( - cfg.format_found_message(len(valid_urls)) if cfg.msg_found_enabled else None - ) - - # 发送图片 URL - if found_message: - await self._direct_send_plain(event, found_message) - - # 构建消息链 - 使用 Comp.Image.fromURL - chain = [Comp.Image.fromURL(url) for url in valid_urls] - - effective_auto_revoke = await self.get_effective_auto_revoke_r18(event) - auto_revoke = is_r18 and effective_auto_revoke - - if auto_revoke: - message_id = await self._send_with_revoke_support( - event, - chain, - bool(event.get_group_id()), - event.get_group_id() or event.get_sender_id(), - ) - if message_id: - await self._schedule_revoke(event, message_id, cfg.auto_revoke_delay) - if cfg.msg_found_enabled: - yield event.plain_result( - cfg.format_found_message(len(valid_urls), cfg.auto_revoke_delay) - ) - else: - await self._direct_send(event, chain) - yield {"send_success": True, "image_count": len(valid_urls)} +__all__ = ["SetuCore"] diff --git a/fortune/__init__.py b/fortune/__init__.py deleted file mode 100644 index b0ab789..0000000 --- a/fortune/__init__.py +++ /dev/null @@ -1,103 +0,0 @@ -"""今日运势模块。 - -集成到 Setu 插件的今日运势功能。 -参照 Java 版本 winefox-bot FortunePlugin 实现。 -""" - -from __future__ import annotations - -from pathlib import Path -from typing import Any - -from astrbot.api import logger - -from .core import FortuneCore -from .handlers import FortuneCommandHandler -from .llm_handlers import FortuneLlmHandler -from .renderer import FortuneRenderer -from .session_config import FortuneSessionConfig - - -class FortuneManager: - """今日运势管理器。 - - 封装今日运势的所有功能,便于在主插件中集成。 - """ - - def __init__( - self, plugin, data_dir: Path, config: dict[str, Any], astrbot_config=None - ): - self.plugin = plugin - self.data_dir = data_dir - self.config = config - self._astrbot_config = astrbot_config or plugin.config - - self._core: FortuneCore | None = None - self._renderer: FortuneRenderer | None = None - self._session_config: FortuneSessionConfig | None = None - self._cmd_handler: FortuneCommandHandler | None = None - self._llm_handler: FortuneLlmHandler | None = None - - async def initialize(self) -> None: - """初始化今日运势模块。""" - logger.info("[fortune] Initializing FortuneManager...") - - # 初始化核心组件 - self._core = FortuneCore(self.data_dir, self.config) - await self._core.initialize() - - self._renderer = FortuneRenderer() - self._session_config = FortuneSessionConfig(self._astrbot_config, self.data_dir) - await self._session_config.initialize() - - # 初始化处理器 - self._cmd_handler = FortuneCommandHandler( - self.plugin._core, # SetuCore - self.plugin.config, # SetuConfig - self._core, - self._renderer, - self._session_config, - ) - - self._llm_handler = FortuneLlmHandler( - self.plugin, - self.plugin._core, - self._core, - self._session_config, - ) - - logger.info("[fortune] FortuneManager initialized successfully") - - def terminate(self) -> None: - """清理资源。""" - logger.info("[fortune] FortuneManager terminated") - - @property - def cmd_handler(self) -> FortuneCommandHandler | None: - """获取命令处理器。""" - return self._cmd_handler - - @property - def llm_handler(self) -> FortuneLlmHandler | None: - """获取 LLM 处理器。""" - return self._llm_handler - - @property - def core(self) -> FortuneCore | None: - """获取核心实例。""" - return self._core - - @property - def session_config(self) -> FortuneSessionConfig | None: - """获取会话配置。""" - return self._session_config - - -__all__ = [ - "FortuneManager", - "FortuneCore", - "FortuneRenderer", - "FortuneSessionConfig", - "FortuneCommandHandler", - "FortuneLlmHandler", -] diff --git a/fortune/core.py b/fortune/core.py deleted file mode 100644 index cb4c8c0..0000000 --- a/fortune/core.py +++ /dev/null @@ -1,664 +0,0 @@ -"""今日运势核心模块。 - -管理运势生成、数据库持久化、图片缓存等核心功能。 -参照 Java 版本 FortuneDataServiceImpl 实现。 -""" - -from __future__ import annotations - -import asyncio -import datetime -import random -from pathlib import Path -from typing import Any - -from astrbot.api import logger - -# 默认权重数组(对应0-7星) -DEFAULT_WEIGHTS = [0.1, 0.15, 0.2, 0.25, 0.15, 0.12, 0.07, 0.005] - -# 默认运势标题(对应星级0-7) -DEFAULT_TITLES = ["凶", "末吉", "末小吉", "小吉", "中吉", "吉", "大吉", "超大吉"] - -# 默认运势描述(对应星级0-7) -DEFAULT_MESSAGES = [ - "长夜再暗,火种仍在,转机终会到来。", - "微光不灭,步步向前,黎明就在眼前。", - "心怀希冀,顺流而行,好事悄然靠近。", - "逆境翻篇,机遇迎面,惊喜不期而至。", - "小吉随身,难题化易,幸运与你并肩。", - "吉星高照,所行皆坦,所愿皆如愿。", - "福泽深厚,大吉加身,一路花开有声。", - "七星同耀,奇迹频现,今日万事皆成。", -] - - -class FortuneCore: - """今日运势核心类。""" - - def __init__(self, data_dir: Path, config: dict[str, Any]): - self.data_dir = data_dir - self.config = config - self.db_path = data_dir / "fortune.db" - self.cache_dir = data_dir / "cache" - self._db_lock = asyncio.Lock() - self._cache_lock = asyncio.Lock() - self._db_inited = False - self._last_cleanup_date: str | None = None - - async def initialize(self) -> None: - """初始化数据库和缓存目录。""" - self.data_dir.mkdir(parents=True, exist_ok=True) - self.cache_dir.mkdir(parents=True, exist_ok=True) - await self._init_db() - # 启动时清理过期缓存 - await self._cleanup_expired_cache() - # 启动定时清理任务 - asyncio.create_task(self._scheduled_cleanup()) - - async def _scheduled_cleanup(self) -> None: - """定时任务,每天凌晨执行:清理缓存 + 预生成活跃用户运势。""" - while True: - try: - # 计算到明天凌晨的时间 - now = datetime.datetime.now() - tomorrow = now + datetime.timedelta(days=1) - midnight = datetime.datetime.combine(tomorrow.date(), datetime.time.min) - wait_seconds = (midnight - now).total_seconds() - - logger.debug("[fortune] Scheduled tasks in %.0f seconds", wait_seconds) - await asyncio.sleep(wait_seconds) - - # 执行清理 - await self._cleanup_expired_cache() - # 执行预生成 - await self._pregenerate_active_users() - except asyncio.CancelledError: - break - except Exception as exc: - logger.warning("[fortune] Scheduled tasks failed: %s", exc) - await asyncio.sleep(3600) # 出错后1小时再试 - - async def _pregenerate_active_users(self) -> int: - """预生成活跃用户的今日运势。 - - 只为3天内有查看记录的用户预生成,避免滥用。 - 如果今天已有运势则不覆盖。 - - 返回: - 预生成的用户数量 - """ - import aiosqlite - - today_str = datetime.date.today().isoformat() - # 计算3天前的日期 - three_days_ago = ( - datetime.date.today() - datetime.timedelta(days=3) - ).isoformat() - - pregenerated = 0 - - try: - async with self._db_lock: - async with aiosqlite.connect(str(self.db_path)) as db: - # 查询3天内有查看记录的用户(且今天还没有运势) - cursor = await db.execute( - """ - SELECT DISTINCT user_id FROM fortune_data - WHERE last_view_date >= ? - AND user_id NOT IN ( - SELECT user_id FROM fortune_data WHERE date_str = ? - ) - """, - (three_days_ago, today_str), - ) - active_users = await cursor.fetchall() - - if not active_users: - logger.debug("[fortune] No active users to pregenerate") - return 0 - - logger.info( - "[fortune] Pregenerating fortunes for %d active users", - len(active_users), - ) - - # 为每个活跃用户预生成运势 - for (user_id,) in active_users: - try: - # 再次检查今天是否已有运势(避免并发竞争) - check_cursor = await db.execute( - "SELECT 1 FROM fortune_data WHERE user_id = ? AND date_str = ?", - (user_id, today_str), - ) - if await check_cursor.fetchone(): - # 已有运势,跳过 - continue - - # 生成运势 - fortune = self._generate_fortune( - user_id, "指挥官", today_str - ) - - # 保存到数据库(使用 INSERT OR IGNORE 避免覆盖) - await db.execute( - "INSERT INTO fortune_data " - "(user_id, date_str, title, stars, desc_text, extra, theme, image_cached, img_url, last_view_date) " - "VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", - ( - user_id, - today_str, - fortune["title"], - fortune["star_count"], - fortune["description"], - fortune["extra_message"], - fortune["theme_color"], - 0, - None, - today_str, # 预生成时设置 last_view_date,保持活跃状态 - ), - ) - pregenerated += 1 - except Exception as exc: - logger.warning( - "[fortune] Failed to pregenerate for user %s: %s", - user_id, - exc, - ) - - await db.commit() - - if pregenerated > 0: - logger.info( - "[fortune] Pregenerated %d/%d fortunes for active users", - pregenerated, - len(active_users), - ) - - except Exception as exc: - logger.error("[fortune] Pregeneration failed: %s", exc) - - return pregenerated - - async def _init_db(self) -> None: - """初始化数据库表。""" - import aiosqlite - - async with self._db_lock: - async with aiosqlite.connect(str(self.db_path)) as db: - # 创建表(如果不存在) - await db.execute( - """ - CREATE TABLE IF NOT EXISTS fortune_data ( - user_id TEXT NOT NULL, - date_str TEXT NOT NULL, - title TEXT NOT NULL, - stars INTEGER NOT NULL, - desc_text TEXT NOT NULL, - extra TEXT NOT NULL, - theme TEXT NOT NULL, - image_cached INTEGER DEFAULT 0, - img_url TEXT, - last_view_date TEXT, - PRIMARY KEY (user_id, date_str) - ) - """ - ) - await db.commit() - - # 检查并添加缺失的列(版本迁移) - await self._migrate_db(db) - - self._db_inited = True - logger.info("[fortune] Database initialized") - - async def _migrate_db(self, db) -> None: - """数据库版本迁移:添加缺失的列。""" - # 获取表中所有列 - cursor = await db.execute("PRAGMA table_info(fortune_data)") - columns = await cursor.fetchall() - column_names = [col[1] for col in columns] - - # 检查并添加 img_url 列 - if "img_url" not in column_names: - logger.info("[fortune] Migrating database: adding img_url column") - await db.execute("ALTER TABLE fortune_data ADD COLUMN img_url TEXT") - await db.commit() - logger.info("[fortune] Migration completed") - - # 检查并添加 last_view_date 列(用于预生成机制) - if "last_view_date" not in column_names: - logger.info("[fortune] Migrating database: adding last_view_date column") - await db.execute("ALTER TABLE fortune_data ADD COLUMN last_view_date TEXT") - await db.commit() - logger.info("[fortune] Migration completed") - - # 检查并添加 group_id 列(用于群组运势刷新) - if "group_id" not in column_names: - logger.info("[fortune] Migrating database: adding group_id column") - await db.execute("ALTER TABLE fortune_data ADD COLUMN group_id TEXT") - await db.commit() - # 创建索引以优化按群组查询 - await db.execute( - "CREATE INDEX IF NOT EXISTS idx_fortune_group ON fortune_data(group_id, date_str)" - ) - await db.commit() - logger.info("[fortune] Migration completed") - - @staticmethod - def _get_weights() -> list[float]: - """获取权重配置(固定值)。""" - return DEFAULT_WEIGHTS - - @staticmethod - def _get_titles() -> list[str]: - """获取标题配置(固定值)。""" - return DEFAULT_TITLES - - @staticmethod - def _get_messages() -> list[str]: - """获取描述文案配置(固定值)。""" - return DEFAULT_MESSAGES - - @staticmethod - def _get_extra_message() -> str: - """获取额外消息配置(固定为空)。""" - return "" - - def _calculate_luck(self) -> int: - """根据权重计算运势星级。 - - 返回: - 星级 0-7 - """ - weights = self._get_weights() - total_weight = sum(weights) - random_value = random.random() * total_weight - current_weight = 0 - - for i, w in enumerate(weights): - current_weight += w - if random_value <= current_weight: - return i - return 0 - - def _get_theme_color(self, star_num: int) -> str: - """根据星级获取主题颜色。 - - Java版本: - - 7, 6星 -> theme-red - - 5, 4星 -> theme-gold - - 1, 0星 -> theme-gray - - 其他 -> theme-blue - """ - if star_num in (7, 6): - return "theme-red" - elif star_num in (5, 4): - return "theme-gold" - elif star_num in (1, 0): - return "theme-gray" - else: - return "theme-blue" - - def _generate_fortune( - self, user_id: str, username: str, date_str: str, need_new: bool = True - ) -> dict[str, Any]: - """生成运势数据。 - - 参数: - user_id: 用户ID - username: 用户名 - date_str: 日期字符串 - need_new: 是否生成新的运势(刷新时使用) - - 返回: - 运势数据字典 - """ - # 计算星级 - star_num = self._calculate_luck() - - # 获取配置 - titles = self._get_titles() - messages = self._get_messages() - extra = self._get_extra_message() - - # 获取对应星级的标题和描述 - title = titles[min(star_num, len(titles) - 1)] - desc = messages[min(star_num, len(messages) - 1)] - theme = self._get_theme_color(star_num) - - return { - "user_id": user_id, - "username": username or "指挥官", - "date_str": date_str, - "title": title, - "star_count": star_num, - "max_stars": 7, - "description": desc, - "extra_message": extra, - "theme_color": theme, - "image_cached": False, - "img_url": None, - } - - def _get_cache_path(self, user_id: str, date_str: str) -> Path: - """获取用户图片缓存路径。""" - return self.cache_dir / f"{user_id}_{date_str}.jpg" - - async def _cleanup_expired_cache(self) -> int: - """清理过期的缓存文件(非今天的)。 - - 使用 _last_cleanup_date 避免同一天重复清理。 - """ - today = datetime.date.today().isoformat() - - # 检查是否已经清理过今天 - if self._last_cleanup_date == today: - return 0 - - removed = 0 - removed_size = 0 - - try: - async with self._cache_lock: - for file_path in self.cache_dir.iterdir(): - if not file_path.is_file(): - continue - - # 解析文件名中的日期 (格式: {user_id}_{date}.jpg) - try: - # 提取日期部分,假设格式为 user_id_YYYY-MM-DD.jpg - file_name = file_path.stem # 去掉 .jpg - parts = file_name.rsplit( - "_", 1 - ) # 从右边分割,得到 [user_id, date] - - if len(parts) >= 2: - file_date = parts[-1] - # 验证日期格式 - if file_date != today: - # 非今天的缓存,删除 - file_size = file_path.stat().st_size - file_path.unlink() - removed += 1 - removed_size += file_size - else: - # 无法解析的文件名,也删除 - file_size = file_path.stat().st_size - file_path.unlink() - removed += 1 - removed_size += file_size - except (OSError, ValueError): - # 删除异常文件 - try: - file_size = file_path.stat().st_size - file_path.unlink() - removed += 1 - removed_size += file_size - except OSError: - pass - - # 更新最后清理日期 - if removed > 0: - logger.info( - "[fortune] Cleaned up %d expired cache files (%.2f MB)", - removed, - removed_size / 1024 / 1024, - ) - else: - logger.debug("[fortune] No expired cache files to clean") - - self._last_cleanup_date = today - - except OSError as exc: - logger.warning("[fortune] Failed to cleanup cache: %s", exc) - - return removed - - async def get_today_fortune( - self, user_id: str, username: str, group_id: str | None = None - ) -> dict[str, Any] | None: - """获取今日运势。 - - 仅查询今天的记录;如果今天尚未生成,则立即生成并保存。 - 每次获取都会更新 last_view_date。 - - 参数: - user_id: 用户ID - username: 用户名 - group_id: 群组ID(可选,用于群维度运势管理) - - 返回: - 运势数据字典 - """ - import aiosqlite - - today_str = datetime.date.today().isoformat() - - # 先检查并清理过期缓存(每天只执行一次) - await self._cleanup_expired_cache() - - async with self._db_lock: - async with aiosqlite.connect(str(self.db_path)) as db: - # 仅查询今天的记录 - cursor = await db.execute( - "SELECT title, stars, desc_text, extra, theme, image_cached, img_url " - "FROM fortune_data WHERE user_id = ? AND date_str = ?", - (user_id, today_str), - ) - row = await cursor.fetchone() - - if row: - # 今天已有运势,更新最后查看日期并返回 - await db.execute( - "UPDATE fortune_data SET last_view_date = ?, group_id = COALESCE(?, group_id) WHERE user_id = ? AND date_str = ?", - (today_str, group_id, user_id, today_str), - ) - await db.commit() - return { - "user_id": user_id, - "username": username, - "date_str": today_str, - "title": row[0], - "star_count": row[1], - "max_stars": 7, - "description": row[2], - "extra_message": row[3], - "theme_color": row[4], - "image_cached": bool(row[5]), - "img_url": row[6], - } - - # 今天没有记录,生成新运势 - fortune = self._generate_fortune(user_id, username, today_str) - - # 保存到数据库(包含 group_id 和 last_view_date) - await db.execute( - "INSERT OR REPLACE INTO fortune_data " - "(user_id, date_str, title, stars, desc_text, extra, theme, image_cached, img_url, last_view_date, group_id) " - "VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", - ( - user_id, - today_str, - fortune["title"], - fortune["star_count"], - fortune["description"], - fortune["extra_message"], - fortune["theme_color"], - 0, - None, - today_str, - group_id, - ), - ) - await db.commit() - - return fortune - - async def update_fortune_image_cache( - self, user_id: str, date_str: str, image_data: bytes, img_url: str | None = None - ) -> Path: - """更新运势图片缓存。""" - cache_path = self._get_cache_path(user_id, date_str) - - async with self._cache_lock: - await asyncio.to_thread(cache_path.write_bytes, image_data) - - # 更新数据库标记 - import aiosqlite - - async with self._db_lock: - async with aiosqlite.connect(str(self.db_path)) as db: - await db.execute( - "UPDATE fortune_data SET image_cached = 1, img_url = ? " - "WHERE user_id = ? AND date_str = ?", - (img_url, user_id, date_str), - ) - await db.commit() - - return cache_path - - async def get_cached_image(self, user_id: str, date_str: str) -> bytes | None: - """获取缓存的图片数据。""" - cache_path = self._get_cache_path(user_id, date_str) - - try: - async with self._cache_lock: - if cache_path.exists(): - return await asyncio.to_thread(cache_path.read_bytes) - except OSError: - pass - return None - - async def refresh_fortune(self, user_id: str, username: str) -> dict[str, Any]: - """刷新用户今日运势(生成新的)。""" - import aiosqlite - - date_str = datetime.date.today().isoformat() - - # 生成新运势 - fortune = self._generate_fortune(user_id, username, date_str) - - # 更新数据库(包含 last_view_date) - async with self._db_lock: - async with aiosqlite.connect(str(self.db_path)) as db: - await db.execute( - "INSERT OR REPLACE INTO fortune_data " - "(user_id, date_str, title, stars, desc_text, extra, theme, image_cached, img_url, last_view_date) " - "VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", - ( - user_id, - date_str, - fortune["title"], - fortune["star_count"], - fortune["description"], - fortune["extra_message"], - fortune["theme_color"], - 0, - None, - date_str, # 刷新时更新 last_view_date - ), - ) - await db.commit() - - # 删除旧缓存 - cache_path = self._get_cache_path(user_id, date_str) - try: - cache_path.unlink(missing_ok=True) - except OSError: - pass - - return fortune - - async def refresh_group_fortune(self, group_id: str) -> int: - """刷新指定群的所有今日运势。 - - 返回: - 被刷新的记录数量 - """ - import aiosqlite - - date_str = datetime.date.today().isoformat() - - async with self._db_lock: - async with aiosqlite.connect(str(self.db_path)) as db: - # 获取今天该群的所有记录(group_id 匹配或 NULL) - cursor = await db.execute( - "SELECT user_id FROM fortune_data WHERE date_str = ? AND (group_id = ? OR group_id IS NULL)", - (date_str, group_id), - ) - rows = await cursor.fetchall() - - # 删除这些记录 - await db.execute( - "DELETE FROM fortune_data WHERE date_str = ? AND (group_id = ? OR group_id IS NULL)", - (date_str, group_id), - ) - await db.commit() - - # 清理缓存文件(只清理该群用户的缓存) - async with self._cache_lock: - for file_path in self.cache_dir.iterdir(): - if file_path.is_file() and date_str in file_path.name: - # 检查是否属于该群用户 - user_id_from_file = ( - file_path.stem.split("_")[0] if "_" in file_path.stem else None - ) - if user_id_from_file and any( - row[0] == user_id_from_file for row in rows - ): - try: - file_path.unlink() - except OSError: - pass - - logger.info( - "[fortune] Refreshed %d fortunes for group %s on date %s", - len(rows), - group_id, - date_str, - ) - return len(rows) - - async def refresh_all_fortune(self) -> int: - """刷新全局今日运势。 - - 返回: - 被删除的记录数量 - """ - import aiosqlite - - date_str = datetime.date.today().isoformat() - - async with self._db_lock: - async with aiosqlite.connect(str(self.db_path)) as db: - cursor = await db.execute( - "SELECT COUNT(*) FROM fortune_data WHERE date_str = ?", - (date_str,), - ) - row = await cursor.fetchone() - count = row[0] if row else 0 - - await db.execute( - "DELETE FROM fortune_data WHERE date_str = ?", - (date_str,), - ) - await db.commit() - - # 清理所有今天的缓存文件 - async with self._cache_lock: - for file_path in self.cache_dir.iterdir(): - if file_path.is_file() and date_str in file_path.name: - try: - file_path.unlink() - except OSError: - pass - - logger.info("[fortune] Refreshed all %d fortunes for date %s", count, date_str) - return count - - def format_stars(self, count: int, max_count: int = 7) -> str: - """格式化星级显示。""" - filled = "★" * count - empty = "☆" * (max_count - count) - return filled + empty diff --git a/fortune/handlers.py b/fortune/handlers.py deleted file mode 100644 index 3d92a2f..0000000 --- a/fortune/handlers.py +++ /dev/null @@ -1,425 +0,0 @@ -"""今日运势命令处理器。""" - -from __future__ import annotations - -from typing import TYPE_CHECKING - -from astrbot.api import logger -from astrbot.api.event import AstrMessageEvent - -if TYPE_CHECKING: - from ..config import SetuConfig - from ..core import SetuCore - from .core import FortuneCore - from .renderer import FortuneRenderer - from .session_config import FortuneSessionConfig - - -class FortuneCommandHandler: - """今日运势命令处理器。""" - - def __init__( - self, - core: SetuCore, - config: SetuConfig, - fortune_core: FortuneCore, - fortune_renderer: FortuneRenderer, - session_config: FortuneSessionConfig, - ): - self._core = core - self._config = config - self._fortune_core = fortune_core - self._fortune_renderer = fortune_renderer - self._session_config = session_config - - @staticmethod - def _check_admin(event: AstrMessageEvent) -> bool: - """检查用户是否为管理员。""" - try: - if hasattr(event, "is_admin") and callable(getattr(event, "is_admin")): - if event.is_admin(): - return True - if hasattr(event, "is_super_user") and callable( - getattr(event, "is_super_user") - ): - if event.is_super_user(): - return True - if hasattr(event, "message_obj"): - msg_obj = event.message_obj - if hasattr(msg_obj, "sender") and hasattr(msg_obj.sender, "role"): - role = msg_obj.sender.role - if role in ("admin", "owner"): - return True - except AttributeError: - pass - return False - - async def _get_image_for_fortune(self, event: AstrMessageEvent) -> bytes | None: - """获取今日运势的图片。 - - 使用 Setu 插件的图片供应商,根据配置获取图片。 - """ - session_id = event.get_session_id() - is_group = bool(event.get_group_id()) - - # 获取生效的配置 - fortune_cfg = getattr(self._config, "fortune", {}) - global_tags = ( - fortune_cfg.get("tags", "") if isinstance(fortune_cfg, dict) else "" - ) - global_mode = ( - fortune_cfg.get("content_mode", "sfw") - if isinstance(fortune_cfg, dict) - else "sfw" - ) - - tags_str = await self._session_config.get_effective_tags( - session_id, is_group, global_tags - ) - content_mode = await self._session_config.get_effective_content_mode( - session_id, is_group, global_mode - ) - - # 解析标签 - tags = [t.strip() for t in tags_str.split(",") if t.strip()] if tags_str else [] - - # 确定 R18 - import random - - is_r18 = False - if content_mode == "r18": - is_r18 = True - elif content_mode == "mix": - is_r18 = random.random() > 0.5 - - logger.debug( - "[fortune] Getting image: tags=%s, mode=%s, is_r18=%s", - tags, - content_mode, - is_r18, - ) - - try: - # 使用 SetuCore 的 fortune_provider 获取图片 - provider = self._core._get_fortune_provider() - if not provider: - logger.error("[fortune] No provider available") - return None - - # 获取 1 张图片 URL - img_urls = await provider.fetch_image_urls( - num=1, tags=tags, r18=is_r18, exclude_ai=self._config.exclude_ai - ) - - if not img_urls: - logger.warning("[fortune] No image URLs returned") - return None - - # 下载图片 - downloaded = await self._core.fetch_and_download_images(1, tags, is_r18) - - if downloaded and len(downloaded) > 0: - return downloaded[0] - - except Exception as exc: - logger.exception("[fortune] Failed to get image: %s", exc) - - return None - - async def handle_fortune(self, event: AstrMessageEvent): - """处理 /jrys 或 /今日运势 命令。""" - # 检查全局黑白名单和运势功能级黑名单 - if self._core.is_group_blocked(event, feature="fortune"): - return - - user_id = event.get_sender_id() - username = event.get_sender_name() or user_id - group_id = event.get_group_id() - - # 获取今日运势数据 - fortune = await self._fortune_core.get_today_fortune( - user_id, username, group_id - ) - if not fortune: - yield event.plain_result("运势获取失败,请稍后重试。") - return - - # 检查是否已有缓存的渲染图片 - cached_image = await self._fortune_core.get_cached_image( - user_id, fortune["date_str"] - ) - - if cached_image: - # 使用缓存的图片 - logger.debug("[fortune] Using cached image for %s", user_id) - import astrbot.api.message_components as Comp - - yield event.chain_result([Comp.Image.fromBytes(cached_image)]) - return - - try: - # 获取图片 - image_data = await self._get_image_for_fortune(event) - - if not image_data: - # 图片获取失败,发送文字版运势 - logger.warning("[fortune] Failed to get image, sending text version") - stars = "★" * fortune["star_count"] + "☆" * (7 - fortune["star_count"]) - msg = ( - f"【今日运势】\n" - f"用户:{fortune['username']}\n" - f"日期:{fortune['date_str']}\n" - f"运势:{fortune['title']}\n" - f"星级:{stars}\n" - f"\n{fortune['description']}" - ) - yield event.plain_result(msg) - return - - # 转换为 base64 用于渲染 - import base64 - - image_base64 = base64.b64encode(image_data).decode("utf-8") - - # 获取 AstrBot 的 html_render 方法 - html_renderer = None - if ( - hasattr(self._core, "plugin") - and self._core.plugin - and hasattr(self._core.plugin, "html_render") - ): - html_renderer = self._core.plugin.html_render - - if not html_renderer: - # 没有 HTML 渲染器,发送文字版运势 - logger.warning( - "[fortune] No HTML renderer available, sending text version" - ) - stars = "★" * fortune["star_count"] + "☆" * (7 - fortune["star_count"]) - msg = ( - f"【今日运势】\n" - f"用户:{fortune['username']}\n" - f"日期:{fortune['date_str']}\n" - f"运势:{fortune['title']}\n" - f"星级:{stars}\n" - f"\n{fortune['description']}" - ) - yield event.plain_result(msg) - return - - # 渲染为图片(使用 Jinja2 模板引擎) - logger.debug("[fortune] Rendering image with html_renderer...") - rendered_image = await self._fortune_renderer.render_to_image( - fortune=fortune, image_base64=image_base64, html_renderer=html_renderer - ) - - if not rendered_image: - logger.warning( - "[fortune] Image render returned None/empty, sending text version" - ) - stars = "★" * fortune["star_count"] + "☆" * (7 - fortune["star_count"]) - msg = ( - f"【今日运势】\n" - f"用户:{fortune['username']}\n" - f"日期:{fortune['date_str']}\n" - f"运势:{fortune['title']}\n" - f"星级:{stars}\n" - f"\n{fortune['description']}" - ) - yield event.plain_result(msg) - return - - logger.debug( - "[fortune] Image rendered successfully: %d bytes", len(rendered_image) - ) - - # 保存到缓存 - await self._fortune_core.update_fortune_image_cache( - user_id, fortune["date_str"], rendered_image - ) - - # 发送图片 - import astrbot.api.message_components as Comp - - yield event.chain_result([Comp.Image.fromBytes(rendered_image)]) - - except Exception as exc: - logger.exception("[fortune] Failed to process fortune: %s", exc) - yield event.plain_result("今日运势生成失败,请稍后重试。") - - async def handle_refresh_fortune(self, event: AstrMessageEvent): - """处理 /刷新今日运势 命令(个人)。""" - if not self._check_admin(event): - # 检查配置是否允许非管理员刷新 - fortune_cfg = getattr(self._config, "fortune", {}) - allow_refresh = ( - fortune_cfg.get("allow_user_refresh", False) - if isinstance(fortune_cfg, dict) - else False - ) - if not allow_refresh: - yield event.plain_result("只有管理员可以刷新运势。") - return - - user_id = event.get_sender_id() - username = event.get_sender_name() or user_id - - try: - # 刷新运势 - await self._fortune_core.refresh_fortune(user_id, username) - yield event.plain_result( - "已刷新你的今日运势,发送 今日运势 或 jrys 查看新的运势。" - ) - except Exception as exc: - logger.exception("[fortune] Failed to refresh fortune: %s", exc) - yield event.plain_result("刷新失败,请稍后重试。") - - async def handle_refresh_group_fortune(self, event: AstrMessageEvent): - """处理 /刷新本群今日运势 命令(仅管理员)。""" - if not self._check_admin(event): - yield event.plain_result("只有管理员可以刷新群组运势。") - return - - group_id = event.get_group_id() - if not group_id: - yield event.plain_result("此命令只能在群聊中使用。") - return - - try: - # 刷新群组运势(删除该群所有今天的记录) - count = await self._fortune_core.refresh_group_fortune(str(group_id)) - yield event.plain_result( - f"已刷新本群今日运势,共 {count} 条记录将被重新生成。" - ) - except Exception as exc: - logger.exception("[fortune] Failed to refresh group fortune: %s", exc) - yield event.plain_result("刷新失败,请稍后重试。") - - async def handle_refresh_all_fortune(self, event: AstrMessageEvent): - """处理 /刷新全局今日运势 命令(仅管理员)。""" - if not self._check_admin(event): - yield event.plain_result("只有管理员可以刷新全局运势。") - return - - try: - count = await self._fortune_core.refresh_all_fortune() - yield event.plain_result( - f"已刷新全局今日运势,共 {count} 条记录将被重新生成。" - ) - except Exception as exc: - logger.exception("[fortune] Failed to refresh all fortune: %s", exc) - yield event.plain_result("刷新失败,请稍后重试。") - - async def handle_fortune_config(self, event: AstrMessageEvent, args: str = ""): - """处理 /jrys_config 命令(配置今日运势)。""" - if not self._check_admin(event): - yield event.plain_result("只有管理员可以配置今日运势。") - return - - session_id = event.get_session_id() - is_group = bool(event.get_group_id()) - - args = args.strip() - if not args: - # 显示当前配置 - async for result in self._show_fortune_config(event): - yield result - return - - # 解析命令(只将命令部分转为小写) - parts = args.split(maxsplit=1) - cmd = parts[0].lower() - value = parts[1] if len(parts) > 1 else "" - - if cmd == "tags": - # 设置标签(标签保持原样,不转小写) - if value: - success = await self._session_config.set_session_tags( - session_id, is_group, value - ) - if success: - yield event.plain_result(f"✅ 已设置今日运势标签为:{value}") - else: - yield event.plain_result("❌ 设置失败。") - else: - # 清除标签 - success = await self._session_config.clear_session_tags( - session_id, is_group - ) - if success: - yield event.plain_result("✅ 已清除今日运势标签设置。") - else: - yield event.plain_result("ℹ️ 当前没有标签设置。") - - elif cmd == "mode": - # 设置内容模式 - value_lower = value.lower() - if value_lower in ("sfw", "r18", "mix"): - success = await self._session_config.set_session_content_mode( - session_id, is_group, value_lower - ) - if success: - yield event.plain_result( - f"✅ 已设置今日运势内容模式为:{value_lower}" - ) - else: - yield event.plain_result("❌ 设置失败。") - elif value_lower == "clear": - success = await self._session_config.clear_session_content_mode( - session_id, is_group - ) - if success: - yield event.plain_result("✅ 已清除今日运势内容模式设置。") - else: - yield event.plain_result("ℹ️ 当前没有内容模式设置。") - else: - yield event.plain_result( - "❌ 无效的模式。可用:sfw(全年龄)、r18(成人)、mix(混合)、clear(清除)" - ) - else: - yield event.plain_result( - "用法:/jrys_config tags <标签> | /jrys_config mode " - ) - - async def _show_fortune_config(self, event: AstrMessageEvent): - """显示当前今日运势配置。""" - session_id = event.get_session_id() - is_group = bool(event.get_group_id()) - - session_tags = await self._session_config.get_session_tags(session_id, is_group) - session_mode = await self._session_config.get_session_content_mode( - session_id, is_group - ) - - fortune_cfg = getattr(self._config, "fortune", {}) - global_tags = ( - fortune_cfg.get("tags", "未设置") - if isinstance(fortune_cfg, dict) - else "未设置" - ) - global_mode = ( - fortune_cfg.get("content_mode", "sfw") - if isinstance(fortune_cfg, dict) - else "sfw" - ) - - effective_tags = session_tags if session_tags is not None else global_tags - effective_mode = session_mode if session_mode else global_mode - - session_type = "群聊" if is_group else "私聊" - - msg = ( - f"📋 今日运势配置({session_type})\n\n" - f"标签设置:\n" - f" 会话覆盖:{session_tags if session_tags is not None else '未设置'}\n" - f" 全局配置:{global_tags}\n" - f" 生效标签:{effective_tags}\n\n" - f"内容模式:\n" - f" 会话覆盖:{session_mode if session_mode else '未设置'}\n" - f" 全局配置:{global_mode}\n" - f" 生效模式:{effective_mode}\n\n" - f"命令:\n" - f" /jrys_config tags <标签> - 设置标签\n" - f" /jrys_config mode - 设置内容模式" - ) - yield event.plain_result(msg) diff --git a/fortune/llm_handlers.py b/fortune/llm_handlers.py deleted file mode 100644 index 59ce38e..0000000 --- a/fortune/llm_handlers.py +++ /dev/null @@ -1,441 +0,0 @@ -"""今日运势 LLM 工具处理器。""" - -from __future__ import annotations - -import base64 -from typing import TYPE_CHECKING - -import astrbot.api.message_components as Comp -from astrbot.api import logger -from astrbot.api.event import AstrMessageEvent -from astrbot.core.message.message_event_result import MessageChain - -if TYPE_CHECKING: - from ..core import SetuCore - from .core import FortuneCore - from .session_config import FortuneSessionConfig - - -class FortuneLlmHandler: - """今日运势 LLM 工具处理器。""" - - def __init__( - self, - setu_plugin, - core: SetuCore, - fortune_core: FortuneCore, - session_config: FortuneSessionConfig, - ): - self._setu_plugin = setu_plugin - self._core = core - self._fortune_core = fortune_core - self._session_config = session_config - self._renderer = None - - @staticmethod - async def _check_admin(event: AstrMessageEvent) -> bool: - """检查用户是否为管理员。""" - try: - if hasattr(event, "is_admin") and callable(getattr(event, "is_admin")): - if event.is_admin(): - return True - if hasattr(event, "is_super_user") and callable( - getattr(event, "is_super_user") - ): - if event.is_super_user(): - return True - except AttributeError: - pass - return False - - @staticmethod - async def _check_super_admin(event: AstrMessageEvent) -> bool: - """检查用户是否为超级管理员。""" - try: - if hasattr(event, "is_super_user") and callable( - getattr(event, "is_super_user") - ): - if event.is_super_user(): - return True - except AttributeError: - pass - return False - - async def _get_image_for_fortune(self, event: AstrMessageEvent) -> bytes | None: - """获取今日运势的背景图片。 - - 使用 Setu 插件的图片供应商,根据配置获取图片。 - """ - session_id = event.get_session_id() - is_group = bool(event.get_group_id()) - - # 获取生效的配置 - - config = self._setu_plugin.config - fortune_cfg = getattr(config, "fortune", {}) - global_tags = ( - fortune_cfg.get("tags", "") if isinstance(fortune_cfg, dict) else "" - ) - global_mode = ( - fortune_cfg.get("content_mode", "sfw") - if isinstance(fortune_cfg, dict) - else "sfw" - ) - - tags_str = await self._session_config.get_effective_tags( - session_id, is_group, global_tags - ) - content_mode = await self._session_config.get_effective_content_mode( - session_id, is_group, global_mode - ) - - # 解析标签 - tags = [t.strip() for t in tags_str.split(",") if t.strip()] if tags_str else [] - - # 确定 R18 - import random - - is_r18 = False - if content_mode == "r18": - is_r18 = True - elif content_mode == "mix": - is_r18 = random.random() > 0.5 - - logger.debug( - "[fortune_llm] Getting image: tags=%s, mode=%s, is_r18=%s", - tags, - content_mode, - is_r18, - ) - - try: - # 使用 SetuCore 的 provider 获取图片 - provider = self._core._get_provider() - if not provider: - logger.error("[fortune_llm] No provider available") - return None - - # 获取图片 - downloaded = await self._core.fetch_and_download_images(1, tags, is_r18) - - if downloaded and len(downloaded) > 0: - return downloaded[0] - - except Exception as exc: - logger.exception("[fortune_llm] Failed to get image: %s", exc) - - return None - - async def _send_fortune_image(self, event: AstrMessageEvent, fortune: dict) -> bool: - """生成并发送运势图片给用户。 - - 参数: - event: 消息事件 - fortune: 运势数据 - - 返回: - 是否成功发送图片 - """ - try: - # 初始化 renderer - if self._renderer is None: - from .renderer import FortuneRenderer - - self._renderer = FortuneRenderer() - - # 获取 HTML 渲染器 - html_renderer = None - if hasattr(self._setu_plugin, "html_render"): - html_renderer = self._setu_plugin.html_render - - if not html_renderer: - logger.warning("[fortune_llm] No HTML renderer available") - return False - - # 获取背景图片 - image_data = await self._get_image_for_fortune(event) - image_base64 = "" - if image_data: - image_base64 = base64.b64encode(image_data).decode("utf-8") - - # 渲染运势图片 - rendered_image = await self._renderer.render_to_image( - fortune=fortune, image_base64=image_base64, html_renderer=html_renderer - ) - - if not rendered_image: - logger.warning("[fortune_llm] Failed to render fortune image") - return False - - # 保存到缓存 - user_id = event.get_sender_id() - await self._fortune_core.update_fortune_image_cache( - user_id, fortune["date_str"], rendered_image - ) - - # 发送图片 - message_chain = MessageChain([Comp.Image.fromBytes(rendered_image)]) - await self._setu_plugin.context.send_message( - event.unified_msg_origin, - message_chain, - ) - return True - - except Exception as exc: - logger.exception("[fortune_llm] Failed to send fortune image: %s", exc) - return False - - async def llm_get_fortune(self, event: AstrMessageEvent, **kwargs) -> dict: - """LLM 工具:获取今日运势。 - - 返回用户的今日运势信息,并发送运势图片给用户。 - """ - user_id = event.get_sender_id() - username = event.get_sender_name() or user_id - group_id = event.get_group_id() - - try: - fortune = await self._fortune_core.get_today_fortune( - user_id, username, group_id - ) - - if not fortune: - return { - "success": False, - "message": "无法获取今日运势,请稍后重试。", - } - - # 检查是否已有缓存的渲染图片 - cached_image = await self._fortune_core.get_cached_image( - user_id, fortune["date_str"] - ) - - if cached_image: - # 使用缓存的图片 - logger.debug("[fortune_llm] Using cached image for %s", user_id) - message_chain = MessageChain([Comp.Image.fromBytes(cached_image)]) - await self._setu_plugin.context.send_message( - event.unified_msg_origin, - message_chain, - ) - else: - # 没有缓存,生成新图片 - logger.debug( - "[fortune_llm] No cached image, generating new one for %s", user_id - ) - await self._send_fortune_image(event, fortune) - - return { - "success": True, - "fortune": { - "title": fortune["title"], - "stars": fortune["star_count"], - "max_stars": fortune["max_stars"], - "description": fortune["description"], - "extra": fortune["extra_message"], - "date": fortune["date_str"], - }, - "message": f"今日运势:{fortune['title']}({fortune['star_count']}星)\n{fortune['description']}", - } - except Exception as exc: - logger.exception("[fortune_llm] Failed to get fortune: %s", exc) - return { - "success": False, - "message": "获取运势时出错,请稍后重试。", - } - - async def llm_refresh_fortune(self, event: AstrMessageEvent, **kwargs) -> dict: - """LLM 工具:刷新今日运势。 - - 刷新用户的今日运势(管理员或配置允许时)。 - """ - user_id = event.get_sender_id() - username = event.get_sender_name() or user_id - - # 检查权限 - is_admin = await self._check_admin(event) - if not is_admin: - return { - "success": False, - "message": "只有管理员可以刷新运势。", - } - - try: - await self._fortune_core.refresh_fortune(user_id, username) - return { - "success": True, - "message": "已成功刷新今日运势,可以重新获取查看。", - } - except Exception as exc: - logger.exception("[fortune_llm] Failed to refresh fortune: %s", exc) - return { - "success": False, - "message": "刷新运势时出错,请稍后重试。", - } - - async def llm_refresh_group_fortune( - self, event: AstrMessageEvent, **kwargs - ) -> dict: - """LLM 工具:刷新群组今日运势。 - - 刷新当前群组所有成员的今日运势(仅管理员)。 - """ - # 检查权限 - is_admin = await self._check_admin(event) - if not is_admin: - return { - "success": False, - "message": "只有管理员可以刷新群组运势。", - } - - group_id = event.get_group_id() - if not group_id: - return { - "success": False, - "message": "此操作只能在群聊中进行。", - } - - try: - count = await self._fortune_core.refresh_group_fortune(str(group_id)) - return { - "success": True, - "message": f"已成功刷新本群今日运势,共 {count} 条记录将被重新生成。", - } - except Exception as exc: - logger.exception("[fortune_llm] Failed to refresh group fortune: %s", exc) - return { - "success": False, - "message": "刷新群组运势时出错,请稍后重试。", - } - - async def llm_refresh_all_fortune(self, event: AstrMessageEvent, **kwargs) -> dict: - """LLM 工具:刷新全局今日运势。 - - 刷新所有用户的今日运势(仅超级管理员)。 - """ - # 检查权限:仅允许超级管理员 - is_super_admin = await self._check_super_admin(event) - if not is_super_admin: - return { - "success": False, - "message": "只有超级管理员可以刷新全局运势。", - } - - try: - count = await self._fortune_core.refresh_all_fortune() - return { - "success": True, - "message": f"已成功刷新全局今日运势,共 {count} 条记录将被重新生成。", - } - except Exception as exc: - logger.exception("[fortune_llm] Failed to refresh all fortune: %s", exc) - return { - "success": False, - "message": "刷新全局运势时出错,请稍后重试。", - } - - async def llm_get_fortune_config(self, event: AstrMessageEvent, **kwargs) -> dict: - """LLM 工具:获取今日运势配置。 - - 返回当前会话的今日运势配置信息。 - """ - session_id = event.get_session_id() - is_group = bool(event.get_group_id()) - - session_tags = await self._session_config.get_session_tags(session_id, is_group) - session_mode = await self._session_config.get_session_content_mode( - session_id, is_group - ) - - config = self._setu_plugin.config - fortune_cfg = getattr(config, "fortune", {}) - global_tags = ( - fortune_cfg.get("tags", "未设置") - if isinstance(fortune_cfg, dict) - else "未设置" - ) - global_mode = ( - fortune_cfg.get("content_mode", "sfw") - if isinstance(fortune_cfg, dict) - else "sfw" - ) - - effective_tags = session_tags if session_tags is not None else global_tags - effective_mode = session_mode if session_mode else global_mode - - return { - "success": True, - "config": { - "session_tags": session_tags, - "global_tags": global_tags, - "effective_tags": effective_tags, - "session_mode": session_mode, - "global_mode": global_mode, - "effective_mode": effective_mode, - }, - "message": ( - f"当前今日运势配置:\n" - f"标签:{effective_tags}\n" - f"内容模式:{effective_mode}" - ), - } - - async def llm_set_fortune_config( - self, - event: AstrMessageEvent, - tags: str | None = None, - mode: str | None = None, - **kwargs, - ) -> dict: - """LLM 工具:设置今日运势配置。 - - 设置当前会话的今日运势标签或内容模式(仅管理员)。 - - 参数: - tags: 标签字符串,如 "少女,可爱" - mode: 内容模式,可选 sfw、r18、mix - """ - # 检查权限 - is_admin = await self._check_admin(event) - if not is_admin: - return { - "success": False, - "message": "只有管理员可以配置今日运势。", - } - - session_id = event.get_session_id() - is_group = bool(event.get_group_id()) - - results = [] - - if tags is not None: - if tags == "": - # 清除标签 - await self._session_config.clear_session_tags(session_id, is_group) - results.append("已清除标签设置") - else: - await self._session_config.set_session_tags(session_id, is_group, tags) - results.append(f"已设置标签为:{tags}") - - if mode is not None: - if mode in ("sfw", "r18", "mix"): - await self._session_config.set_session_content_mode( - session_id, is_group, mode - ) - results.append(f"已设置内容模式为:{mode}") - else: - return { - "success": False, - "message": f"无效的内容模式:{mode},可选:sfw、r18、mix", - } - - if not results: - return { - "success": False, - "message": "请提供要设置的参数:tags 或 mode", - } - - return { - "success": True, - "message": ";".join(results), - } diff --git a/fortune/renderer.py b/fortune/renderer.py deleted file mode 100644 index 2497ab5..0000000 --- a/fortune/renderer.py +++ /dev/null @@ -1,265 +0,0 @@ -"""今日运势 HTML 渲染模块。""" - -from __future__ import annotations - -import base64 -from pathlib import Path -from typing import Any - -from astrbot.api import logger - - -class FortuneRenderer: - """运势卡片渲染器。""" - - def __init__(self, template_path: Path | None = None): - if template_path is None: - template_path = Path(__file__).parent.parent / "templates" / "fortune.html" - self.template_path = template_path - self._fonts_dir = self.template_path.parent / "res" / "fonts" - self._embedded_fonts_css: str | None = None - - def _get_embedded_fonts_css(self) -> str: - """生成内嵌字体的 CSS(使用 base64)。 - - 字体文件会被缓存,避免重复读取。 - """ - if self._embedded_fonts_css is not None: - return self._embedded_fonts_css - - fonts_config = [ - { - "name": "NotoSansSC-Regular", - "file": "NotoSansSC-Regular.woff2", - "format": "woff2", - "mime": "font/woff2", - }, - { - "name": "NotoSansSC-Bold", - "file": "NotoSansSC-Bold.woff2", - "format": "woff2", - "mime": "font/woff2", - }, - { - "name": "SSFangTangTi", - "file": "SSFangTangTi.woff2", - "format": "woff2", - "mime": "font/woff2", - }, - ] - - css_parts = [" /* Embedded fonts - auto-generated */"] - - for font in fonts_config: - font_path = self._fonts_dir / font["file"] - try: - if font_path.exists(): - font_data = font_path.read_bytes() - b64_data = base64.b64encode(font_data).decode("ascii") - css_parts.append(f""" @font-face {{ - font-family: '{font["name"]}'; - src: url('data:{font["mime"]};base64,{b64_data}') format('{font["format"]}'); - font-weight: normal; - font-style: normal; - font-display: swap; - }}""") - else: - logger.warning("[fortune] Font file not found: %s", font_path) - except OSError as exc: - logger.error("[fortune] Failed to read font %s: %s", font["file"], exc) - - self._embedded_fonts_css = "\n".join(css_parts) - return self._embedded_fonts_css - - @staticmethod - def _truncate_username(username: str, max_length: int = 15) -> str: - """截断用户名,超过最大长度时用...省略。 - - 参数: - username: 原始用户名 - max_length: 最大字符数,默认15 - - 返回: - 截断后的用户名 - """ - if len(username) > max_length: - return username[:max_length] + "..." - return username - - def _get_template(self) -> str: - try: - return self.template_path.read_text(encoding="utf-8") - except OSError as exc: - logger.error("[fortune] Failed to read template: %s", exc) - # 返回一个极简的备用模板 - return """ - -
-

{{ username }} 的今日运势 ({{ date_str }})

-

运势: {{ title }}

-

星级: {{ stars_display }}

-

{{ description }}

-
""" - - def render(self, fortune: dict[str, Any], image_base64: str | None = None) -> str: - """渲染运势卡片为 HTML 字符串。 - - 参数: - fortune: 运势数据 - image_base64: 背景图片的 base64 编码(可选) - - 返回: - HTML 字符串(包含内嵌字体,适用于 Playwright 截图) - """ - template = self._get_template() - - # 构建渲染数据(包含内嵌字体 CSS) - username = self._truncate_username(fortune.get("username", "用户")) - data = { - "fonts_css": self._get_embedded_fonts_css(), - "username": username, - "date_str": fortune.get("date_str", ""), - "title": fortune.get("title", "未知"), - "stars_display": self._format_stars( - fortune.get("star_count", 3), fortune.get("max_stars", 7) - ), - "description": fortune.get("description", ""), - "extra_message": fortune.get("extra_message", ""), - "theme_color": fortune.get("theme_color", "theme-gray"), - "image_base64": image_base64 or "", - } - - # 简单的模板渲染(替换 {{ variable }}) - html = template - for key, value in data.items(): - placeholder = f"{{{{ {key} }}}}" - html = html.replace(placeholder, str(value)) - - # 处理条件语句 {% if variable %}...{% endif %} - import re - - # 处理 if 语句 - def process_if(match: re.Match) -> str: - condition = match.group(1).strip() - content = match.group(2) - # 检查条件是否为真(变量存在且非空) - if condition in data and data[condition]: - return content - return "" - - html = re.sub( - r"{%\s*if\s+(\w+)\s*%}(.*?){%\s*endif\s*%}", - process_if, - html, - flags=re.DOTALL, - ) - - return html - - def _format_stars(self, count: int, max_count: int = 7) -> str: - """格式化星级显示为HTML。""" - stars_html = [] - # 填充的星星 - for _ in range(count): - stars_html.append('') - # 空星星 - for _ in range(max_count - count): - stars_html.append('') - return "".join(stars_html) - - async def render_to_image( - self, - fortune: dict[str, Any], - image_base64: str | None = None, - html_renderer=None, - ) -> bytes | None: - """渲染运势卡片为图片。 - - 使用 AstrBot 的 T2I 服务(Jinja2 模板引擎)。 - - 参数: - fortune: 运势数据 - image_base64: 背景图片 base64 - html_renderer: HTML 渲染器(AstrBot context 的 html_render 方法) - - 返回: - 图片字节数据,失败返回 None - """ - if html_renderer is None: - logger.error("[fortune] No HTML renderer available") - return None - - try: - # 读取 HTML 模板(使用 Jinja2 语法) - template = self._get_template() - - # 准备模板数据(通过 data 参数传递给 Jinja2,包含内嵌字体 CSS) - username = self._truncate_username(fortune.get("username", "用户")) - tmpl_data = { - "fonts_css": self._get_embedded_fonts_css(), - "username": username, - "date_str": fortune.get("date_str", ""), - "title": fortune.get("title", "未知"), - "stars_display": self._format_stars( - fortune.get("star_count", 3), fortune.get("max_stars", 7) - ), - "description": fortune.get("description", ""), - "extra_message": fortune.get("extra_message", ""), - "theme_color": fortune.get("theme_color", "theme-gray"), - "image_base64": image_base64 or "", - } - - # 使用 AstrBot 的 html_render 方法 - # 参考 Playwright screenshot API: https://playwright.dev/python/docs/api/class-page#page-screenshot - render_options = { - "full_page": True, - "type": "png", - "scale": "device", - } - result = await html_renderer( - tmpl=template, data=tmpl_data, return_url=False, options=render_options - ) - - # 处理返回值(可能是文件路径字符串) - if result is None: - logger.error("[fortune] html_render returned None") - return None - - if isinstance(result, str): - # 结果是文件路径 - import asyncio - from pathlib import Path - - path = Path(result) - if path.exists(): - # 检查文件大小 - file_size = path.stat().st_size - logger.debug( - "[fortune] Reading image from path: %s (%d bytes)", - result, - file_size, - ) - if file_size < 100: - logger.error( - "[fortune] Rendered image too small (%d bytes), likely failed", - file_size, - ) - return None - return await asyncio.to_thread(path.read_bytes) - else: - logger.error("[fortune] Rendered file not found: %s", result) - return None - - logger.error( - "[fortune] Unexpected return type from html_render: %s", type(result) - ) - return None - - except NotImplementedError: - logger.error( - "[fortune] HTML rendering not supported by current T2I strategy (local strategy doesn't support custom templates)" - ) - return None - except Exception as exc: - logger.exception("[fortune] Failed to render image: %s", exc) - return None diff --git a/fortune/session_config.py b/fortune/session_config.py deleted file mode 100644 index 28dd530..0000000 --- a/fortune/session_config.py +++ /dev/null @@ -1,237 +0,0 @@ -"""今日运势会话配置管理。 - -支持会话级别的独立配置,包括标签和内容模式。 -配置存储在 AstrBotConfig 的 fortune_session_configs 字段中,可在 WebUI 中管理。 -""" - -from __future__ import annotations - -import asyncio -import json -from pathlib import Path -from typing import TYPE_CHECKING, Any - -from astrbot.api import logger - -from ..session_config_base import SessionConfigBase - -if TYPE_CHECKING: - from astrbot.core import AstrBotConfig - - -class FortuneSessionConfig(SessionConfigBase): - """今日运势会话配置管理器。 - - 配置存储在 AstrBotConfig 的 fortune_session_configs 字段中,可在 WebUI 中管理。 - """ - - # 允许会话覆盖的配置项 - ALLOWED_KEYS = {"tags", "content_mode"} - - # 有效的内容模式值 - VALID_CONTENT_MODES = {"sfw", "r18", "mix"} - - def __init__(self, config: AstrBotConfig, data_dir: Path | None = None): - """初始化配置管理器。 - - 参数: - config: AstrBotConfig 配置对象 - data_dir: 插件数据目录(用于迁移旧配置) - """ - super().__init__(config, config_key="fortune_session_configs") - self._data_dir = data_dir - self._migrated = False - - async def initialize(self) -> None: - """初始化配置,迁移旧配置文件到新格式。""" - if self._data_dir and not self._migrated: - await self._migrate_old_config() - self._migrated = True - logger.info("[fortune_session] Session config initialized") - - async def _migrate_old_config(self) -> None: - """迁移旧位置的配置文件到 AstrBotConfig。""" - old_config_file = self._data_dir / "fortune_session_config.json" - - if not old_config_file.exists(): - return - - try: - content = await asyncio.to_thread( - old_config_file.read_text, encoding="utf-8" - ) - old_data = json.loads(content) - sessions = old_data.get("sessions", {}) - - if not sessions: - return - - # 转换格式到新的 template_list 格式 - new_configs = self._get_configs() - - for session_key, session_data in sessions.items(): - # 解析 session_key (格式: "group:12345" 或 "private:67890") - parsed = self._parse_session_key(session_key) - if not parsed: - continue - - session_type, session_id = parsed - - # 构建新的配置项 - new_item = { - "session_id": session_id, - "session_type": session_type, - } - - # 迁移各配置项 - if "tags" in session_data: - new_item["tags"] = session_data["tags"] - if "content_mode" in session_data: - new_item["content_mode"] = session_data["content_mode"] - - # 检查是否已存在 - self.merge_session_item(new_configs, new_item) - - # 保存迁移后的配置 - self._save_configs(new_configs) - - # 删除旧配置文件 - await asyncio.to_thread(old_config_file.unlink) - logger.info( - "[fortune_session] Migrated old config to AstrBotConfig, %d sessions", - len(new_configs), - ) - except (OSError, json.JSONDecodeError) as exc: - logger.warning("[fortune_session] Failed to migrate old config: %s", exc) - - def _get_session_config(self, session_id: str, is_group: bool) -> dict | None: - """获取会话配置项。""" - return self._find_session_config(session_id, is_group) - - def _get_session_key(self, session_id: str, is_group: bool) -> str: - """生成会话键。""" - prefix = "group" if is_group else "private" - return f"{prefix}:{session_id}" - - async def set_config( - self, session_id: str, is_group: bool, key: str, value: Any - ) -> bool: - """设置会话配置项。""" - if key not in self.ALLOWED_KEYS: - logger.warning("[fortune_session] Key %s is not allowed", key) - return False - - if key == "content_mode" and value not in self.VALID_CONTENT_MODES: - logger.warning("[fortune_session] Invalid content_mode: %s", value) - return False - - async with self._lock: - session_type = "group" if is_group else "private" - configs = self._get_configs() - - # 查找现有配置 - existing_idx = self._find_session_index(configs, session_id, is_group) - - if existing_idx is not None: - # 更新现有配置 - configs[existing_idx][key] = value - else: - # 创建新配置 - new_item = { - "session_id": session_id, - "session_type": session_type, - key: value, - } - configs.append(new_item) - - self._save_configs(configs) - - session_key = self._get_session_key(session_id, is_group) - logger.info("[fortune_session] Set %s=%s for %s", key, value, session_key) - return True - - async def get_config( - self, session_id: str, is_group: bool, key: str, default: Any = None - ) -> Any: - """获取会话配置项。""" - async with self._lock: - cfg = self._get_session_config(session_id, is_group) - if not cfg: - return default - - value = cfg.get(key) - if value is None or value == "": - return default - - return value - - async def clear_config(self, session_id: str, is_group: bool, key: str) -> bool: - """清除会话配置项。""" - async with self._lock: - configs = self._get_configs() - - idx = self._find_session_index(configs, session_id, is_group) - if idx is None: - return False - - cfg = configs[idx] - if key not in cfg: - return False - - del cfg[key] - # 如果配置项都为空,删除整个会话配置 - remaining_keys = [k for k in self.ALLOWED_KEYS if k in cfg] - if not remaining_keys: - configs.pop(idx) - self._save_configs(configs) - session_key = self._get_session_key(session_id, is_group) - logger.info("[fortune_session] Cleared %s for %s", key, session_key) - return True - - async def get_session_tags(self, session_id: str, is_group: bool) -> str | None: - """获取会话的标签配置。""" - return await self.get_config(session_id, is_group, "tags") - - async def set_session_tags( - self, session_id: str, is_group: bool, tags: str - ) -> bool: - """设置会话的标签配置。""" - return await self.set_config(session_id, is_group, "tags", tags) - - async def clear_session_tags(self, session_id: str, is_group: bool) -> bool: - """清除会话的标签配置。""" - return await self.clear_config(session_id, is_group, "tags") - - async def get_session_content_mode( - self, session_id: str, is_group: bool - ) -> str | None: - """获取会话的内容模式配置。""" - return await self.get_config(session_id, is_group, "content_mode") - - async def set_session_content_mode( - self, session_id: str, is_group: bool, mode: str - ) -> bool: - """设置会话的内容模式配置。""" - return await self.set_config(session_id, is_group, "content_mode", mode) - - async def clear_session_content_mode(self, session_id: str, is_group: bool) -> bool: - """清除会话的内容模式配置。""" - return await self.clear_config(session_id, is_group, "content_mode") - - async def get_effective_tags( - self, session_id: str, is_group: bool, global_tags: str - ) -> str: - """获取生效的标签(优先会话配置)。""" - session_tags = await self.get_session_tags(session_id, is_group) - if session_tags is not None: - return session_tags - return global_tags - - async def get_effective_content_mode( - self, session_id: str, is_group: bool, global_mode: str - ) -> str: - """获取生效的内容模式(优先会话配置)。""" - session_mode = await self.get_session_content_mode(session_id, is_group) - if session_mode: - return session_mode - return global_mode diff --git a/handlers/__init__.py b/handlers/__init__.py deleted file mode 100644 index 2e0c164..0000000 --- a/handlers/__init__.py +++ /dev/null @@ -1,8 +0,0 @@ -"""Handlers package.""" - -from __future__ import annotations - -from .command_handlers import CommandHandler -from .llm_handlers import LlmHandlers - -__all__ = ["CommandHandler", "LlmHandlers"] diff --git a/handlers/command_handlers.py b/handlers/command_handlers.py deleted file mode 100644 index 4dc20c6..0000000 --- a/handlers/command_handlers.py +++ /dev/null @@ -1,838 +0,0 @@ -"""命令处理器。""" - -from __future__ import annotations - -import asyncio -import re -from typing import TYPE_CHECKING - -from astrbot.api import logger -from astrbot.api.event import AstrMessageEvent - -from ..config import SetuConfig, parse_count -from ..constants import COMMAND_PATTERN - -if TYPE_CHECKING: - from ..core import SetuCore - - -class CommandHandler: - """命令处理器。""" - - def __init__(self, core: SetuCore, config: SetuConfig): - self._core = core - self._config = config - - def _check_admin(self, event: AstrMessageEvent) -> bool: - """检查用户是否为管理员。""" - try: - if hasattr(event, "is_admin") and callable(getattr(event, "is_admin")): - if event.is_admin(): - return True - if hasattr(event, "is_super_user") and callable( - getattr(event, "is_super_user") - ): - if event.is_super_user(): - return True - if hasattr(event, "message_obj"): - msg_obj = event.message_obj - if hasattr(msg_obj, "sender") and hasattr(msg_obj.sender, "role"): - role = msg_obj.sender.role - if role in ("admin", "owner"): - return True - except AttributeError: - pass - return False - - async def handle_random_picture(self, event: AstrMessageEvent): - """处理色图请求命令。""" - if not self._core: - yield event.plain_result("插件尚未就绪,请稍后再试。") - return - - # 限流检查:每个用户同时只能有一个请求 - if not await self._core.rate_limiter.acquire(event): - yield event.plain_result("你有一个请求正在处理中,请稍后再试~") - return - - try: - async for result in self._handle_random_picture_internal(event): - yield result - finally: - # 无论成功或失败,都释放锁 - await self._core.rate_limiter.release(event) - - async def _handle_random_picture_internal(self, event: AstrMessageEvent): - """处理色图请求命令的内部逻辑。""" - match = re.match(COMMAND_PATTERN, event.message_str.strip()) - if not match: - return - - # 检查全局黑白名单和色图功能级黑名单 - if self._core.is_group_blocked(event, feature="setu"): - return - - num_str = match.group(2) - num = parse_count(num_str) - max_count = self._config.max_count - - if num < 1 or num > max_count: - if num == -1: - yield event.plain_result( - f"数量解析失败,请使用数字或中文数字,图片数量必须在1-{max_count}之间" - ) - elif num > max_count: - yield event.plain_result(f"一次最多只能获取{max_count}张哦~") - else: - yield event.plain_result(f"图片数量必须在1-{max_count}之间哦~") - return - - tag_str = match.group(4).strip() - tags = self._config.resolve_tags(tag_str) - - if self._config.msg_fetching_enabled: - yield event.plain_result(self._config.msg_fetching_text) - - try: - effective_content_mode = await self._core.get_effective_content_mode(event) - is_r18 = self._core.determine_r18(effective_content_mode) - logger.debug("num = %d invoke params = %s , r18 = %s", num, tags, is_r18) - - # 检查是否使用 URL 发送模式 - if self._config.url_send_mode: - # URL 模式:获取 URL 并直接发送 - provider = self._core._get_provider() - if provider: - try: - img_urls = await asyncio.wait_for( - provider.fetch_image_urls( - num=num, - tags=tags, - r18=is_r18, - exclude_ai=self._config.exclude_ai, - ), - timeout=60.0, - ) - except asyncio.TimeoutError: - logger.warning( - "url mode fetch_image_urls timeout (>60s), tags=%s, r18=%s", - tags, - is_r18, - ) - yield event.plain_result("图片获取超时,请稍后重试。") - return - - async for result in self._core.send_images_by_url( - event, img_urls, is_r18, tags - ): - yield result - else: - yield event.plain_result("没有可用的图片源,请联系管理员。") - else: - # 正常模式:下载后发送 - downloaded = await asyncio.wait_for( - self._core.fetch_and_download_images(num, tags, is_r18), - timeout=60.0, - ) - if not downloaded: - tags_info = f"标签: {', '.join(tags)}" if tags else "" - yield event.plain_result( - f"未找到{tags_info}符合要求的图片,请尝试其他标签或检查标签拼写~" - ) - return - - async for result in self._core.send_images( - event, downloaded, is_r18, tags - ): - yield result - except asyncio.TimeoutError: - logger.warning("get_random_picture timeout (>60s)") - yield event.plain_result("获取图片超时,网络可能不稳定,请稍后再试。") - except (OSError, RuntimeError, ValueError): - logger.exception("get_random_picture failed") - yield event.plain_result("获取图片失败,网络或服务异常,请稍后再试。") - - async def handle_setu_command( - self, event: AstrMessageEvent, count: str = "1", *, tags: str = "" - ): - """处理 /setu 命令。""" - if not self._core: - yield event.plain_result("插件尚未就绪,请稍后再试。") - return - - # 限流检查:每个用户同时只能有一个请求 - if not await self._core.rate_limiter.acquire(event): - yield event.plain_result("你有一个请求正在处理中,请稍后再试~") - return - - try: - async for result in self._handle_setu_command_internal( - event, count, tags=tags - ): - yield result - finally: - await self._core.rate_limiter.release(event) - - async def _handle_setu_command_internal( - self, event: AstrMessageEvent, count: str = "1", *, tags: str = "" - ): - """处理 /setu 命令的内部逻辑。""" - if self._core.is_group_blocked(event, feature="setu"): - return - - max_count = self._config.max_count - num_str = count - num = parse_count(num_str) - - extra_tag = "" - if num == -1: - num = 1 - extra_tag = count - - all_tags = tags - if extra_tag: - all_tags = f"{extra_tag} {all_tags}".strip() - - if num > max_count: - yield event.plain_result(f"一次最多只能获取{max_count}张哦~") - return - - parsed_tags = self._config.resolve_tags(all_tags) - - if self._config.msg_fetching_enabled: - yield event.plain_result(self._config.msg_fetching_text) - - try: - effective_content_mode = await self._core.get_effective_content_mode(event) - is_r18 = self._core.determine_r18(effective_content_mode) - - # 检查是否使用 URL 发送模式 - if self._config.url_send_mode: - provider = self._core._get_provider() - if provider: - try: - img_urls = await asyncio.wait_for( - provider.fetch_image_urls( - num=num, - tags=parsed_tags, - r18=is_r18, - exclude_ai=self._config.exclude_ai, - ), - timeout=60.0, - ) - except asyncio.TimeoutError: - logger.warning( - "url mode fetch_image_urls timeout (>60s), tags=%s, r18=%s", - parsed_tags, - is_r18, - ) - yield event.plain_result("图片获取超时,请稍后重试。") - return - - async for result in self._core.send_images_by_url( - event, img_urls, is_r18, parsed_tags - ): - yield result - else: - yield event.plain_result("没有可用的图片源,请联系管理员。") - else: - downloaded = await asyncio.wait_for( - self._core.fetch_and_download_images(num, parsed_tags, is_r18), - timeout=60.0, - ) - if not downloaded: - tags_info = f"标签: {', '.join(parsed_tags)}" if parsed_tags else "" - yield event.plain_result( - f"未找到{tags_info}符合要求的图片,请尝试其他标签或检查标签拼写~" - ) - return - - async for result in self._core.send_images( - event, downloaded, is_r18, parsed_tags - ): - yield result - except asyncio.TimeoutError: - logger.warning("setu command timeout (>60s)") - yield event.plain_result("获取图片超时,网络可能不稳定,请稍后再试。") - except (OSError, RuntimeError, ValueError): - logger.exception("setu command failed") - yield event.plain_result("获取图片失败,网络或服务异常,请稍后再试。") - - async def _show_mode_status(self, event: AstrMessageEvent): - """显示当前会话的模式状态。""" - session_id = event.get_session_id() - is_group = bool(event.get_group_id()) - - current_mode = await self._core.session_config.get_session_content_mode( - session_id, is_group - ) - global_mode = self._core.config.content_mode - - session_docx = await self._core.session_config.get_session_r18_docx_mode( - session_id, is_group - ) - global_docx = self._core.config.r18_docx_mode - effective_docx = await self._core.get_effective_r18_docx_mode(event) - - session_revoke = await self._core.session_config.get_session_auto_revoke_r18( - session_id, is_group - ) - global_revoke = self._core.config.auto_revoke_r18 - delay = self._core.config.auto_revoke_delay - effective_revoke = await self._core.get_effective_auto_revoke_r18(event) - - session_send = await self._core.session_config.get_session_send_mode( - session_id, is_group - ) - global_send = self._core.config.send_mode - effective_send = await self._core.get_effective_send_mode(event) - - def fmt(val, is_bool=True): - if val is None: - return "未设置" - return "启用" if val else "禁用" if is_bool else str(val) - - msg = ( - f"📋 当前会话配置:\n\n" - f"1️⃣ 内容分级:\n" - f" 会话覆盖:{fmt(current_mode, False) if current_mode else '未设置'}\n" - f" 全局配置:{global_mode}\n" - f" 生效模式:{current_mode or global_mode}\n\n" - f"2️⃣ R18 Docx 打包:\n" - f" 会话覆盖:{fmt(session_docx)}\n" - f" 全局配置:{'启用' if global_docx else '禁用'}\n" - f" 生效设置:{'启用' if effective_docx else '禁用'}\n\n" - f"3️⃣ R18 自动撤回:\n" - f" 会话覆盖:{fmt(session_revoke)}\n" - f" 全局配置:{'启用' if global_revoke else '禁用'}(延迟 {delay} 秒)\n" - f" 生效设置:{'启用' if effective_revoke else '禁用'}\n\n" - f"4️⃣ 发送模式:\n" - f" 会话覆盖:{fmt(session_send, False) if session_send else '未设置'}\n" - f" 全局配置:{global_send}\n" - f" 生效模式:{effective_send}\n\n" - f"可用命令:\n" - f" /setu_config mode - 设置内容分级\n" - f" /setu_config docx - 设置 R18 Docx 模式\n" - f" /setu_config revoke - 设置自动撤回\n" - f" /setu_config send - 设置发送模式\n" - f" /setu_config show - 显示当前配置" - ) - yield event.plain_result(msg) - - async def handle_setu_config(self, event: AstrMessageEvent, args: str = ""): - """处理 /setu_config 命令(统一配置管理)。""" - if not self._core: - yield event.plain_result("插件尚未就绪,请稍后再试。") - return - - if not self._check_admin(event): - yield event.plain_result("❌ 权限不足:此命令仅限管理员或超级管理员使用。") - return - - args = args.strip() - if not args or args.lower() == "show": - async for result in self._show_mode_status(event): - yield result - return - - # 解析命令(只将命令部分转为小写) - parts = args.split(maxsplit=1) - cmd = parts[0].lower() - value = parts[1].lower() if len(parts) > 1 else "" - - session_id = event.get_session_id() - is_group = bool(event.get_group_id()) - session_type = "群聊" if is_group else "私聊" - - if cmd == "mode": - # 内容分级设置 - async for result in self._handle_config_mode( - event, session_id, is_group, session_type, value - ): - yield result - - elif cmd == "docx": - # R18 Docx 打包模式设置 - async for result in self._handle_config_docx( - event, session_id, is_group, session_type, value - ): - yield result - - elif cmd == "revoke": - # 自动撤回设置 - async for result in self._handle_config_revoke( - event, session_id, is_group, session_type, value - ): - yield result - - elif cmd == "send": - # 发送模式设置 - async for result in self._handle_config_send( - event, session_id, is_group, session_type, value - ): - yield result - - else: - yield event.plain_result( - "❌ 未知的配置项。\n" - "可用配置项:mode(内容分级)、docx(打包模式)、revoke(自动撤回)、send(发送模式)\n" - "使用 /setu_config show 查看当前配置。" - ) - - async def _handle_config_mode( - self, event, session_id, is_group, session_type, value - ): - """处理内容分级配置。""" - if value not in ("sfw", "r18", "mix", "clear"): - yield event.plain_result( - "❌ 无效的模式。\n" - "可用模式:sfw(全年龄)、r18(成人)、mix(混合)、clear(清除设置)" - ) - return - - if value == "clear": - success = await self._core.session_config.clear_session_content_mode( - session_id, is_group - ) - if success: - global_mode = self._core.config.content_mode - yield event.plain_result( - f"✅ 已清除当前{session_type}的内容分级设置,将使用全局配置。\n" - f"当前全局配置为:{global_mode}" - ) - else: - yield event.plain_result("ℹ️ 当前会话没有设置覆盖,已在使用全局配置。") - else: - success = await self._core.session_config.set_session_content_mode( - session_id, is_group, value - ) - if success: - yield event.plain_result( - f"✅ 已将当前{session_type}的内容分级设置为:{value}\n" - f"此后发送的图片将使用此模式(优先于全局配置)。" - ) - else: - yield event.plain_result("❌ 设置失败,请稍后再试。") - - async def _handle_config_docx( - self, event, session_id, is_group, session_type, value - ): - """处理 R18 Docx 打包模式配置。""" - if value not in ("on", "off", "clear", ""): - yield event.plain_result( - "❌ 无效的设置。\n可用值:on(启用)、off(禁用)、clear(清除设置)" - ) - return - - global_docx = self._core.config.r18_docx_mode - - if value == "clear" or value == "": - success = await self._core.session_config.clear_session_r18_docx_mode( - session_id, is_group - ) - if success: - yield event.plain_result( - f"✅ 已清除当前{session_type}的 R18 Docx 打包模式设置,将使用全局配置。\n" - f"当前全局配置为:{'启用' if global_docx else '禁用'}" - ) - else: - yield event.plain_result("ℹ️ 当前会话没有设置覆盖,已在使用全局配置。") - else: - enabled = value == "on" - success = await self._core.session_config.set_session_r18_docx_mode( - session_id, is_group, enabled - ) - if success: - yield event.plain_result( - f"✅ 已将当前{session_type}的 R18 Docx 打包模式设置为:{'启用' if enabled else '禁用'}\n" - f"此后发送的 R18 图片将{'打包为 DOCX 文件' if enabled else '直接发送'}(优先于全局配置)。" - ) - else: - yield event.plain_result("❌ 设置失败,请稍后再试。") - - async def _handle_config_revoke( - self, event, session_id, is_group, session_type, value - ): - """处理自动撤回配置。""" - if value not in ("on", "off", "clear", ""): - yield event.plain_result( - "❌ 无效的设置。\n可用值:on(启用)、off(禁用)、clear(清除设置)" - ) - return - - global_revoke = self._core.config.auto_revoke_r18 - delay = self._core.config.auto_revoke_delay - - if value == "clear" or value == "": - success = await self._core.session_config.clear_session_auto_revoke_r18( - session_id, is_group - ) - if success: - yield event.plain_result( - f"✅ 已清除当前{session_type}的自动撤回设置,将使用全局配置。\n" - f"当前全局配置为:{'启用' if global_revoke else '禁用'}(延迟 {delay} 秒)" - ) - else: - yield event.plain_result("ℹ️ 当前会话没有设置覆盖,已在使用全局配置。") - else: - enabled = value == "on" - success = await self._core.session_config.set_session_auto_revoke_r18( - session_id, is_group, enabled - ) - if success: - yield event.plain_result( - f"✅ 已将当前{session_type}的自动撤回设置为:{'启用' if enabled else '禁用'}\n" - f"此后发送的 R18 内容将{'在 {delay} 秒后自动撤回' if enabled else '不会自动撤回'}(优先于全局配置)。" - ) - else: - yield event.plain_result("❌ 设置失败,请稍后再试。") - - async def _handle_config_send( - self, event, session_id, is_group, session_type, value - ): - """处理发送模式配置。""" - if value not in ("image", "forward", "auto", "clear", ""): - yield event.plain_result( - "❌ 无效的发送模式。\n" - "可用模式:image(直接发送)、forward(合并转发)、auto(自动选择)、clear(清除设置)" - ) - return - - global_send = self._core.config.send_mode - - if value == "clear" or value == "": - success = await self._core.session_config.clear_session_send_mode( - session_id, is_group - ) - if success: - yield event.plain_result( - f"✅ 已清除当前{session_type}的发送模式设置,将使用全局配置。\n" - f"当前全局配置为:{global_send}" - ) - else: - yield event.plain_result("ℹ️ 当前会话没有设置覆盖,已在使用全局配置。") - else: - success = await self._core.session_config.set_session_send_mode( - session_id, is_group, value - ) - if success: - mode_desc = { - "image": "直接发送图片", - "forward": "合并转发消息", - "auto": "自动选择(单张直接发送,多张合并转发)", - } - yield event.plain_result( - f"✅ 已将当前{session_type}的发送模式设置为:{value}\n" - f"说明:{mode_desc.get(value, '')}(优先于全局配置)。" - ) - else: - yield event.plain_result("❌ 设置失败,请稍后再试。") - - # ============ 黑白名单管理命令(简化中文版)============ - - async def handle_setu_block_user(self, event: AstrMessageEvent, args: str = ""): - """处理 /拉黑色图用户 命令(AT某人加入Setu黑名单)。""" - if not self._core: - yield event.plain_result("插件尚未就绪,请稍后再试。") - return - - if not self._check_admin(event): - yield event.plain_result("❌ 权限不足:此命令仅限管理员或超级管理员使用。") - return - - target_id = self._extract_target_id(event, args) - if not target_id: - yield event.plain_result( - "❌ 请通过 AT (@) 指定要拉黑的用户。\n用法:/拉黑色图用户 @用户名" - ) - return - - sender_id = event.get_sender_id() - if target_id == str(sender_id): - yield event.plain_result("❌ 不能将自己加入黑名单。") - return - - success = self._core.access_control.add_setu_blocked_user(target_id) - if success: - yield event.plain_result(f"✅ 已将用户 `{target_id}` 加入色图功能黑名单。") - else: - yield event.plain_result("❌ 操作失败,请稍后再试。") - - async def handle_setu_unblock_user(self, event: AstrMessageEvent, args: str = ""): - """处理 /解除色图拉黑 命令(AT某人从Setu黑名单移除)。""" - if not self._core: - yield event.plain_result("插件尚未就绪,请稍后再试。") - return - - if not self._check_admin(event): - yield event.plain_result("❌ 权限不足:此命令仅限管理员或超级管理员使用。") - return - - target_id = self._extract_target_id(event, args) - if not target_id: - yield event.plain_result( - "❌ 请通过 AT (@) 指定要解除拉黑的用户。\n用法:/解除色图拉黑 @用户名" - ) - return - - success = self._core.access_control.remove_setu_blocked_user(target_id) - if success: - yield event.plain_result( - f"✅ 已将用户 `{target_id}` 从色图功能黑名单移除。" - ) - else: - yield event.plain_result("❌ 操作失败,请稍后再试。") - - async def handle_fortune_block_user(self, event: AstrMessageEvent, args: str = ""): - """处理 /拉黑运势用户 命令(AT某人加入Fortune黑名单)。""" - if not self._core: - yield event.plain_result("插件尚未就绪,请稍后再试。") - return - - if not self._check_admin(event): - yield event.plain_result("❌ 权限不足:此命令仅限管理员或超级管理员使用。") - return - - target_id = self._extract_target_id(event, args) - if not target_id: - yield event.plain_result( - "❌ 请通过 AT (@) 指定要拉黑的用户。\n用法:/拉黑运势用户 @用户名" - ) - return - - sender_id = event.get_sender_id() - if target_id == str(sender_id): - yield event.plain_result("❌ 不能将自己加入黑名单。") - return - - success = self._core.access_control.add_fortune_blocked_user(target_id) - if success: - yield event.plain_result(f"✅ 已将用户 `{target_id}` 加入运势功能黑名单。") - else: - yield event.plain_result("❌ 操作失败,请稍后再试。") - - async def handle_fortune_unblock_user( - self, event: AstrMessageEvent, args: str = "" - ): - """处理 /解除运势拉黑 命令(AT某人从Fortune黑名单移除)。""" - if not self._core: - yield event.plain_result("插件尚未就绪,请稍后再试。") - return - - if not self._check_admin(event): - yield event.plain_result("❌ 权限不足:此命令仅限管理员或超级管理员使用。") - return - - target_id = self._extract_target_id(event, args) - if not target_id: - yield event.plain_result( - "❌ 请通过 AT (@) 指定要解除拉黑的用户。\n用法:/解除运势拉黑 @用户名" - ) - return - - success = self._core.access_control.remove_fortune_blocked_user(target_id) - if success: - yield event.plain_result( - f"✅ 已将用户 `{target_id}` 从运势功能黑名单移除。" - ) - else: - yield event.plain_result("❌ 操作失败,请稍后再试。") - - async def handle_setu_trust_user(self, event: AstrMessageEvent, args: str = ""): - """处理 /信任色图用户 命令(AT某人加入Setu白名单)。""" - if not self._core: - yield event.plain_result("插件尚未就绪,请稍后再试。") - return - - if not self._check_admin(event): - yield event.plain_result("❌ 权限不足:此命令仅限管理员或超级管理员使用。") - return - - target_id = self._extract_target_id(event, args) - if not target_id: - yield event.plain_result( - "❌ 请通过 AT (@) 指定要信任的用户。\n用法:/信任色图用户 @用户名" - ) - return - - success = self._core.access_control.add_setu_whitelist_user(target_id) - if success: - yield event.plain_result(f"✅ 已将用户 `{target_id}` 加入色图功能白名单。") - else: - yield event.plain_result("❌ 操作失败,请稍后再试。") - - async def handle_setu_untrust_user(self, event: AstrMessageEvent, args: str = ""): - """处理 /取消色图信任 命令(AT某人从Setu白名单移除)。""" - if not self._core: - yield event.plain_result("插件尚未就绪,请稍后再试。") - return - - if not self._check_admin(event): - yield event.plain_result("❌ 权限不足:此命令仅限管理员或超级管理员使用。") - return - - target_id = self._extract_target_id(event, args) - if not target_id: - yield event.plain_result( - "❌ 请通过 AT (@) 指定要取消信任的用户。\n用法:/取消色图信任 @用户名" - ) - return - - success = self._core.access_control.remove_setu_whitelist_user(target_id) - if success: - yield event.plain_result( - f"✅ 已将用户 `{target_id}` 从色图功能白名单移除。" - ) - else: - yield event.plain_result("❌ 操作失败,请稍后再试。") - - async def handle_fortune_trust_user(self, event: AstrMessageEvent, args: str = ""): - """处理 /信任运势用户 命令(AT某人加入Fortune白名单)。""" - if not self._core: - yield event.plain_result("插件尚未就绪,请稍后再试。") - return - - if not self._check_admin(event): - yield event.plain_result("❌ 权限不足:此命令仅限管理员或超级管理员使用。") - return - - target_id = self._extract_target_id(event, args) - if not target_id: - yield event.plain_result( - "❌ 请通过 AT (@) 指定要信任的用户。\n用法:/信任运势用户 @用户名" - ) - return - - success = self._core.access_control.add_fortune_whitelist_user(target_id) - if success: - yield event.plain_result(f"✅ 已将用户 `{target_id}` 加入运势功能白名单。") - else: - yield event.plain_result("❌ 操作失败,请稍后再试。") - - async def handle_fortune_untrust_user( - self, event: AstrMessageEvent, args: str = "" - ): - """处理 /取消运势信任 命令(AT某人从Fortune白名单移除)。""" - if not self._core: - yield event.plain_result("插件尚未就绪,请稍后再试。") - return - - if not self._check_admin(event): - yield event.plain_result("❌ 权限不足:此命令仅限管理员或超级管理员使用。") - return - - target_id = self._extract_target_id(event, args) - if not target_id: - yield event.plain_result( - "❌ 请通过 AT (@) 指定要取消信任的用户。\n用法:/取消运势信任 @用户名" - ) - return - - success = self._core.access_control.remove_fortune_whitelist_user(target_id) - if success: - yield event.plain_result( - f"✅ 已将用户 `{target_id}` 从运势功能白名单移除。" - ) - else: - yield event.plain_result("❌ 操作失败,请稍后再试。") - - async def handle_enable_setu_group(self, event: AstrMessageEvent, args: str = ""): - """处理 /开启色图 命令(从色图黑名单移除当前群组)。""" - if not self._core: - yield event.plain_result("插件尚未就绪,请稍后再试。") - return - - if not self._check_admin(event): - yield event.plain_result("❌ 权限不足:此命令仅限管理员或超级管理员使用。") - return - - group_id = event.get_group_id() - if not group_id: - yield event.plain_result("❌ 此命令只能在群聊中使用。") - return - - gid = str(group_id) - success = self._core.access_control.remove_setu_blocked_group(gid) - if success: - yield event.plain_result("✅ 已在本群开启色图功能。") - else: - yield event.plain_result("❌ 操作失败,请稍后再试。") - - async def handle_disable_setu_group(self, event: AstrMessageEvent, args: str = ""): - """处理 /关闭色图 命令(将当前群组加入色图黑名单)。""" - if not self._core: - yield event.plain_result("插件尚未就绪,请稍后再试。") - return - - if not self._check_admin(event): - yield event.plain_result("❌ 权限不足:此命令仅限管理员或超级管理员使用。") - return - - group_id = event.get_group_id() - if not group_id: - yield event.plain_result("❌ 此命令只能在群聊中使用。") - return - - gid = str(group_id) - success = self._core.access_control.add_setu_blocked_group(gid) - if success: - yield event.plain_result("✅ 已在本群关闭色图功能。") - else: - yield event.plain_result("❌ 操作失败,请稍后再试。") - - async def handle_enable_fortune_group( - self, event: AstrMessageEvent, args: str = "" - ): - """处理 /开启运势 命令(从运势黑名单移除当前群组)。""" - if not self._core: - yield event.plain_result("插件尚未就绪,请稍后再试。") - return - - if not self._check_admin(event): - yield event.plain_result("❌ 权限不足:此命令仅限管理员或超级管理员使用。") - return - - group_id = event.get_group_id() - if not group_id: - yield event.plain_result("❌ 此命令只能在群聊中使用。") - return - - gid = str(group_id) - success = self._core.access_control.remove_fortune_blocked_group(gid) - if success: - yield event.plain_result("✅ 已在本群开启运势功能。") - else: - yield event.plain_result("❌ 操作失败,请稍后再试。") - - async def handle_disable_fortune_group( - self, event: AstrMessageEvent, args: str = "" - ): - """处理 /关闭运势 命令(将当前群组加入运势黑名单)。""" - if not self._core: - yield event.plain_result("插件尚未就绪,请稍后再试。") - return - - if not self._check_admin(event): - yield event.plain_result("❌ 权限不足:此命令仅限管理员或超级管理员使用。") - return - - group_id = event.get_group_id() - if not group_id: - yield event.plain_result("❌ 此命令只能在群聊中使用。") - return - - gid = str(group_id) - success = self._core.access_control.add_fortune_blocked_group(gid) - if success: - yield event.plain_result("✅ 已在本群关闭运势功能。") - else: - yield event.plain_result("❌ 操作失败,请稍后再试。") - - def _extract_target_id(self, event: AstrMessageEvent, args: str) -> str | None: - """从消息中提取目标用户 ID(仅支持 AT)。""" - for comp in event.get_messages(): - if hasattr(comp, "qq") and comp.qq: - target = str(comp.qq) - if target not in ("all", "0"): - return target - return None diff --git a/handlers/llm_handlers.py b/handlers/llm_handlers.py deleted file mode 100644 index 9e2921d..0000000 --- a/handlers/llm_handlers.py +++ /dev/null @@ -1,544 +0,0 @@ -"""LLM 工具处理器模块。""" - -from __future__ import annotations - -import json -import re - -import mcp.types - -from astrbot.api import logger -from astrbot.api.event import AstrMessageEvent - -from .command_handlers import CommandHandler - -# 匹配 \uXXXX 格式的 Unicode 转义序列 -_UNICODE_ESCAPE_PATTERN = re.compile(r"\\u([0-9a-fA-F]{4})") - - -def _decode_unicode_escapes(text: str) -> str: - """解码字符串中的 Unicode 转义序列(如 \\u74f7\\u7b25\\u6728\\u684c -> 碧蓝档案)。 - - 只处理 \\uXXXX 格式的 Unicode 转义,避免过度解码其他转义序列(如 \\n, \\t 等)。 - """ - if not text or "\\u" not in text: - return text - try: - # 先尝试使用 json.loads 解码(处理带引号的 JSON 字符串) - if text.startswith('"') and text.endswith('"'): - return json.loads(text) - # 使用正则表达式只替换 \\uXXXX 格式的转义序列 - return _UNICODE_ESCAPE_PATTERN.sub(lambda m: chr(int(m.group(1), 16)), text) - except (ValueError, UnicodeDecodeError): - return text - - -class LlmHandlers: - """LLM 工具处理器集合。""" - - def __init__(self, plugin): - """初始化处理器。 - - 参数: - plugin: SetuPlugin 实例 - """ - self.plugin = plugin - self._cmd_handler: CommandHandler | None = None - - @property - def core(self): - """获取核心实例。""" - return self.plugin._core - - @property - def cmd_handler(self) -> CommandHandler: - """获取命令处理器(惰性初始化)。""" - if self._cmd_handler is None: - self._cmd_handler = CommandHandler(self.core, self.core.config) - return self._cmd_handler - - def _check_admin(self, event: AstrMessageEvent) -> bool: - """检查用户是否为管理员。""" - try: - if hasattr(event, "is_admin") and callable(getattr(event, "is_admin")): - if event.is_admin(): - return True - if hasattr(event, "is_super_user") and callable( - getattr(event, "is_super_user") - ): - if event.is_super_user(): - return True - if hasattr(event, "message_obj"): - msg_obj = event.message_obj - if hasattr(msg_obj, "sender") and hasattr(msg_obj.sender, "role"): - role = msg_obj.sender.role - if role in ("admin", "owner"): - return True - except AttributeError: - pass - return False - - async def _llm_get_setu_handler( - self, - event: AstrMessageEvent, - count=1, - tags: list[str] | str | dict | None = None, - ) -> mcp.types.CallToolResult: - """LLM 工具处理器:获取色图并直接发送。""" - if not self.core: - return mcp.types.CallToolResult( - content=[ - mcp.types.TextContent( - type="text", text="插件尚未就绪,请稍后再试。" - ) - ] - ) - try: - # 处理可能被包装成字典的参数 - if isinstance(count, dict): - count = count.get("value", 1) - if isinstance(tags, dict): - tags = tags.get("value", []) - - # 构建 tags 字符串,确保所有元素为字符串,并解码 Unicode 转义 - if isinstance(tags, list): - decoded_tags = [_decode_unicode_escapes(str(tag)) for tag in tags] - tags_str = " ".join(decoded_tags) - else: - tags_str = _decode_unicode_escapes(str(tags or "")) - - # 跟踪发送结果 - sent_count = 0 - has_error = False - - async for result in self.cmd_handler.handle_setu_command( - event, count=str(count), tags=tags_str - ): - if result is not None: - # 检查内部成功标记 - if isinstance(result, dict) and result.get("send_success"): - sent_count = result.get("image_count", 0) - continue - try: - await self.plugin.context.send_message( - event.unified_msg_origin, result - ) - # 注意:这里不递增 sent_count,因为 result 可能是错误消息 - # 只有成功标记中的 image_count 才是实际发送的图片数 - except Exception as exc: - has_error = True - logger.warning("[llm_tool] Failed to send: %s", exc) - - # 根据实际结果返回不同消息 - if sent_count == 0: - if has_error: - msg = "图片发送失败" - else: - msg = "没有获取到图片或发送被阻止" - else: - msg = f"已成功发送 {sent_count} 张图片" - - return mcp.types.CallToolResult( - content=[mcp.types.TextContent(type="text", text=msg)] - ) - except (TypeError, ValueError, RuntimeError) as e: - logger.exception("LLM 工具获取色图失败") - return mcp.types.CallToolResult( - content=[ - mcp.types.TextContent(type="text", text=f"获取图片失败:{str(e)}") - ] - ) - - async def _llm_get_content_mode_handler( - self, - event: AstrMessageEvent, - ) -> mcp.types.CallToolResult: - """LLM 工具处理器:查看当前内容分级。""" - if not self.core: - return mcp.types.CallToolResult( - content=[ - mcp.types.TextContent( - type="text", text="插件尚未就绪,请稍后再试。" - ) - ] - ) - try: - session_id = event.get_session_id() - is_group = bool(event.get_group_id()) - - # 获取会话级别的覆盖配置 - session_mode = await self.core.session_config.get_session_content_mode( - session_id, is_group - ) - # 获取全局配置 - global_mode = self.core.config.content_mode - # 获取实际生效的模式 - effective_mode = await self.core.get_effective_content_mode(event) - - session_type = "群聊" if is_group else "私聊" - - if session_mode: - msg = ( - f"当前{session_type}的内容分级设置:\n" - f"- 会话覆盖:{session_mode}\n" - f"- 全局配置:{global_mode}\n" - f"- 生效模式:{effective_mode}\n\n" - f"说明:此会话已设置独立的内容分级,优先于全局配置。" - ) - else: - msg = ( - f"当前{session_type}的内容分级设置:\n" - f"- 会话覆盖:未设置(使用全局配置)\n" - f"- 全局配置:{global_mode}\n" - f"- 生效模式:{effective_mode}\n\n" - f"说明:此会话使用全局内容分级配置。" - ) - - return mcp.types.CallToolResult( - content=[mcp.types.TextContent(type="text", text=msg)] - ) - except Exception as e: - logger.exception("LLM 工具查看内容分级失败") - return mcp.types.CallToolResult( - content=[ - mcp.types.TextContent( - type="text", text=f"查看内容分级失败:{str(e)}" - ) - ] - ) - - async def _llm_set_content_mode_handler( - self, - event: AstrMessageEvent, - mode: str | dict | None = None, - ) -> mcp.types.CallToolResult: - """LLM 工具处理器:设置内容分级。""" - if not self.core: - return mcp.types.CallToolResult( - content=[ - mcp.types.TextContent( - type="text", text="插件尚未就绪,请稍后再试。" - ) - ] - ) - - # 检查权限(管理员或超级管理员) - if not self._check_admin(event): - return mcp.types.CallToolResult( - content=[ - mcp.types.TextContent( - type="text", - text="❌ 权限不足:设置内容分级需要管理员或超级管理员权限。", - ) - ] - ) - - try: - # 处理可能被包装成字典的参数 - if isinstance(mode, dict): - mode = mode.get("value", "") - if not mode: - return mcp.types.CallToolResult( - content=[ - mcp.types.TextContent( - type="text", - text="❌ 请指定要设置的内容分级:sfw(全年龄)、r18(成人)、mix(混合)或 clear(清除设置)。", - ) - ] - ) - - mode = str(mode).strip().lower() - if mode not in ("sfw", "r18", "mix", "clear"): - return mcp.types.CallToolResult( - content=[ - mcp.types.TextContent( - type="text", - text=f"❌ 无效的模式 '{mode}'。\n可用模式:sfw(全年龄)、r18(成人)、mix(混合)、clear(清除设置)", - ) - ] - ) - - session_id = event.get_session_id() - is_group = bool(event.get_group_id()) - session_type = "群聊" if is_group else "私聊" - - if mode == "clear": - success = await self.core.session_config.clear_session_content_mode( - session_id, is_group - ) - if success: - global_mode = self.core.config.content_mode - msg = ( - f"✅ 已清除当前{session_type}的内容分级设置,将使用全局配置。\n" - f"当前全局配置为:{global_mode}" - ) - else: - msg = "ℹ️ 当前会话没有设置覆盖,已在使用全局配置。" - else: - success = await self.core.session_config.set_session_content_mode( - session_id, is_group, mode - ) - if success: - msg = ( - f"✅ 已将当前{session_type}的内容分级设置为:{mode}\n" - f"此后发送的图片将使用此模式(优先于全局配置)。" - ) - else: - msg = "❌ 设置失败,请稍后再试。" - - return mcp.types.CallToolResult( - content=[mcp.types.TextContent(type="text", text=msg)] - ) - except Exception as e: - logger.exception("LLM 工具设置内容分级失败") - return mcp.types.CallToolResult( - content=[ - mcp.types.TextContent( - type="text", text=f"设置内容分级失败:{str(e)}" - ) - ] - ) - - async def _llm_set_r18_docx_mode_handler( - self, - event: AstrMessageEvent, - enabled: bool | dict | None = None, - ) -> mcp.types.CallToolResult: - """LLM 工具处理器:设置会话级别的 R18 Docx 模式。""" - if not self.core: - return mcp.types.CallToolResult( - content=[ - mcp.types.TextContent( - type="text", text="插件尚未就绪,请稍后再试。" - ) - ] - ) - - if not self._check_admin(event): - return mcp.types.CallToolResult( - content=[ - mcp.types.TextContent( - type="text", - text="❌ 权限不足:设置 R18 Docx 模式需要管理员或超级管理员权限。", - ) - ] - ) - - try: - # 处理可能被包装成字典的参数 - if isinstance(enabled, dict): - enabled = enabled.get("value") - - session_id = event.get_session_id() - is_group = bool(event.get_group_id()) - session_type = "群聊" if is_group else "私聊" - - # 获取当前全局配置 - global_mode = self.core.config.r18_docx_mode - - if enabled == "clear" or enabled is None: - # 清除会话设置 - success = await self.core.session_config.clear_session_r18_docx_mode( - session_id, is_group - ) - if success: - msg = ( - f"✅ 已清除当前{session_type}的 R18 Docx 模式设置,将使用全局配置。\n" - f"当前全局配置为:{'启用' if global_mode else '禁用'}" - ) - else: - msg = "ℹ️ 当前会话没有设置覆盖,已在使用全局配置。" - else: - # 转换为布尔值 - bool_enabled = bool(enabled) - success = await self.core.session_config.set_session_r18_docx_mode( - session_id, is_group, bool_enabled - ) - if success: - msg = ( - f"✅ 已将当前{session_type}的 R18 Docx 模式设置为:{'启用' if bool_enabled else '禁用'}\n" - f"此后发送的 R18 图片将{'打包为 DOCX 文件' if bool_enabled else '直接发送'}(优先于全局配置)。" - ) - else: - msg = "❌ 设置失败,请稍后再试。" - - return mcp.types.CallToolResult( - content=[mcp.types.TextContent(type="text", text=msg)] - ) - except Exception as e: - logger.exception("LLM 工具设置 R18 Docx 模式失败") - return mcp.types.CallToolResult( - content=[ - mcp.types.TextContent( - type="text", text=f"设置 R18 Docx 模式失败:{str(e)}" - ) - ] - ) - - async def _llm_set_auto_revoke_handler( - self, - event: AstrMessageEvent, - enabled: bool | dict | None = None, - ) -> mcp.types.CallToolResult: - """LLM 工具处理器:设置会话级别的自动撤回。""" - if not self.core: - return mcp.types.CallToolResult( - content=[ - mcp.types.TextContent( - type="text", text="插件尚未就绪,请稍后再试。" - ) - ] - ) - - if not self._check_admin(event): - return mcp.types.CallToolResult( - content=[ - mcp.types.TextContent( - type="text", - text="❌ 权限不足:设置自动撤回需要管理员或超级管理员权限。", - ) - ] - ) - - try: - # 处理可能被包装成字典的参数 - if isinstance(enabled, dict): - enabled = enabled.get("value") - - session_id = event.get_session_id() - is_group = bool(event.get_group_id()) - session_type = "群聊" if is_group else "私聊" - - # 获取当前全局配置 - global_mode = self.core.config.auto_revoke_r18 - delay = self.core.config.auto_revoke_delay - - if enabled == "clear" or enabled is None: - # 清除会话设置 - success = await self.core.session_config.clear_session_auto_revoke_r18( - session_id, is_group - ) - if success: - msg = ( - f"✅ 已清除当前{session_type}的自动撤回设置,将使用全局配置。\n" - f"当前全局配置为:{'启用' if global_mode else '禁用'}(延迟 {delay} 秒)" - ) - else: - msg = "ℹ️ 当前会话没有设置覆盖,已在使用全局配置。" - else: - # 转换为布尔值 - bool_enabled = bool(enabled) - success = await self.core.session_config.set_session_auto_revoke_r18( - session_id, is_group, bool_enabled - ) - if success: - msg = ( - f"✅ 已将当前{session_type}的自动撤回设置为:{'启用' if bool_enabled else '禁用'}\n" - f"此后发送的 R18 内容将{'在 {delay} 秒后自动撤回' if bool_enabled else '不会自动撤回'}(优先于全局配置)。" - ) - else: - msg = "❌ 设置失败,请稍后再试。" - - return mcp.types.CallToolResult( - content=[mcp.types.TextContent(type="text", text=msg)] - ) - except Exception as e: - logger.exception("LLM 工具设置自动撤回失败") - return mcp.types.CallToolResult( - content=[ - mcp.types.TextContent( - type="text", text=f"设置自动撤回失败:{str(e)}" - ) - ] - ) - - async def _llm_set_send_mode_handler( - self, - event: AstrMessageEvent, - mode: str | dict | None = None, - ) -> mcp.types.CallToolResult: - """LLM 工具处理器:设置会话级别的发送模式。""" - if not self.core: - return mcp.types.CallToolResult( - content=[ - mcp.types.TextContent( - type="text", text="插件尚未就绪,请稍后再试。" - ) - ] - ) - - if not self._check_admin(event): - return mcp.types.CallToolResult( - content=[ - mcp.types.TextContent( - type="text", - text="❌ 权限不足:设置发送模式需要管理员或超级管理员权限。", - ) - ] - ) - - try: - # 处理可能被包装成字典的参数 - if isinstance(mode, dict): - mode = mode.get("value") - - session_id = event.get_session_id() - is_group = bool(event.get_group_id()) - session_type = "群聊" if is_group else "私聊" - - # 获取当前全局配置 - global_mode = self.core.config.send_mode - - if mode == "clear" or mode is None: - # 清除会话设置 - success = await self.core.session_config.clear_session_send_mode( - session_id, is_group - ) - if success: - msg = ( - f"✅ 已清除当前{session_type}的发送模式设置,将使用全局配置。\n" - f"当前全局配置为:{global_mode}" - ) - else: - msg = "ℹ️ 当前会话没有设置覆盖,已在使用全局配置。" - else: - mode_str = str(mode).strip().lower() - if mode_str not in ("image", "forward", "auto"): - return mcp.types.CallToolResult( - content=[ - mcp.types.TextContent( - type="text", - text=f"❌ 无效的发送模式 '{mode_str}'。\n" - f"可用模式:image(直接发送)、forward(合并转发)、auto(自动选择)、clear(清除设置)", - ) - ] - ) - - success = await self.core.session_config.set_session_send_mode( - session_id, is_group, mode_str - ) - if success: - mode_desc = { - "image": "直接发送图片", - "forward": "合并转发消息", - "auto": "自动选择(单张直接发送,多张合并转发)", - } - msg = ( - f"✅ 已将当前{session_type}的发送模式设置为:{mode_str}\n" - f"说明:{mode_desc.get(mode_str, '')}(优先于全局配置)。" - ) - else: - msg = "❌ 设置失败,请稍后再试。" - - return mcp.types.CallToolResult( - content=[mcp.types.TextContent(type="text", text=msg)] - ) - except Exception as e: - logger.exception("LLM 工具设置发送模式失败") - return mcp.types.CallToolResult( - content=[ - mcp.types.TextContent( - type="text", text=f"设置发送模式失败:{str(e)}" - ) - ] - ) diff --git a/llm_registry.py b/llm_registry.py deleted file mode 100644 index ff8e6a4..0000000 --- a/llm_registry.py +++ /dev/null @@ -1,382 +0,0 @@ -"""LLM 工具注册管理模块。 - -集中管理所有 LLM 工具的定义、注册和注销。 -将工具定义从 main.py 分离,便于维护和扩展。 -""" - -from __future__ import annotations - -from collections.abc import Callable -from dataclasses import dataclass, field -from typing import TYPE_CHECKING, Any - -from astrbot.core.provider.register import llm_tools - -if TYPE_CHECKING: - pass - - -@dataclass -class LlmToolDefinition: - """LLM 工具定义。 - - 包含工具的名称、描述、参数和处理函数。 - """ - - name: str - handler: Callable[..., Any] - args: list[dict[str, Any]] = field(default_factory=list) - description: str = "" - module_path: str | None = None - - -class LlmToolRegistry: - """LLM 工具注册管理器。 - - 管理工具的注册和注销,支持按模块分组管理。 - """ - - def __init__(self): - self._registered_tools: dict[str, str] = {} - # key: tool_name, value: module_path (用于追踪工具来源) - - def register_tool(self, tool_def: LlmToolDefinition, module_path: str) -> bool: - """注册单个 LLM 工具。 - - Args: - tool_def: 工具定义 - module_path: 模块路径(用于插件管理) - - Returns: - 是否成功注册 - """ - try: - llm_tools.add_func( - name=tool_def.name, - func_args=tool_def.args, - desc=tool_def.description, - handler=tool_def.handler, - ) - tool = llm_tools.get_func(tool_def.name) - if tool: - tool.handler_module_path = module_path - - self._registered_tools[tool_def.name] = module_path - return True - except (AttributeError, RuntimeError): - return False - - def register_tools( - self, tools: list[LlmToolDefinition], module_path: str - ) -> list[str]: - """批量注册 LLM 工具。 - - Args: - tools: 工具定义列表 - module_path: 模块路径 - - Returns: - 成功注册的工具名称列表 - """ - registered: list[str] = [] - for tool_def in tools: - if self.register_tool(tool_def, module_path): - registered.append(tool_def.name) - return registered - - def unregister_tool(self, name: str) -> bool: - """注销单个 LLM 工具。 - - Args: - name: 工具名称 - - Returns: - 是否成功注销 - """ - try: - llm_tools.remove_func(name) - self._registered_tools.pop(name, None) - return True - except (AttributeError, RuntimeError): - return False - - def unregister_tools(self, names: list[str]) -> list[str]: - """批量注销 LLM 工具。 - - Args: - names: 工具名称列表 - - Returns: - 成功注销的工具名称列表 - """ - unregistered: list[str] = [] - for name in names: - if self.unregister_tool(name): - unregistered.append(name) - return unregistered - - def unregister_by_module(self, module_path: str) -> list[str]: - """注销指定模块的所有工具。 - - Args: - module_path: 模块路径 - - Returns: - 成功注销的工具名称列表 - """ - tools_to_remove = [ - name for name, path in self._registered_tools.items() if path == module_path - ] - return self.unregister_tools(tools_to_remove) - - def get_registered_tools(self) -> dict[str, str]: - """获取已注册的工具映射。 - - Returns: - 工具名称到模块路径的映射 - """ - return self._registered_tools.copy() - - -# 全局注册管理器实例 -_registry = LlmToolRegistry() - - -def get_registry() -> LlmToolRegistry: - """获取全局 LLM 工具注册管理器。""" - return _registry - - -# ==================== Setu 工具定义 ==================== - - -def get_setu_tool_definitions(handler) -> list[LlmToolDefinition]: - """获取 Setu 相关的 LLM 工具定义。 - - Args: - handler: LlmHandlers 实例 - - Returns: - 工具定义列表 - """ - return [ - LlmToolDefinition( - name="get_setu_image", - handler=handler._llm_get_setu_handler, - args=[ - { - "name": "count", - "type": "integer", - "description": "Number of images.", - }, - {"name": "tags", "type": "array", "items": {"type": "string"}}, - ], - description="Fetch random anime images.", - ), - LlmToolDefinition( - name="get_setu_content_mode", - handler=handler._llm_get_content_mode_handler, - args=[], - description="Get content mode.", - ), - LlmToolDefinition( - name="set_setu_content_mode", - handler=handler._llm_set_content_mode_handler, - args=[ - { - "name": "mode", - "type": "string", - "enum": ["sfw", "r18", "mix", "clear"], - }, - ], - description="Set content mode.", - ), - LlmToolDefinition( - name="set_setu_r18_docx_mode", - handler=handler._llm_set_r18_docx_mode_handler, - args=[ - {"name": "enabled", "type": "boolean"}, - ], - description="Set R18 Docx mode.", - ), - LlmToolDefinition( - name="set_setu_auto_revoke", - handler=handler._llm_set_auto_revoke_handler, - args=[ - {"name": "enabled", "type": "boolean"}, - ], - description="Set auto-revoke.", - ), - LlmToolDefinition( - name="set_setu_send_mode", - handler=handler._llm_set_send_mode_handler, - args=[ - { - "name": "mode", - "type": "string", - "enum": ["image", "forward", "auto", "clear"], - "description": "Send mode override for current session.", - } - ], - description="Set session send mode.", - ), - ] - - -SETU_TOOL_NAMES = [ - "get_setu_image", - "get_setu_content_mode", - "set_setu_content_mode", - "set_setu_r18_docx_mode", - "set_setu_auto_revoke", - "set_setu_send_mode", -] - - -def register_setu_tools(handler, module_path: str) -> list[str]: - """注册 Setu 相关的 LLM 工具。 - - Args: - handler: LlmHandlers 实例 - module_path: 模块路径 - - Returns: - 成功注册的工具名称列表 - """ - tools = get_setu_tool_definitions(handler) - return _registry.register_tools(tools, module_path) - - -def unregister_setu_tools() -> list[str]: - """注销 Setu 相关的 LLM 工具。 - - Returns: - 成功注销的工具名称列表 - """ - return _registry.unregister_tools(SETU_TOOL_NAMES) - - -# ==================== Fortune 工具定义 ==================== - - -def get_fortune_tool_definitions(handler) -> list[LlmToolDefinition]: - """获取今日运势相关的 LLM 工具定义。 - - Args: - handler: FortuneLlmHandler 实例 - - Returns: - 工具定义列表 - """ - return [ - LlmToolDefinition( - name="get_today_fortune", - handler=handler.llm_get_fortune, - args=[], - description="Get today's fortune for the user.", - ), - LlmToolDefinition( - name="refresh_my_fortune", - handler=handler.llm_refresh_fortune, - args=[], - description="Refresh my today's fortune (admin only).", - ), - LlmToolDefinition( - name="refresh_group_fortune", - handler=handler.llm_refresh_group_fortune, - args=[], - description="Refresh today's fortune for the current group (admin only).", - ), - LlmToolDefinition( - name="refresh_all_fortune", - handler=handler.llm_refresh_all_fortune, - args=[], - description="Refresh today's fortune for all users (super admin only).", - ), - LlmToolDefinition( - name="get_fortune_config", - handler=handler.llm_get_fortune_config, - args=[], - description="Get the fortune configuration for the current session.", - ), - LlmToolDefinition( - name="set_fortune_config", - handler=handler.llm_set_fortune_config, - args=[ - { - "name": "tags", - "type": "string", - "description": "Tags for fortune images, e.g., 'girl,cute'. Leave empty to clear.", - }, - { - "name": "mode", - "type": "string", - "enum": ["sfw", "r18", "mix"], - "description": "Content mode for fortune images.", - }, - ], - description="Set the fortune configuration for the current session (admin only).", - ), - ] - - -FORTUNE_TOOL_NAMES = [ - "get_today_fortune", - "refresh_my_fortune", - "refresh_group_fortune", - "refresh_all_fortune", - "get_fortune_config", - "set_fortune_config", -] - - -def register_fortune_tools(handler, module_path: str) -> list[str]: - """注册今日运势相关的 LLM 工具。 - - Args: - handler: FortuneLlmHandler 实例 - module_path: 模块路径 - - Returns: - 成功注册的工具名称列表 - """ - tools = get_fortune_tool_definitions(handler) - return _registry.register_tools(tools, module_path) - - -def unregister_fortune_tools() -> list[str]: - """注销今日运势相关的 LLM 工具。 - - Returns: - 成功注销的工具名称列表 - """ - return _registry.unregister_tools(FORTUNE_TOOL_NAMES) - - -def unregister_all_tools() -> list[str]: - """注销所有工具(包括 Setu 和 Fortune)。 - - Returns: - 成功注销的工具名称列表 - """ - all_names = SETU_TOOL_NAMES + FORTUNE_TOOL_NAMES - return _registry.unregister_tools(all_names) - - -__all__ = [ - "LlmToolDefinition", - "LlmToolRegistry", - "get_registry", - # Setu 工具 - "get_setu_tool_definitions", - "register_setu_tools", - "unregister_setu_tools", - "SETU_TOOL_NAMES", - # Fortune 工具 - "get_fortune_tool_definitions", - "register_fortune_tools", - "unregister_fortune_tools", - "FORTUNE_TOOL_NAMES", - # 综合操作 - "unregister_all_tools", -] diff --git a/main.py b/main.py index 87512fc..6a78b5e 100644 --- a/main.py +++ b/main.py @@ -7,8 +7,9 @@ from __future__ import annotations +from collections.abc import AsyncGenerator from pathlib import Path -from typing import AsyncGenerator, Any +from typing import Any from astrbot.api.event import AstrMessageEvent, filter from astrbot.api.star import Context, Star, StarTools @@ -17,10 +18,10 @@ from astrbot.core.provider.register import llm_tools from .config import SetuConfig -from .constants import COMMAND_PATTERN, FORTUNE_PATTERN from .core import SetuCore -from .fortune import FortuneManager -from .handlers import CommandHandler, LlmHandlers +from .domain import COMMAND_PATTERN, FORTUNE_PATTERN +from .services.fortune import FortuneManager +from .services.setu import CommandHandler, LlmHandlers class SetuPlugin(Star): @@ -241,6 +242,15 @@ def _mark_event_handled(self, event: AstrMessageEvent, key: str) -> bool: event.set_extra(extra_key, True) return True + def _should_skip_fortune_regex(self, event: AstrMessageEvent) -> bool: + if self._is_explicit_slash_command(event): + return True + if getattr(event, "is_at_or_wake_command", False): + message_text = event.get_message_str().strip() + if message_text in {"今日运势", "jrys"}: + return True + return False + async def _run_fortune(self, event: AstrMessageEvent) -> AsyncGenerator[Any, None]: if not self._mark_event_handled(event, "fortune"): return @@ -278,8 +288,7 @@ async def setu_mode_command(self, event, mode: str = ""): @filter.regex(FORTUNE_PATTERN) async def fortune_regex(self, event): """处理纯文本今日运势触发(今日运势, jrys)。""" - # Avoid duplicate handling when user sends /今日运势 or /jrys. - if self._is_explicit_slash_command(event): + if self._should_skip_fortune_regex(event): return async for result in self._run_fortune(event): yield result diff --git a/providers/__init__.py b/providers/__init__.py deleted file mode 100644 index bd14c84..0000000 --- a/providers/__init__.py +++ /dev/null @@ -1,129 +0,0 @@ -"""图片提供商实现,使用策略模式。""" - -from __future__ import annotations - -from typing import Any - -from astrbot.api import logger - -from .atri import AtriProvider -from .base import SetuImageProvider -from .custom import CustomApiProvider -from .lolicon import LoliconProvider -from .multi import MultiApiProvider -from .sexnyan import SexNyanRunProvider - -# 提供商注册表 -PROVIDERS: dict[str, type[SetuImageProvider]] = { - "lolicon": LoliconProvider, - "atri": AtriProvider, - "sexnyan": SexNyanRunProvider, -} - -# 多API策略下的内置提供商列表 -BUILTIN_PROVIDERS = ["lolicon", "atri", "sexnyan"] - - -def get_provider( - api_type: str, - custom_config: dict[str, Any] | None = None, - parser_config: dict[str, Any] | None = None, - custom_api_configs: list[dict[str, Any]] | None = None, - multi_api_strategy: str = "round_robin", - lolicon_config: dict[str, Any] | None = None, - atri_config: dict[str, Any] | None = None, -) -> SetuImageProvider | MultiApiProvider: - """根据类型名称获取提供商实例。 - - 参数: - api_type: 提供商类型('lolicon'、'atri'、'sexnyan'、'custom' 或 'all')。 - custom_config: 自定义 API 配置(当 api_type 为 custom 时使用)。 - parser_config: API 响应解析配置(当 api_type 为 custom 时使用)。 - custom_api_configs: 自定义 API 配置列表(template_list 格式)。 - multi_api_strategy: 多 API 策略('round_robin'、'random'、'failover')。 - lolicon_config: Lolicon 专属配置参数。 - atri_config: Atri 专属配置参数。 - - 返回: - 提供商实例(如果类型未知则默认返回 lolicon)。 - """ - if api_type == "all": - # 创建多API提供商(内置API) - providers = [] - for name in BUILTIN_PROVIDERS: - if name == "lolicon" and lolicon_config: - provider = LoliconProvider(**lolicon_config) - elif name == "atri" and atri_config: - provider = AtriProvider(**atri_config) - else: - provider = PROVIDERS[name]() - providers.append(provider) - return MultiApiProvider(providers, strategy=multi_api_strategy) - - if api_type == "custom": - # 优先使用新的 template_list 配置格式 - if ( - custom_api_configs - and isinstance(custom_api_configs, list) - and len(custom_api_configs) > 0 - ): - if len(custom_api_configs) == 1: - # 只有一个配置,直接使用 - cfg = custom_api_configs[0] - api_config = { - "url": cfg.get("url", ""), - "method": cfg.get("method", "GET"), - "timeout": cfg.get("timeout", 30), - } - parser_cfg = { - "type": cfg.get("parser_type", "auto"), - "json_path": cfg.get("json_path", ""), - } - return CustomApiProvider(api_config, parser_cfg) - else: - # 多个配置,创建多API提供商 - providers = [] - for cfg in custom_api_configs: - api_config = { - "url": cfg.get("url", ""), - "method": cfg.get("method", "GET"), - "timeout": cfg.get("timeout", 30), - } - parser_cfg = { - "type": cfg.get("parser_type", "auto"), - "json_path": cfg.get("json_path", ""), - } - providers.append(CustomApiProvider(api_config, parser_cfg)) - return MultiApiProvider(providers, strategy=multi_api_strategy) - - # 兼容旧的配置格式 - if custom_config: - return CustomApiProvider(custom_config, parser_config or {}) - - logger.warning("api_type 为 custom 但未提供配置,回退到 lolicon") - if lolicon_config: - return LoliconProvider(**lolicon_config) - return LoliconProvider() - - provider_cls = PROVIDERS.get(api_type) - if provider_cls is None: - logger.warning("未知的 api_type '%s',回退到 lolicon", api_type) - provider_cls = LoliconProvider - - # 创建实例 - if api_type == "lolicon" and lolicon_config: - return provider_cls(**lolicon_config) - if api_type == "atri" and atri_config: - return provider_cls(**atri_config) - return provider_cls() - - -__all__ = [ - "SetuImageProvider", - "MultiApiProvider", - "LoliconProvider", - "AtriProvider", - "SexNyanRunProvider", - "CustomApiProvider", - "get_provider", -] diff --git a/providers/atri.py b/providers/atri.py deleted file mode 100644 index 907b7fd..0000000 --- a/providers/atri.py +++ /dev/null @@ -1,106 +0,0 @@ -"""Atri API 提供商。 - -文档: https://api.atri.rodeo -""" - -from __future__ import annotations - -import asyncio - -import httpx - -from astrbot.api import logger - -from ..constants import HTTP_TIMEOUT_SECONDS -from .base import SetuImageProvider - - -class AtriProvider(SetuImageProvider): - """Atri API 提供商。 - - 文档: https://api.atri.rodeo - """ - - API_URL = "https://api.atri.rodeo/setu" - - def __init__( - self, - image_size: str = "original", - proxy: str = "i.pixiv.re", - aspect_ratio: str = "", - uid: list[int] | None = None, - keyword: str = "", - ): - """初始化 Atri 提供商。 - - 参数: - image_size: 图片规格 (original, regular, small, thumb, mini) - proxy: 反代服务 - aspect_ratio: 图片长宽比 - uid: 指定作者 UID 列表 - keyword: 关键词搜索 - """ - self.image_size = image_size - self.proxy = proxy - self.aspect_ratio = aspect_ratio - self.uid = uid or [] - self.keyword = keyword - - async def fetch_image_urls( - self, - num: int, - tags: list[str], - r18: bool, - exclude_ai: bool = True, - ) -> list[str]: - exclude_ai_flag = self._normalize_bool(exclude_ai, default=True) - query_params: list[tuple[str, str | int]] = [ - ("r18", 1 if r18 else 0), - ("num", num), - ("excludeAI", str(exclude_ai_flag).lower()), - ("size", self.image_size), - ] - - # 添加可选参数 - if self.proxy: - query_params.append(("proxy", self.proxy)) - if self.aspect_ratio: - query_params.append(("aspectRatio", self.aspect_ratio)) - if self.keyword: - query_params.append(("keyword", self.keyword)) - - # 重复参数由 httpx 统一编码处理 - for uid in self.uid: - if uid is not None: - query_params.append(("uid", uid)) - for tag in tags: - if tag: - query_params.append(("tag", tag)) - - try: - async with httpx.AsyncClient(timeout=HTTP_TIMEOUT_SECONDS) as client: - resp = await client.get(self.API_URL, params=query_params) - resp.raise_for_status() - data = resp.json() - except httpx.HTTPStatusError as e: - logger.warning("Atri API 响应错误: %s %s", e, e.request.url) - return [] - except httpx.HTTPError as e: - request_url = getattr(getattr(e, "request", None), "url", self.API_URL) - logger.warning("Atri API 请求失败: %s %s", e, request_url) - return [] - except asyncio.TimeoutError: - logger.warning("Atri API 请求超时: %s", self.API_URL) - return [] - except Exception as e: - logger.exception("Atri API 异常: %s", e) - return [] - - urls: list[str] = [] - for item in data.get("data", []): - # 根据 size 参数返回对应的 URL - urls_obj = item.get("urls", {}) - img_url = urls_obj.get(self.image_size) - if img_url: - urls.append(img_url) - return urls diff --git a/providers/base.py b/providers/base.py deleted file mode 100644 index 4f36ef9..0000000 --- a/providers/base.py +++ /dev/null @@ -1,46 +0,0 @@ -"""图片提供商基类。""" - -from __future__ import annotations - - -class SetuImageProvider: - """色图图片提供商基类(策略模式)。""" - - async def fetch_image_urls( - self, - num: int, - tags: list[str], - r18: bool, - exclude_ai: bool = True, - ) -> list[str]: - """从 API 获取图片 URL 列表。 - - 参数: - num: 要获取的图片数量。 - tags: 搜索标签/关键词。 - r18: 是否请求 R18 内容。 - exclude_ai: 是否排除 AI 生成的作品。 - - 返回: - 图片 URL 列表。 - """ - raise NotImplementedError - - @staticmethod - def _normalize_bool(value, default: bool = True) -> bool: - """Normalize possibly-dirty boolean input from config/runtime sources.""" - if value is None: - return default - if isinstance(value, bool): - return value - if isinstance(value, (int, float)): - return bool(value) - if isinstance(value, str): - lowered = value.strip().lower() - if lowered in {"true", "1", "yes", "on"}: - return True - if lowered in {"false", "0", "no", "off"}: - return False - if lowered in {"none", "null", ""}: - return default - return default diff --git a/providers/custom.py b/providers/custom.py deleted file mode 100644 index ae365c9..0000000 --- a/providers/custom.py +++ /dev/null @@ -1,249 +0,0 @@ -"""自定义 API 提供商。 - -支持用户配置任意 API 地址,并提供灵活的响应解析方式。 -""" - -from __future__ import annotations - -from typing import Any - -import httpx - -from astrbot.api import logger - -from ..constants import HTTP_TIMEOUT_SECONDS -from .base import SetuImageProvider - - -class CustomApiProvider(SetuImageProvider): - """自定义 API 提供商。 - - 支持用户配置任意 API 地址,并提供灵活的响应解析方式。 - """ - - def __init__( - self, - api_config: dict[str, Any] | None = None, - parser_config: dict[str, Any] | None = None, - ): - """初始化自定义 API 提供商。 - - 参数: - api_config: API 配置(url, method, timeout, headers)。 - parser_config: 响应解析配置(type, json_path)。 - """ - self.api_config = api_config or {} - self.parser_config = parser_config or {} - - def _build_url( - self, num: int, tags: list[str], r18: bool, exclude_ai: bool - ) -> tuple[str, dict[str, Any] | None]: - """构建请求 URL 和请求体。""" - url_template = self.api_config.get("url", "") - method = self.api_config.get("method", "GET").upper() - - # 替换 URL 中的占位符 - tags_str = ",".join(tags) if tags else "" - url = url_template.replace("{num}", str(num)) - url = url.replace("{r18}", "1" if r18 else "0") - url = url.replace("{tags}", tags_str) - - if method == "POST": - # POST 请求,参数放 body - body = { - "num": num, - "r18": r18, - "tags": tags, - "exclude_ai": exclude_ai, - } - return url, body - else: - # GET 请求 - return url, None - - def _parse_response(self, data: Any) -> list[str]: - """解析 API 响应,提取图片 URL 列表。""" - parser_type = self.parser_config.get("type", "auto") - - if parser_type == "json": - return self._parse_json_response(data) - else: - return self._parse_auto_response(data) - - def _parse_json_response(self, data: Any) -> list[str]: - """使用 JSON 路径表达式解析响应。""" - json_path = self.parser_config.get("json_path", "") - - if not json_path or not isinstance(data, (dict, list)): - return [] - - try: - # 简单的 JSON 路径解析 - # 支持 $.data[*].url 或 $.images 等形式 - result = self._get_value_by_path(data, json_path) - - if isinstance(result, str): - return [result] - elif isinstance(result, list): - urls = [] - for item in result: - if isinstance(item, str): - urls.append(item) - elif isinstance(item, dict): - # 尝试从字典中提取 URL - url = item.get("url") or item.get("image") or item.get("link") - if url: - urls.append(url) - return urls - elif isinstance(result, dict): - url = result.get("url") or result.get("image") or result.get("link") - return [url] if url else [] - - except Exception as e: - logger.error("JSON 路径解析失败: %s", e) - - return [] - - def _get_value_by_path(self, data: Any, path: str) -> Any: - """根据路径表达式获取值。 - - 支持: - - $.data.url (单级) - - $.data[*].url (数组遍历) - - $.data[0].url (指定索引) - """ - # 移除开头的 $. - path = path.lstrip("$.").strip() - if not path: - return data - - parts = path.split(".") - current = data - - # 使用索引遍历,避免重复字段名导致的解析错误 - for idx, part in enumerate(parts): - if current is None: - return None - - # 处理数组索引 [*] 或 [n] - if "[" in part and "]" in part: - arr_name = part[: part.index("[")] - idx_str = part[part.index("[") + 1 : part.index("]")] - - if arr_name: - current = ( - current.get(arr_name) if isinstance(current, dict) else None - ) - - if not isinstance(current, list): - return None - - if idx_str == "*": - # 遍历数组,获取下一级 - # 使用 idx+1 代替 parts.index(part) 避免重复字段名问题 - next_part = ".".join(parts[idx + 1 :]) - if next_part: - results = [] - for item in current: - val = self._get_value_by_path(item, next_part) - if val is not None: - if isinstance(val, list): - results.extend(val) - else: - results.append(val) - return results - else: - return current - else: - try: - arr_idx = int(idx_str) - current = ( - current[arr_idx] if 0 <= arr_idx < len(current) else None - ) - except (ValueError, IndexError): - return None - else: - current = current.get(part) if isinstance(current, dict) else None - - return current - - def _parse_auto_response(self, data: Any) -> list[str]: - """自动从响应中提取所有图片 URL。""" - urls: list[str] = [] - - def extract_urls(obj: Any) -> None: - if isinstance(obj, str): - # 检查是否是 URL - if self._is_image_url(obj): - urls.append(obj) - elif isinstance(obj, list): - for item in obj: - extract_urls(item) - elif isinstance(obj, dict): - for key, value in obj.items(): - # 优先检查可能的 URL 键 - if key.lower() in ( - "url", - "link", - "src", - "image", - "img", - "original", - "regular", - ): - if isinstance(value, str) and self._is_image_url(value): - urls.append(value) - else: - extract_urls(value) - - extract_urls(data) - return list(dict.fromkeys(urls)) # 去重保持顺序 - - def _is_image_url(self, url: str) -> bool: - """检查字符串是否是图片 URL。""" - if not isinstance(url, str) or not url.startswith(("http://", "https://")): - return False - - # 检查是否包含图片扩展名或常见图片域名 - image_exts = (".jpg", ".jpeg", ".png", ".gif", ".webp", ".bmp") - image_hosts = ("pixiv", "img", "image", "pic", "photo", "cdn") - - url_lower = url.lower() - has_ext = any(url_lower.endswith(ext) for ext in image_exts) - has_host = any(host in url_lower for host in image_hosts) - - # URL 中包含图片相关特征 - return has_ext or has_host or "/img" in url_lower or "/image" in url_lower - - async def fetch_image_urls( - self, - num: int, - tags: list[str], - r18: bool, - exclude_ai: bool = True, - ) -> list[str]: - """从自定义 API 获取图片 URL 列表。""" - url, body = self._build_url(num, tags, r18, exclude_ai) - - if not url: - logger.error("自定义 API URL 未配置") - return [] - - timeout = self.api_config.get("timeout", HTTP_TIMEOUT_SECONDS) - headers = self.api_config.get("headers", {}) - - try: - async with httpx.AsyncClient(timeout=timeout) as client: - if body: - resp = await client.post(url, json=body, headers=headers) - else: - resp = await client.get(url, headers=headers) - resp.raise_for_status() - data = resp.json() - - urls = self._parse_response(data) - return urls[:num] # 限制数量 - - except Exception as e: - logger.error("自定义 API 请求失败: %s", e) - return [] diff --git a/providers/lolicon.py b/providers/lolicon.py deleted file mode 100644 index c495845..0000000 --- a/providers/lolicon.py +++ /dev/null @@ -1,109 +0,0 @@ -"""Lolicon API V2 提供商。 - -文档: https://api.lolicon.app -""" - -from __future__ import annotations - -import asyncio -from urllib.parse import quote - -import httpx - -from astrbot.api import logger - -from ..constants import HTTP_TIMEOUT_SECONDS -from .base import SetuImageProvider - - -class LoliconProvider(SetuImageProvider): - """Lolicon API V2 提供商。 - - 文档: https://api.lolicon.app - """ - - API_URL = "https://api.lolicon.app/setu/v2" - - def __init__( - self, - image_size: str = "original", - proxy: str = "i.pixiv.re", - aspect_ratio: str = "", - uid: list[int] | None = None, - keyword: str = "", - ): - """初始化 Lolicon 提供商。 - - 参数: - image_size: 图片规格 (original, regular, small, thumb, mini) - proxy: 反代服务 - aspect_ratio: 图片长宽比 - uid: 指定作者 UID 列表 - keyword: 关键词搜索 - """ - self.image_size = image_size - self.proxy = proxy - self.aspect_ratio = aspect_ratio - self.uid = uid or [] - self.keyword = keyword - - async def fetch_image_urls( - self, - num: int, - tags: list[str], - r18: bool, - exclude_ai: bool = True, - ) -> list[str]: - exclude_ai_flag = self._normalize_bool(exclude_ai, default=True) - params: dict[str, str | int | list] = { - "r18": 1 if r18 else 0, - "num": num, - "excludeAI": str(exclude_ai_flag).lower(), - "size": self.image_size, - } - - # 添加可选参数 - if self.proxy: - params["proxy"] = self.proxy - if self.aspect_ratio: - params["aspectRatio"] = self.aspect_ratio - if self.uid: - params["uid"] = self.uid - if self.keyword: - params["keyword"] = self.keyword - - # 构建带多个 'tag' 参数的 URL(使用 URL 编码防止特殊字符问题) - tag_params = "&".join(f"tag={quote(t, safe='')}" for t in tags) if tags else "" - base_params = "&".join( - f"{k}={quote(str(v), safe='')}" for k, v in params.items() - ) - url = f"{self.API_URL}?{base_params}" - if tag_params: - url += f"&{tag_params}" - - try: - async with httpx.AsyncClient(timeout=HTTP_TIMEOUT_SECONDS) as client: - resp = await client.get(url) - resp.raise_for_status() - data = resp.json() - except httpx.HTTPStatusError as e: - logger.warning("Lolicon API 响应错误: %s %s", e, url) - return [] - except httpx.HTTPError as e: - logger.warning("Lolicon API 请求失败: %s %s", e, url) - return [] - except asyncio.TimeoutError: - logger.warning("Lolicon API 请求超时: %s", url) - return [] - except Exception as e: - logger.exception("Lolicon API 异常: %s", e) - return [] - - urls: list[str] = [] - for item in data.get("data", []): - # 根据 size 参数返回对应的 URL - urls_obj = item.get("urls", {}) - img_url = urls_obj.get(self.image_size) - if img_url: - urls.append(img_url) - return urls diff --git a/providers/multi.py b/providers/multi.py deleted file mode 100644 index 9aff444..0000000 --- a/providers/multi.py +++ /dev/null @@ -1,96 +0,0 @@ -"""多 API 提供商,支持轮询、随机和故障转移策略。""" - -from __future__ import annotations - -import random -from typing import TYPE_CHECKING - -from astrbot.api import logger - -if TYPE_CHECKING: - from .base import SetuImageProvider - - -class MultiApiProvider: - """多 API 提供商,支持轮询、随机和故障转移策略。""" - - def __init__( - self, providers: list[SetuImageProvider], strategy: str = "round_robin" - ): - """初始化多 API 提供商。 - - 参数: - providers: 提供商实例列表。 - strategy: 策略类型('round_robin'、'random'、'failover')。 - """ - self.providers = providers - self.strategy = strategy - self._current_index = 0 - self._last_working_index = 0 - - def _get_next_provider(self) -> SetuImageProvider: - """根据策略获取下一个提供商。""" - if self.strategy == "random": - return random.choice(self.providers) - elif self.strategy == "failover": - # 故障转移:从上次成功的开始 - return self.providers[self._last_working_index] - else: - # 轮询 - provider = self.providers[self._current_index % len(self.providers)] - self._current_index += 1 - return provider - - async def fetch_image_urls( - self, - num: int, - tags: list[str], - r18: bool, - exclude_ai: bool = True, - ) -> list[str]: - """从多个 API 获取图片 URL 列表。""" - if self.strategy == "failover": - # 故障转移模式:逐个尝试直到成功 - for i in range(len(self.providers)): - idx = (self._last_working_index + i) % len(self.providers) - provider = self.providers[idx] - try: - urls = await provider.fetch_image_urls(num, tags, r18, exclude_ai) - if urls: - self._last_working_index = idx - return urls - except Exception as e: - logger.warning("API %d 失败: %s,尝试下一个", idx, e) - continue - return [] - elif self.strategy == "random": - # 随机模式:逐个随机选择,失败时继续尝试其他 - tried_indices = set() - while len(tried_indices) < len(self.providers): - idx = random.randrange(len(self.providers)) - if idx in tried_indices: - continue - tried_indices.add(idx) - provider = self.providers[idx] - try: - urls = await provider.fetch_image_urls(num, tags, r18, exclude_ai) - if urls: - return urls - except Exception as e: - logger.warning("API %d 失败: %s,尝试下一个", idx, e) - continue - return [] - else: - # 轮询模式:逐个尝试,失败时继续尝试其他 - for i in range(len(self.providers)): - idx = (self._current_index + i) % len(self.providers) - provider = self.providers[idx] - try: - urls = await provider.fetch_image_urls(num, tags, r18, exclude_ai) - self._current_index = (idx + 1) % len(self.providers) - if urls: - return urls - except Exception as e: - logger.warning("API %d 失败: %s,尝试下一个", idx, e) - continue - return [] diff --git a/providers/sexnyan.py b/providers/sexnyan.py deleted file mode 100644 index 57b4227..0000000 --- a/providers/sexnyan.py +++ /dev/null @@ -1,75 +0,0 @@ -"""SexNyanRun API 提供商。 - -文档: https://sex.nyan.run -""" - -from __future__ import annotations - -import asyncio -from urllib.parse import quote - -import httpx - -from astrbot.api import logger - -from ..constants import HTTP_TIMEOUT_SECONDS -from .base import SetuImageProvider - - -class SexNyanRunProvider(SetuImageProvider): - """SexNyanRun API 提供商。 - - 文档: https://sex.nyan.run - """ - - API_URL = "https://sex.nyan.run/api/v2/" - - def __init__(self): - """初始化 SexNyanRun 提供商。""" - pass - - async def fetch_image_urls( - self, - num: int, - tags: list[str], - r18: bool, - exclude_ai: bool = True, - ) -> list[str]: - params: dict[str, str | int] = { - "r18": str(r18).lower(), - "num": num, - } - # 构建带多个 'tag' 参数的 URL(使用 URL 编码防止特殊字符问题) - tag_params = "&".join(f"tag={quote(t, safe='')}" for t in tags) if tags else "" - base_params = "&".join( - f"{k}={quote(str(v), safe='')}" for k, v in params.items() - ) - url = f"{self.API_URL}?{base_params}" - if tag_params: - url += f"&{tag_params}" - - try: - async with httpx.AsyncClient(timeout=HTTP_TIMEOUT_SECONDS) as client: - resp = await client.get(url) - resp.raise_for_status() - data = resp.json() - except httpx.HTTPStatusError as e: - logger.warning("SexNyanRun API 响应错误: %s %s", e, url) - return [] - except httpx.HTTPError as e: - logger.warning("SexNyanRun API 请求失败: %s %s", e, url) - return [] - except asyncio.TimeoutError: - logger.warning("SexNyanRun API 请求超时: %s", url) - return [] - except Exception as e: - logger.exception("SexNyanRun API 异常: %s", e) - return [] - - urls: list[str] = [] - for item in data.get("data", []): - if isinstance(item, dict): - img_url = item.get("url") - if img_url: - urls.append(img_url) - return urls diff --git a/render/__init__.py b/render/__init__.py new file mode 100644 index 0000000..a15f6d8 --- /dev/null +++ b/render/__init__.py @@ -0,0 +1,8 @@ +"""Rendering layer for setu and fortune outputs.""" + +from __future__ import annotations + +from .fortune_renderer import FortuneRenderer +from .setu_renderer import HtmlCardRenderer + +__all__ = ["HtmlCardRenderer", "FortuneRenderer"] diff --git a/services/__init__.py b/services/__init__.py index 50383e3..4ce4d4c 100644 --- a/services/__init__.py +++ b/services/__init__.py @@ -1,15 +1,15 @@ -"""服务层模块。 - -整合图片下载、缓存、Docx生成、HTML渲染、配置管理等服务。 -""" +"""服务层模块。""" from __future__ import annotations -from .cache import UrlImageDiskCache -from .config_manager import AccessControlManager, ConfigManager -from .docx import DocxService -from .html import HtmlCardRenderer -from .image import ImageService +from ..render import HtmlCardRenderer +from .setu import ( + AccessControlManager, + ConfigManager, + DocxService, + ImageService, + UrlImageDiskCache, +) __all__ = [ "UrlImageDiskCache", diff --git a/services/cache.py b/services/cache.py deleted file mode 100644 index d3b0881..0000000 --- a/services/cache.py +++ /dev/null @@ -1,271 +0,0 @@ -"""图片缓存服务。""" - -from __future__ import annotations - -import asyncio -import hashlib -import json -import time -from pathlib import Path -from typing import Any - -from astrbot.api import logger - - -class UrlImageDiskCache: - """基于 URL 的简单图片磁盘缓存,支持 TTL 和数量限制。""" - - def __init__( - self, cache_dir: Path, ttl_hours: int, max_items: int, enabled: bool = True - ): - self.enabled = enabled - self.cache_dir = cache_dir - self.index_path = cache_dir / "image_cache_index.json" - self.ttl_seconds = max(1, int(ttl_hours) * 3600) - self.max_items = max(1, int(max_items)) - self._index: dict[str, dict[str, Any]] = {"entries": {}, "meta": {}} - self._lock = asyncio.Lock() - - async def initialize(self, cleanup_on_start: bool = True) -> None: - """初始化缓存。""" - if not self.enabled: - logger.info("[setu.cache] cache disabled") - return - try: - self.cache_dir.mkdir(parents=True, exist_ok=True) - await self._load_index() - if cleanup_on_start: - removed = await self.cleanup_expired() - logger.info("[setu.cache] startup cleanup removed=%d", removed) - # 检查并清理孤立缓存文件(索引中不存在的 .bin 文件) - await self._cleanup_orphaned_files() - except (OSError, json.JSONDecodeError) as exc: - logger.exception("[setu.cache] initialize failed: %s", exc) - - async def _cleanup_orphaned_files(self) -> int: - """清理孤立缓存文件(索引中不存在的 .bin 文件)。""" - removed = 0 - try: - async with self._lock: - # 获取索引中记录的文件路径 - indexed_paths = { - entry.get("path", "") - for entry in self._index.get("entries", {}).values() - } - - for file_path in self.cache_dir.iterdir(): - if not file_path.is_file(): - continue - # 处理旧的 .img 文件(迁移到 .bin) - if file_path.suffix == ".img": - try: - # 尝试迁移:读取旧文件,创建新文件,删除旧文件 - new_path = file_path.with_suffix(".bin") - if not new_path.exists(): - data = file_path.read_bytes() - new_path.write_bytes(data) - # 更新索引中对应的路径 - for entry in self._index.get("entries", {}).values(): - if entry.get("path") == str(file_path): - entry["path"] = str(new_path) - break - file_path.unlink() - removed += 1 - logger.debug( - "[setu.cache] migrated .img to .bin: %s", file_path.name - ) - except OSError as exc: - logger.warning( - "[setu.cache] failed to migrate .img file: %s", exc - ) - continue - # 只处理 .bin 文件(新的扩展名) - if file_path.suffix == ".bin": - str_path = str(file_path) - if str_path not in indexed_paths: - try: - file_path.unlink() - removed += 1 - logger.debug( - "[setu.cache] removed orphaned file: %s", - file_path.name, - ) - except OSError: - pass - # 如果有迁移,保存索引 - if removed > 0: - await self._save_index_locked() - except OSError as exc: - logger.warning("[setu.cache] failed to cleanup orphaned files: %s", exc) - - if removed > 0: - logger.info( - "[setu.cache] cleaned up %d orphaned/migrated cache files", removed - ) - return removed - - async def get(self, url: str) -> bytes | None: - """获取缓存图片。""" - if not self.enabled: - return None - key = self._url_key(url) - async with self._lock: - entry = self._index.get("entries", {}).get(key) - if not entry: - return None - - now = int(time.time()) - expires_at = int(entry.get("expires_at", 0)) - cached_path = Path(entry.get("path", "")) - if expires_at <= now or not cached_path.is_file(): - self._remove_entry_locked(key, delete_file=True) - await self._save_index_locked() - return None - - try: - data = cached_path.read_bytes() - except OSError as exc: - logger.exception( - "[setu.cache] failed to read cache file key=%s: %s", key, exc - ) - self._remove_entry_locked(key, delete_file=True) - await self._save_index_locked() - return None - - entry["last_hit"] = now - await self._save_index_locked() - logger.debug("[setu.cache] hit key=%s path=%s", key, cached_path) - return data - - async def put(self, url: str, data: bytes) -> None: - """写入图片到缓存。""" - if not self.enabled or not data: - return - key = self._url_key(url) - now = int(time.time()) - expires_at = now + self.ttl_seconds - file_path = self.cache_dir / f"{key}.bin" - - async with self._lock: - try: - file_path.write_bytes(data) - except OSError as exc: - logger.exception( - "[setu.cache] failed to write cache file=%s: %s", file_path, exc - ) - return - - entries = self._index.setdefault("entries", {}) - entries[key] = { - "url": url, - "path": str(file_path), - "created_at": now, - "expires_at": expires_at, - "last_hit": now, - "size": len(data), - } - removed = self._prune_locked(now) - self._index.setdefault("meta", {})["last_prune_removed"] = removed - self._index["meta"]["last_update_at"] = now - await self._save_index_locked() - logger.debug( - "[setu.cache] put key=%s size=%d removed=%d", key, len(data), removed - ) - - async def cleanup_expired(self) -> int: - """清理过期缓存。""" - if not self.enabled: - return 0 - now = int(time.time()) - async with self._lock: - removed = self._prune_locked(now) - self._index.setdefault("meta", {})["last_cleanup_at"] = now - self._index["meta"]["last_cleanup_removed"] = removed - await self._save_index_locked() - return removed - - async def _load_index(self) -> None: - """加载缓存索引文件。""" - if not self.index_path.is_file(): - self._index = {"entries": {}, "meta": {}} - await self._save_index_locked() - return - try: - raw = self.index_path.read_text(encoding="utf-8") - loaded = json.loads(raw) - entries = loaded.get("entries", {}) if isinstance(loaded, dict) else {} - meta = loaded.get("meta", {}) if isinstance(loaded, dict) else {} - self._index = { - "entries": entries if isinstance(entries, dict) else {}, - "meta": meta if isinstance(meta, dict) else {}, - } - except Exception as exc: - logger.exception("[setu.cache] index parse failed, reset index: %s", exc) - self._index = {"entries": {}, "meta": {}} - await self._save_index_locked() - - async def _save_index_locked(self) -> None: - """保存缓存索引(加锁)。""" - tmp_path = self.index_path.with_suffix(".json.tmp") - try: - # 确保目录存在 - self.cache_dir.mkdir(parents=True, exist_ok=True) - tmp_path.write_text( - json.dumps(self._index, ensure_ascii=False, indent=2), - encoding="utf-8", - ) - tmp_path.replace(self.index_path) - except Exception as exc: - logger.exception( - "[setu.cache] failed to save index %s: %s", self.index_path, exc - ) - try: - if tmp_path.exists(): - tmp_path.unlink() - except Exception as exc2: - logger.debug("[setu.cache] failed to remove temp index file: %s", exc2) - - def _prune_locked(self, now: int) -> int: - """清理过期和超出数量限制的缓存项。""" - entries = self._index.setdefault("entries", {}) - removed = 0 - - expired_keys = [ - k for k, v in entries.items() if int(v.get("expires_at", 0)) <= now - ] - for key in expired_keys: - self._remove_entry_locked(key, delete_file=True) - removed += 1 - - if len(entries) > self.max_items: - sorted_items = sorted( - entries.items(), - key=lambda item: int( - item[1].get("last_hit", item[1].get("created_at", 0)) - ), - ) - overflow = len(entries) - self.max_items - for key, _ in sorted_items[:overflow]: - self._remove_entry_locked(key, delete_file=True) - removed += 1 - return removed - - def _remove_entry_locked(self, key: str, delete_file: bool) -> None: - """移除缓存项。""" - entries = self._index.setdefault("entries", {}) - entry = entries.pop(key, None) - if not entry or not delete_file: - return - cached_path = Path(entry.get("path", "")) - try: - if cached_path.is_file(): - cached_path.unlink() - except Exception as exc: - logger.warning( - "[setu.cache] failed to remove cache file path=%s: %s", cached_path, exc - ) - - @staticmethod - def _url_key(url: str) -> str: - """生成 URL 的哈希 key。""" - return hashlib.sha256(url.encode("utf-8", errors="ignore")).hexdigest() diff --git a/services/config_manager.py b/services/config_manager.py deleted file mode 100644 index 67876cc..0000000 --- a/services/config_manager.py +++ /dev/null @@ -1,657 +0,0 @@ -"""配置管理服务,用于持久化黑白名单等配置到文件。""" - -from __future__ import annotations - -import json -import threading -from pathlib import Path -from typing import TYPE_CHECKING, Any - -from astrbot.api import logger - -if TYPE_CHECKING: - from astrbot.core import AstrBotConfig - - -class ConfigManager: - """配置管理器,负责读写插件配置文件。 - - 同时管理两个配置存储位置: - 1. 插件数据目录的 config.json - 运行时快速访问 - 2. AstrBot 主配置 - 供 webui 显示和编辑 - """ - - SAFETY_LIST_KEYS = ( - "setu_blocked_users", - "setu_whitelist_users", - "setu_blocked_groups", - "setu_whitelist_groups", - "fortune_blocked_users", - "fortune_whitelist_users", - "fortune_blocked_groups", - "fortune_whitelist_groups", - ) - SAFETY_MODE_KEYS = ( - "setu_user_access_control_mode", - "setu_group_access_control_mode", - "fortune_user_access_control_mode", - "fortune_group_access_control_mode", - ) - LEGACY_MODE_TO_NEW = { - "setu_access_control_mode": ( - "setu_user_access_control_mode", - "setu_group_access_control_mode", - ), - "fortune_access_control_mode": ( - "fortune_user_access_control_mode", - "fortune_group_access_control_mode", - ), - } - - def __init__( - self, plugin_data_dir: Path, astrbot_config: AstrBotConfig | None = None - ): - """初始化配置管理器。 - - 参数: - plugin_data_dir: 插件数据目录 - astrbot_config: AstrBot 配置对象,用于同步到 webui - """ - self._data_dir = plugin_data_dir - self._config_file = plugin_data_dir / "config.json" - self._cache: dict[str, Any] = {} - self._astrbot_config = astrbot_config - self._main_config_cache: dict[str, Any] | None = None - self._main_config_cache_mtime: float | None = None - self._main_config_cache_path: Path | None = None - self._main_config_cache_lock = threading.Lock() - - async def initialize(self) -> None: - """初始化,加载现有配置。""" - self._load_config() - # 启动时优先吸收 WebUI 最新值,避免本地缓存反向覆盖。 - imported = self._sync_from_astrbot_config() - if not imported: - self._sync_to_astrbot_config() - - def _load_config(self) -> None: - """从文件加载配置。""" - if not self._config_file.exists(): - self._cache = {} - return - - try: - with open(self._config_file, encoding="utf-8") as f: - self._cache = json.load(f) - except (json.JSONDecodeError, OSError) as e: - logger.warning("Failed to load config file: %s", e) - self._cache = {} - - def _save_config(self) -> bool: - """保存配置到文件。 - - 返回: - 是否保存成功 - """ - try: - self._data_dir.mkdir(parents=True, exist_ok=True) - with open(self._config_file, "w", encoding="utf-8") as f: - json.dump(self._cache, f, ensure_ascii=False, indent=2) - # 同时同步到 AstrBot 配置供 webui 显示 - self._sync_to_astrbot_config() - return True - except (OSError, TypeError) as e: - logger.error("Failed to save config file: %s", e) - return False - - def _invalidate_main_config_cache(self) -> None: - """失效主配置缓存。""" - with self._main_config_cache_lock: - self._main_config_cache = None - self._main_config_cache_mtime = None - self._main_config_cache_path = None - - def _iter_main_config_candidates(self) -> list[Path]: - """构造可能的主配置文件路径候选。""" - config_file_name = "astrbot_plugin_setu_config.json" - candidates: list[Path] = [] - # 常见结构:data/plugins/ - candidates.append(self._data_dir.parent.parent / "config" / config_file_name) - # 兜底:遍历父目录尝试 data/config 路径 - candidates.extend( - parent / "data" / "config" / config_file_name - for parent in self._data_dir.parents - ) - return candidates - - def _load_main_config_with_cache(self) -> dict[str, Any] | None: - """加载主配置并基于 mtime 进行缓存。""" - config_path: Path | None = None - for candidate in self._iter_main_config_candidates(): - if candidate.is_file(): - config_path = candidate - break - - if config_path is None: - return None - - try: - mtime = config_path.stat().st_mtime - except OSError: - return None - - with self._main_config_cache_lock: - if ( - self._main_config_cache_path == config_path - and self._main_config_cache_mtime == mtime - and self._main_config_cache is not None - ): - return self._main_config_cache - - try: - # AstrBot 主配置在 Windows 上可能带 BOM,使用 utf-8-sig 兼容读取。 - with open(config_path, encoding="utf-8-sig") as f: - data = json.load(f) - except (OSError, json.JSONDecodeError) as e: - logger.warning("Failed to load main config %s: %s", config_path, e) - return None - - if not isinstance(data, dict): - return None - - self._main_config_cache = data - self._main_config_cache_mtime = mtime - self._main_config_cache_path = config_path - return data - - def _get_safety_section(self) -> dict[str, Any] | None: - """从主配置中获取 safety 配置段(带缓存)。""" - main_cfg = self._load_main_config_with_cache() - if not main_cfg: - return None - safety = main_cfg.get("safety") - if not isinstance(safety, dict): - return None - return safety - - def _get_safety_value_from_file(self, key: str, default: Any = None) -> Any: - """从主配置文件读取单个 safety 配置值(带缓存)。""" - safety_config = self._get_safety_section() - if safety_config is None: - return default - - # 兼容旧键:请求新键时可回退到旧键。 - if key not in safety_config: - if ( - key - in ( - "setu_user_access_control_mode", - "setu_group_access_control_mode", - ) - and "setu_access_control_mode" in safety_config - ): - value = safety_config["setu_access_control_mode"] - elif ( - key - in ( - "fortune_user_access_control_mode", - "fortune_group_access_control_mode", - ) - and "fortune_access_control_mode" in safety_config - ): - value = safety_config["fortune_access_control_mode"] - else: - return default - else: - value = safety_config[key] - - if key in self.SAFETY_LIST_KEYS: - if not isinstance(value, list): - return [] - return [str(v).strip() for v in value if str(v).strip()] - - if key in self.SAFETY_MODE_KEYS: - return value if value in {"none", "blacklist", "whitelist"} else default - - return value - - def _sync_to_astrbot_config(self) -> None: - """将本地配置同步到 AstrBot 配置供 webui 显示。 - - 配置在 schema 中定义于顶层 safety 下,webui 期望从该路径读取。 - """ - if self._astrbot_config is None: - return - - try: - updated = False - - # 确保顶层 safety 存在(webui 配置路径) - if "safety" not in self._astrbot_config: - self._astrbot_config["safety"] = {} - updated = True - - safety_config = self._astrbot_config["safety"] - if not isinstance(safety_config, dict): - safety_config = {} - self._astrbot_config["safety"] = safety_config - updated = True - - # 仅同步缓存中明确存在的键,避免启动时空缓存覆盖 WebUI。 - for key in self.SAFETY_LIST_KEYS: - if key not in self._cache: - continue - value = self._cache.get(key) - if not isinstance(value, list): - value = [] - if safety_config.get(key) != value: - safety_config[key] = value - updated = True - - for key in self.SAFETY_MODE_KEYS: - if key not in self._cache: - continue - value = self._cache.get(key) - if value is not None and safety_config.get(key) != value: - safety_config[key] = value - updated = True - - if ( - updated - and hasattr(self._astrbot_config, "save_config") - and callable(getattr(self._astrbot_config, "save_config")) - ): - self._astrbot_config.save_config() - self._invalidate_main_config_cache() - logger.debug( - "[config_manager] Synced config to AstrBot safety (top-level) and saved" - ) - - except Exception as e: - logger.debug("[config_manager] Failed to sync to AstrBot config: %s", e) - - def _sync_from_astrbot_config(self) -> bool: - """从 AstrBot 配置同步到本地(webui 修改后)。 - - 从顶层 safety 同步黑白名单列表和访问控制模式到本地缓存。 - 返回是否成功导入了任意安全配置键。 - """ - if self._astrbot_config is None: - return False - - try: - imported = False - updated = False - - safety_config = self._astrbot_config.get("safety", {}) - if not isinstance(safety_config, dict): - return False - - for key in self.SAFETY_LIST_KEYS: - if key not in safety_config: - continue - imported = True - value = safety_config.get(key) - if not isinstance(value, list): - value = [] - value = [str(v).strip() for v in value if str(v).strip()] - if self._cache.get(key) != value: - self._cache[key] = value - updated = True - - valid_modes = {"none", "blacklist", "whitelist"} - # 优先读取新键 - for key in self.SAFETY_MODE_KEYS: - if key not in safety_config: - continue - imported = True - value = safety_config.get(key) - if value not in valid_modes: - continue - if self._cache.get(key) != value: - self._cache[key] = value - updated = True - - # 若新键缺失,尝试旧键映射。 - for legacy_key, mapped_keys in self.LEGACY_MODE_TO_NEW.items(): - if legacy_key not in safety_config: - continue - imported = True - value = safety_config.get(legacy_key) - if value not in valid_modes: - continue - for key in mapped_keys: - if key not in safety_config and self._cache.get(key) != value: - self._cache[key] = value - updated = True - - if updated: - self._data_dir.mkdir(parents=True, exist_ok=True) - with open(self._config_file, "w", encoding="utf-8") as f: - json.dump(self._cache, f, ensure_ascii=False, indent=2) - logger.debug( - "[config_manager] Synced config from AstrBot/webui safety (top-level)" - ) - - return imported - - except Exception as e: - logger.debug("[config_manager] Failed to sync from AstrBot config: %s", e) - return False - - def get(self, key: str, default: Any = None) -> Any: - """获取配置值。""" - if key in self.SAFETY_LIST_KEYS or key in self.SAFETY_MODE_KEYS: - file_value = self._get_safety_value_from_file(key, None) - if file_value is not None: - return file_value - - if self._astrbot_config is not None: - try: - safety_config = self._astrbot_config.get("safety", {}) - if isinstance(safety_config, dict) and key in safety_config: - return safety_config[key] - except Exception: - pass - - if key in self._cache: - return self._cache[key] - return default - - if key in self._cache: - return self._cache[key] - - return default - - def _get_access_control_mode_from_file(self, key: str, default: Any = None) -> Any: - """兼容方法:访问控制模式读取统一复用 safety 读取路径。""" - return self._get_safety_value_from_file(key, default) - - def set(self, key: str, value: Any) -> bool: - """设置配置值。""" - self._cache[key] = value - return self._save_config() - - def get_list(self, key: str) -> list[str]: - """获取列表类型的配置值。""" - value = self.get(key, []) - if isinstance(value, list): - return [str(v).strip() for v in value if str(v).strip()] - return [] - - def add_to_list(self, key: str, item: str) -> bool: - """添加项目到列表。""" - current = self.get_list(key) - item_str = str(item).strip() - - if not item_str: - return False - if item_str in current: - return True - - current.append(item_str) - self._cache[key] = current - return self._save_config() - - def remove_from_list(self, key: str, item: str) -> bool: - """从列表中移除项目。""" - current = self.get_list(key) - item_str = str(item).strip() - - if item_str not in current: - return True - - current.remove(item_str) - self._cache[key] = current - return self._save_config() - - def is_in_list(self, key: str, item: str) -> bool: - """检查项目是否在列表中。""" - current = self.get_list(key) - return str(item).strip() in current - - -class AccessControlManager: - """访问控制管理器,封装黑白名单管理逻辑。""" - - KEY_SETU_ACCESS_CONTROL_MODE = "setu_access_control_mode" - KEY_SETU_BLOCKED_USERS = "setu_blocked_users" - KEY_SETU_WHITELIST_USERS = "setu_whitelist_users" - KEY_SETU_BLOCKED_GROUPS = "setu_blocked_groups" - KEY_SETU_WHITELIST_GROUPS = "setu_whitelist_groups" - - KEY_FORTUNE_ACCESS_CONTROL_MODE = "fortune_access_control_mode" - KEY_FORTUNE_BLOCKED_USERS = "fortune_blocked_users" - KEY_FORTUNE_WHITELIST_USERS = "fortune_whitelist_users" - KEY_FORTUNE_BLOCKED_GROUPS = "fortune_blocked_groups" - KEY_FORTUNE_WHITELIST_GROUPS = "fortune_whitelist_groups" - - def __init__(self, config_manager: ConfigManager): - self._cfg = config_manager - - def add_setu_blocked_user(self, user_id: str) -> bool: - user_id = str(user_id).strip() - if not user_id: - return False - # 避免同一用户同时存在于黑白名单。 - self._cfg.remove_from_list(self.KEY_SETU_WHITELIST_USERS, user_id) - return self._cfg.add_to_list(self.KEY_SETU_BLOCKED_USERS, user_id) - - def remove_setu_blocked_user(self, user_id: str) -> bool: - return self._cfg.remove_from_list(self.KEY_SETU_BLOCKED_USERS, user_id) - - def is_setu_user_blocked(self, user_id: str) -> bool: - return self._cfg.is_in_list(self.KEY_SETU_BLOCKED_USERS, user_id) - - def get_setu_blocked_users(self) -> list[str]: - return self._cfg.get_list(self.KEY_SETU_BLOCKED_USERS) - - def add_setu_whitelist_user(self, user_id: str) -> bool: - user_id = str(user_id).strip() - if not user_id: - return False - # 被信任时自动从黑名单移除。 - self._cfg.remove_from_list(self.KEY_SETU_BLOCKED_USERS, user_id) - return self._cfg.add_to_list(self.KEY_SETU_WHITELIST_USERS, user_id) - - def remove_setu_whitelist_user(self, user_id: str) -> bool: - return self._cfg.remove_from_list(self.KEY_SETU_WHITELIST_USERS, user_id) - - def is_setu_user_whitelisted(self, user_id: str) -> bool: - return self._cfg.is_in_list(self.KEY_SETU_WHITELIST_USERS, user_id) - - def get_setu_whitelist_users(self) -> list[str]: - return self._cfg.get_list(self.KEY_SETU_WHITELIST_USERS) - - def add_setu_blocked_group(self, group_id: str) -> bool: - return self._cfg.add_to_list(self.KEY_SETU_BLOCKED_GROUPS, group_id) - - def remove_setu_blocked_group(self, group_id: str) -> bool: - return self._cfg.remove_from_list(self.KEY_SETU_BLOCKED_GROUPS, group_id) - - def is_setu_group_blocked(self, group_id: str) -> bool: - return self._cfg.is_in_list(self.KEY_SETU_BLOCKED_GROUPS, group_id) - - def get_setu_blocked_groups(self) -> list[str]: - return self._cfg.get_list(self.KEY_SETU_BLOCKED_GROUPS) - - def add_setu_whitelist_group(self, group_id: str) -> bool: - return self._cfg.add_to_list(self.KEY_SETU_WHITELIST_GROUPS, group_id) - - def remove_setu_whitelist_group(self, group_id: str) -> bool: - return self._cfg.remove_from_list(self.KEY_SETU_WHITELIST_GROUPS, group_id) - - def is_setu_group_whitelisted(self, group_id: str) -> bool: - return self._cfg.is_in_list(self.KEY_SETU_WHITELIST_GROUPS, group_id) - - def get_setu_whitelist_groups(self) -> list[str]: - return self._cfg.get_list(self.KEY_SETU_WHITELIST_GROUPS) - - def add_fortune_blocked_user(self, user_id: str) -> bool: - user_id = str(user_id).strip() - if not user_id: - return False - self._cfg.remove_from_list(self.KEY_FORTUNE_WHITELIST_USERS, user_id) - return self._cfg.add_to_list(self.KEY_FORTUNE_BLOCKED_USERS, user_id) - - def remove_fortune_blocked_user(self, user_id: str) -> bool: - return self._cfg.remove_from_list(self.KEY_FORTUNE_BLOCKED_USERS, user_id) - - def is_fortune_user_blocked(self, user_id: str) -> bool: - return self._cfg.is_in_list(self.KEY_FORTUNE_BLOCKED_USERS, user_id) - - def get_fortune_blocked_users(self) -> list[str]: - return self._cfg.get_list(self.KEY_FORTUNE_BLOCKED_USERS) - - def add_fortune_whitelist_user(self, user_id: str) -> bool: - user_id = str(user_id).strip() - if not user_id: - return False - self._cfg.remove_from_list(self.KEY_FORTUNE_BLOCKED_USERS, user_id) - return self._cfg.add_to_list(self.KEY_FORTUNE_WHITELIST_USERS, user_id) - - def remove_fortune_whitelist_user(self, user_id: str) -> bool: - return self._cfg.remove_from_list(self.KEY_FORTUNE_WHITELIST_USERS, user_id) - - def is_fortune_user_whitelisted(self, user_id: str) -> bool: - return self._cfg.is_in_list(self.KEY_FORTUNE_WHITELIST_USERS, user_id) - - def get_fortune_whitelist_users(self) -> list[str]: - return self._cfg.get_list(self.KEY_FORTUNE_WHITELIST_USERS) - - def add_fortune_blocked_group(self, group_id: str) -> bool: - return self._cfg.add_to_list(self.KEY_FORTUNE_BLOCKED_GROUPS, group_id) - - def remove_fortune_blocked_group(self, group_id: str) -> bool: - return self._cfg.remove_from_list(self.KEY_FORTUNE_BLOCKED_GROUPS, group_id) - - def is_fortune_group_blocked(self, group_id: str) -> bool: - return self._cfg.is_in_list(self.KEY_FORTUNE_BLOCKED_GROUPS, group_id) - - def get_fortune_blocked_groups(self) -> list[str]: - return self._cfg.get_list(self.KEY_FORTUNE_BLOCKED_GROUPS) - - def add_fortune_whitelist_group(self, group_id: str) -> bool: - return self._cfg.add_to_list(self.KEY_FORTUNE_WHITELIST_GROUPS, group_id) - - def remove_fortune_whitelist_group(self, group_id: str) -> bool: - return self._cfg.remove_from_list(self.KEY_FORTUNE_WHITELIST_GROUPS, group_id) - - def is_fortune_group_whitelisted(self, group_id: str) -> bool: - return self._cfg.is_in_list(self.KEY_FORTUNE_WHITELIST_GROUPS, group_id) - - def get_fortune_whitelist_groups(self) -> list[str]: - return self._cfg.get_list(self.KEY_FORTUNE_WHITELIST_GROUPS) - - def check_setu_access( - self, - user_id: str | None, - group_id: str | None, - user_access_control_mode: str = "none", - group_access_control_mode: str = "none", - ) -> tuple[bool, str]: - """检查色图功能访问权限。 - - 参数: - user_id: 用户 ID - group_id: 群组 ID - user_access_control_mode: 用户访问控制模式 (none/blacklist/whitelist) - group_access_control_mode: 群组访问控制模式 (none/blacklist/whitelist) - - 返回: - (是否被屏蔽, 屏蔽原因) - """ - if user_id is not None: - uid = str(user_id) - if user_access_control_mode == "blacklist": - is_blocked = self.is_setu_user_blocked(uid) - blocked_users = self.get_setu_blocked_users() - logger.debug( - "[check_setu_access] User blacklist mode: user=%s, blocked=%s, blocked_users=%s", - uid, - is_blocked, - blocked_users, - ) - if is_blocked: - return True, "用户被禁用" - elif ( - user_access_control_mode == "whitelist" - and not self.is_setu_user_whitelisted(uid) - ): - return True, "用户不在白名单中" - - if group_id is not None: - gid = str(group_id) - if group_access_control_mode == "blacklist" and self.is_setu_group_blocked( - gid - ): - return True, "群组被禁用" - if ( - group_access_control_mode == "whitelist" - and not self.is_setu_group_whitelisted(gid) - ): - return True, "群组不在白名单中" - - return False, "" - - def check_fortune_access( - self, - user_id: str | None, - group_id: str | None, - user_access_control_mode: str = "none", - group_access_control_mode: str = "none", - ) -> tuple[bool, str]: - """检查运势功能访问权限。 - - 参数: - user_id: 用户 ID - group_id: 群组 ID - user_access_control_mode: 用户访问控制模式 (none/blacklist/whitelist) - group_access_control_mode: 群组访问控制模式 (none/blacklist/whitelist) - - 返回: - (是否被屏蔽, 屏蔽原因) - """ - if user_id is not None: - uid = str(user_id) - if user_access_control_mode == "blacklist" and self.is_fortune_user_blocked( - uid - ): - return True, "用户被禁用" - if ( - user_access_control_mode == "whitelist" - and not self.is_fortune_user_whitelisted(uid) - ): - return True, "用户不在白名单中" - - if group_id is not None: - gid = str(group_id) - if ( - group_access_control_mode == "blacklist" - and self.is_fortune_group_blocked(gid) - ): - return True, "群组被禁用" - if ( - group_access_control_mode == "whitelist" - and not self.is_fortune_group_whitelisted(gid) - ): - return True, "群组不在白名单中" - - return False, "" - - def get_all_lists(self) -> dict[str, list[str]]: - """获取所有黑白名单列表。 - - 返回: - 包含所有列表的字典 - """ - return { - "setu_blocked_users": self.get_setu_blocked_users(), - "setu_whitelist_users": self.get_setu_whitelist_users(), - "setu_blocked_groups": self.get_setu_blocked_groups(), - "setu_whitelist_groups": self.get_setu_whitelist_groups(), - "fortune_blocked_users": self.get_fortune_blocked_users(), - "fortune_whitelist_users": self.get_fortune_whitelist_users(), - "fortune_blocked_groups": self.get_fortune_blocked_groups(), - "fortune_whitelist_groups": self.get_fortune_whitelist_groups(), - } diff --git a/services/docx.py b/services/docx.py deleted file mode 100644 index ac6c97e..0000000 --- a/services/docx.py +++ /dev/null @@ -1,116 +0,0 @@ -"""Docx 文件生成服务。""" - -from __future__ import annotations - -import io -import os -import re -from pathlib import Path - -from astrbot.api import logger - - -class DocxService: - """Docx 文件生成服务。""" - - def __init__(self): - self._has_dependency = self._check_dependency() - - async def initialize(self) -> None: - """初始化 Docx 服务(统一初始化接口占位)。 - - 实际依赖检查已在 __init__ 完成,此方法供 SetuCore 统一调用。 - """ - pass - - @staticmethod - def _check_dependency() -> bool: - """检查 python-docx 是否已安装。""" - try: - import importlib.util - - return importlib.util.find_spec("docx") is not None - except ImportError: - logger.error("python-docx 未安装,请运行: pip install python-docx") - return False - - def create_docx_with_images( - self, - images: list[bytes], - output_path: Path | None = None, - tags: list[str] | None = None, - ) -> Path | None: - """创建包含图片的 Docx 文件。""" - if not self._has_dependency: - logger.error("python-docx 未安装,无法生成 Docx 文件") - return None - - try: - from docx import Document - from docx.enum.text import WD_ALIGN_PARAGRAPH - from docx.shared import Inches - except ImportError: - logger.error("python-docx 未安装,无法生成 Docx 文件") - return None - - try: - doc = Document() - - sections = doc.sections - for section in sections: - section.top_margin = Inches(0.5) - section.bottom_margin = Inches(0.5) - section.left_margin = Inches(0.5) - section.right_margin = Inches(0.5) - - for i, img_data in enumerate(images): - img_stream = io.BytesIO(img_data) - paragraph = doc.add_paragraph() - paragraph.alignment = WD_ALIGN_PARAGRAPH.CENTER - - run = paragraph.add_run() - run.add_picture(img_stream, width=Inches(6.0)) - - if i < len(images) - 1: - doc.add_paragraph() - - if output_path is None: - from astrbot.core.utils.astrbot_path import get_astrbot_temp_path - - temp_dir = get_astrbot_temp_path() - if isinstance(temp_dir, str): - temp_dir = Path(temp_dir) - - if tags: - clean_tags = [self._sanitize_filename(t) for t in tags[:3]] - tag_str = ",".join(clean_tags) - else: - tag_str = "setu" - - random_suffix = os.urandom(6).hex() - filename = f"{tag_str}_{random_suffix}.docx" - output_path = temp_dir / filename - - doc.save(str(output_path)) - logger.info("Docx 文件已生成: %s", output_path) - return output_path - - except (OSError, ValueError, RuntimeError) as e: - logger.error("生成 Docx 文件失败: %s", e) - return None - - @staticmethod - def _sanitize_filename(text: str) -> str: - """清理文件名中的非法字符。""" - illegal_chars = r'[<>:"/\\|?*\x00-\x1f]' - sanitized = re.sub(illegal_chars, "", text) - - if len(sanitized) > 30: - sanitized = sanitized[:30] - - sanitized = sanitized.strip(" .") - - if not sanitized: - return "tag" - - return sanitized diff --git a/services/html.py b/services/html.py deleted file mode 100644 index 9e33422..0000000 --- a/services/html.py +++ /dev/null @@ -1,170 +0,0 @@ -"""HTML card renderer for safer image wrapping.""" - -from __future__ import annotations - -import asyncio -import base64 -import random -from pathlib import Path -from typing import Any - -from astrbot.api import logger - - -class HtmlCardRenderer: - """Wrap image(s) into compact HTML cards then render with AstrBot html_render.""" - - BG_COLORS = [ - "#f0f2f5", - "#f5f0f0", - "#f0f5f2", - "#f2f0f5", - "#faf8f5", - "#f5f8fa", - "#f8f5fa", - "#f5faf8", - "#fff5f0", - "#f0fff5", - "#f5f0ff", - "#fffff0", - ] - BORDER_COLORS = [ - "#e0e2e5", - "#e5e0e0", - "#e0e5e2", - "#e2e0e5", - "#d0d2d5", - "#d5d0d0", - "#d0d5d2", - "#d2d0d5", - ] - ROTATION_RANGE = (-2.0, 2.0) - - def __init__(self, template_path: Path | None = None): - self.template_path = ( - template_path or Path(__file__).parent.parent / "templates" / "main.html" - ) - self._template: str | None = None - - def _load_template(self) -> str: - if self._template is None: - self._template = self.template_path.read_text(encoding="utf-8") - return self._template - - def _generate_random_styles( - self, style_options: dict[str, Any] | None = None - ) -> dict[str, Any]: - style_options = style_options or {} - card_padding = int(style_options.get("card_padding", 6)) - card_gap = int(style_options.get("card_gap", 6)) - return { - "bg_color": random.choice(self.BG_COLORS), - "card_bg": "#ffffff", - "border_color": random.choice(self.BORDER_COLORS), - "rotation": random.uniform(*self.ROTATION_RANGE), - "noise_opacity": random.uniform(0.04, 0.10), - "grid_opacity": random.uniform(0.01, 0.04), - "border_radius": random.randint(8, 14), - "card_padding": max(2, card_padding), - "card_gap": max(2, card_gap), - "page_padding": 4, - } - - def _build_html( - self, images_b64: list[str], style_options: dict[str, Any] | None = None - ) -> str: - template = self._load_template() - styles = self._generate_random_styles(style_options) - - cards_html = [] - for index, img_b64 in enumerate(images_b64): - card_rotation = styles["rotation"] + random.uniform(-0.4, 0.4) - card_style = ( - f"background:{styles['card_bg']};" - f"border-radius:{styles['border_radius']}px;" - f"padding:{styles['card_padding']}px;" - f"margin-bottom:{styles['card_gap']}px;" - "box-shadow:0 1px 3px rgba(0,0,0,0.05);" - f"transform:rotate({card_rotation:.2f}deg);" - f"border:1px solid {styles['border_color']};" - "display:inline-block;" - ) - cards_html.append(f""" -
-
- img{index + 1} -
- """) - - body_style = ( - "margin:0;" - f"padding:{styles['page_padding']}px;" - f"background-color:{styles['bg_color']};" - "font-family:system-ui,-apple-system,sans-serif;" - "display:inline-block;" - ) - html = ( - template.replace("{cards}", "\n".join(cards_html)) - .replace("{body_style}", body_style) - .replace("{noise_opacity}", str(styles["noise_opacity"])) - .replace("{grid_opacity}", str(styles["grid_opacity"])) - ) - return html - - async def render_single_image( - self, context, image: bytes, style_options: dict[str, Any] | None = None - ) -> bytes | None: - """渲染单张图片,返回渲染后的图片字节数据。""" - if not image or not context: - return None - try: - img_b64 = base64.b64encode(image).decode("ascii") - html_content = self._build_html([img_b64], style_options=style_options) - render_options = {"full_page": True, "type": "png", "scale": "device"} - # 使用 return_url=False 获取文件路径,然后在线程池中读取字节数据,避免阻塞事件循环 - file_path = await context.html_render( - tmpl=html_content, data={}, return_url=False, options=render_options - ) - if file_path: - return await asyncio.to_thread(Path(file_path).read_bytes) - return None - except (ValueError, RuntimeError, OSError): - logger.exception("html single-card render failed") - return None - - async def render_images( - self, - context, - images: list[bytes], - options: dict[str, Any] | None = None, - style_options: dict[str, Any] | None = None, - ) -> bytes | None: - """渲染多张图片,返回渲染后的图片字节数据。""" - if not images or not context: - return None - try: - images_b64 = [base64.b64encode(img).decode("ascii") for img in images] - html_content = self._build_html(images_b64, style_options=style_options) - render_options = {"full_page": True, "type": "png", "scale": "device"} - if options: - render_options.update(options) - # 使用 return_url=False 获取文件路径,然后在线程池中读取字节数据,避免阻塞事件循环 - file_path = await context.html_render( - tmpl=html_content, data={}, return_url=False, options=render_options - ) - if file_path: - return await asyncio.to_thread(Path(file_path).read_bytes) - return None - except (ValueError, RuntimeError, OSError): - logger.exception("html card render failed") - return None - - def render_to_html_file(self, images: list[bytes], output_path: Path) -> bool: - """渲染为 HTML 文件(调试用)。""" - try: - images_b64 = [base64.b64encode(img).decode("ascii") for img in images] - output_path.write_text(self._build_html(images_b64), encoding="utf-8") - return True - except (OSError, ValueError): - logger.exception("html debug file save failed") - return False diff --git a/services/image.py b/services/image.py deleted file mode 100644 index 1b1fe72..0000000 --- a/services/image.py +++ /dev/null @@ -1,451 +0,0 @@ -"""图片下载/发送服务,支持 httpx 和 range 分段下载。""" - -from __future__ import annotations - -import asyncio -from typing import TYPE_CHECKING - -import httpx - -from astrbot.api import logger -from astrbot.api.event import AstrMessageEvent -from astrbot.api.message_components import Image, Node, Nodes, Plain - -from ..utils import obfuscate_image_bytes - -if TYPE_CHECKING: - from .cache import UrlImageDiskCache - -DEFAULT_HEADERS = { - "User-Agent": ( - "Mozilla/5.0 (Windows NT 10.0; Win64; x64) " - "AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36" - ), - "Accept": "image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8", - "Accept-Language": "zh-CN,zh;q=0.9,en;q=0.8", - "Referer": "https://www.pixiv.net/", -} - -MAX_DOWNLOAD_SIZE_BYTES = 50 * 1024 * 1024 -CHUNK_SIZE = 65536 - - -class ImageService: - """图片下载/发送服务,支持 httpx 和 range 分段下载。""" - - def __init__( - self, - cache: UrlImageDiskCache | None = None, - concurrent_limit: int = 10, - timeout_seconds: int = 30, - tcp_connector_limit: int = 100, - tcp_connector_limit_per_host: int = 30, - enable_range_download: bool = False, - range_segments: int = 3, - range_threshold: int = 512, # KB - ): - self._cache = cache - self._download_semaphore = asyncio.Semaphore(max(1, concurrent_limit)) - self._timeout_seconds = max(10, timeout_seconds) - self._tcp_connector_limit = max(50, tcp_connector_limit) - self._tcp_connector_limit_per_host = max(20, tcp_connector_limit_per_host) - self._enable_range_download = enable_range_download - self._range_segments = max(2, min(8, range_segments)) - self._range_threshold = range_threshold * 1024 # Convert to bytes - - # httpx client (will be initialized lazily) - self._httpx_client: httpx.AsyncClient | None = None - - def _get_headers_for_url(self, url: str) -> dict[str, str]: - """根据 URL 获取合适的 headers。""" - headers = dict(DEFAULT_HEADERS) - if "i.pixiv.re" in url: - headers["Referer"] = "https://www.pixiv.net/" - return headers - - async def _get_httpx_client(self) -> httpx.AsyncClient: - """获取或创建 httpx 客户端。""" - if self._httpx_client is None: - limits = httpx.Limits( - max_connections=self._tcp_connector_limit, - max_keepalive_connections=self._tcp_connector_limit_per_host, - ) - timeout = httpx.Timeout( - connect=10.0, - read=self._timeout_seconds, - write=10.0, - pool=5.0, - ) - self._httpx_client = httpx.AsyncClient( - limits=limits, - timeout=timeout, - headers=DEFAULT_HEADERS, - http2=True, - follow_redirects=True, - ) - return self._httpx_client - - async def close(self): - """关闭所有客户端连接。""" - if self._httpx_client: - await self._httpx_client.aclose() - self._httpx_client = None - - async def _download_with_httpx(self, url: str, retry: int = 1) -> bytes | None: - """使用 httpx 下载单张图片,使用流式下载并强制大小限制。""" - client = await self._get_httpx_client() - headers = self._get_headers_for_url(url) - - for attempt in range(retry + 1): - try: - async with self._download_semaphore: - async with client.stream("GET", url, headers=headers) as response: - if response.status_code == 404: - logger.warning("image 404: %s", url) - return None - if response.status_code in (403, 401): - logger.warning( - "image access denied (%d): %s", - response.status_code, - url, - ) - return None - if response.status_code == 429: - logger.warning("rate limited: %s", url) - if attempt < retry: - await asyncio.sleep(1) - continue - return None - if response.status_code < 200 or response.status_code >= 300: - logger.warning( - "image download failed (%d): %s", - response.status_code, - url, - ) - if attempt < retry: - await asyncio.sleep(0.5) - continue - return None - - # Check Content-Length header if available - content_length = response.headers.get("content-length") - if content_length: - try: - total_size = int(content_length) - if total_size > MAX_DOWNLOAD_SIZE_BYTES: - logger.warning( - "image too large (%d > %d): %s", - total_size, - MAX_DOWNLOAD_SIZE_BYTES, - url, - ) - return None - except (ValueError, TypeError): - pass - - # Stream download with size enforcement - chunks: list[bytes] = [] - total_read = 0 - async for chunk in response.aiter_bytes(CHUNK_SIZE): - total_read += len(chunk) - if total_read > MAX_DOWNLOAD_SIZE_BYTES: - logger.warning( - "image download exceeds size limit: %s", url - ) - return None - chunks.append(chunk) - - data = b"".join(chunks) if chunks else b"" - if not data: - logger.warning("image download empty: %s", url) - return None - - return data - - except httpx.TimeoutException as exc: - logger.warning( - "httpx timeout (attempt %d/%d) url=%s: %s", - attempt + 1, - retry + 1, - url, - exc, - ) - if attempt < retry: - await asyncio.sleep(0.5) - continue - return None - except httpx.ConnectError as exc: - logger.warning( - "httpx connection error (attempt %d/%d) url=%s: %s", - attempt + 1, - retry + 1, - url, - exc, - ) - if attempt < retry: - await asyncio.sleep(0.5) - continue - return None - except Exception as exc: - logger.warning( - "httpx download error (attempt %d/%d) url=%s: %s", - attempt + 1, - retry + 1, - url, - exc, - exc_info=True, - ) - if attempt < retry: - await asyncio.sleep(0.5) - continue - return None - - return None - - async def _get_content_length(self, url: str) -> int | None: - """通过 HEAD 请求获取 Content-Length。""" - client = await self._get_httpx_client() - headers = self._get_headers_for_url(url) - - try: - async with self._download_semaphore: - response = await client.head( - url, headers=headers, follow_redirects=True - ) - if response.status_code >= 200 and response.status_code < 300: - content_length = response.headers.get("content-length") - if content_length: - return int(content_length) - except Exception as exc: - logger.debug("HEAD request failed for %s: %s", url, exc) - - return None - - async def _download_range_httpx( - self, url: str, start: int, end: int - ) -> bytes | None: - """使用 httpx 下载指定 range,并验证返回数据大小。""" - client = await self._get_httpx_client() - headers = self._get_headers_for_url(url) - headers["Range"] = f"bytes={start}-{end}" - expected_length = end - start + 1 - - try: - async with self._download_semaphore: - async with client.stream("GET", url, headers=headers) as response: - if response.status_code not in (200, 206): - logger.warning( - "range download failed (%d): %s", response.status_code, url - ) - return None - - # Stream the response and validate size - chunks: list[bytes] = [] - total_read = 0 - async for chunk in response.aiter_bytes(CHUNK_SIZE): - total_read += len(chunk) - # Each range segment should not exceed expected length by much - if total_read > expected_length + CHUNK_SIZE: - logger.warning( - "range download exceeded expected size for %s: expected %d, got >%d", - url, - expected_length, - total_read, - ) - return None - chunks.append(chunk) - - data = b"".join(chunks) if chunks else b"" - if not data: - logger.warning("range download returned empty body: %s", url) - return None - - actual_length = len(data) - # Allow some tolerance for servers that return slightly different sizes - if ( - actual_length != expected_length - and abs(actual_length - expected_length) > 1 - ): - logger.warning( - "range download size mismatch for %s: expected %d bytes, got %d", - url, - expected_length, - actual_length, - ) - return None - - return data - - except Exception as exc: - logger.warning("range download error for %s: %s", url, exc) - return None - - async def _download_single_with_range( - self, url: str, retry: int = 1 - ) -> bytes | None: - """使用 range 分段下载单张图片。""" - # 先尝试获取 Content-Length - total_size = await self._get_content_length(url) - - if total_size is None: - # 服务器不支持 HEAD 或没有 Content-Length,使用普通下载 - logger.debug("Content-Length not available, using normal download: %s", url) - return await self._download_with_httpx(url, retry) - - if total_size > MAX_DOWNLOAD_SIZE_BYTES: - logger.warning( - "image too large (%d > %d): %s", - total_size, - MAX_DOWNLOAD_SIZE_BYTES, - url, - ) - return None - - if total_size < self._range_threshold: - # 图片太小,不需要分段 - logger.debug( - "Image too small (%d bytes), using normal download: %s", total_size, url - ) - return await self._download_with_httpx(url, retry) - - # 计算每段大小 - segment_size = total_size // self._range_segments - ranges = [] - - for i in range(self._range_segments): - start = i * segment_size - if i == self._range_segments - 1: - end = total_size - 1 - else: - end = start + segment_size - 1 - ranges.append((start, end)) - - logger.debug("Downloading %s with %d ranges: %s", url, len(ranges), ranges) - - # 并行下载所有段 - tasks = [self._download_range_httpx(url, start, end) for start, end in ranges] - results = await asyncio.gather(*tasks) - - # 检查是否有失败的段 - if any(r is None for r in results): - logger.warning( - "Some range segments failed for %s, retrying normal download", url - ) - return await self._download_with_httpx(url, retry) - - # 合并所有段 - data = b"".join(results) - - if len(data) != total_size: - logger.warning( - "Range download size mismatch (%d vs %d) for %s", - len(data), - total_size, - url, - ) - return await self._download_with_httpx(url, retry) - - return data - - async def download_single(self, url: str, retry: int = 1) -> bytes | None: - """下载单张图片,带缓存和重试机制。""" - if not url: - return None - - # 检查缓存 - if self._cache: - try: - cached = await self._cache.get(url) - if cached: - return cached - except Exception as exc: - logger.exception("[setu.cache] read failed url=%s : %s", url, exc) - - # 选择下载方式 - data: bytes | None = None - - if self._enable_range_download: - # 使用 httpx + range 下载 - data = await self._download_single_with_range(url, retry) - else: - # 使用 httpx 普通下载 - data = await self._download_with_httpx(url, retry) - - # 写入缓存 - if data and self._cache: - try: - await self._cache.put(url, data) - except Exception as exc: - logger.exception("[setu.cache] write failed url=%s : %s", url, exc) - - return data - - async def download_parallel(self, urls: list[str]) -> list[bytes]: - """并发下载多张图片。""" - if not urls: - return [] - - tasks = [self.download_single(url, retry=2) for url in urls] - results = await asyncio.gather(*tasks, return_exceptions=True) - - downloaded: list[bytes] = [] - for i, result in enumerate(results): - if isinstance(result, bytes) and result: - downloaded.append(result) - elif isinstance(result, Exception): - logger.warning( - "download task failed for %s: %s", - urls[i] if i < len(urls) else "unknown", - result, - ) - - return downloaded - - @staticmethod - async def send_images( - event: AstrMessageEvent, - images: list[bytes], - found_message: str | None = None, - ): - """将所有图片一次性发送,失败时尝试混淆重发。""" - try: - message_chain = [Plain(found_message)] if found_message else [] - for img_data in images: - message_chain.append(Image.fromBytes(img_data)) - yield event.chain_result(message_chain) - return - except Exception as exc: - logger.warning("send_images direct failed, retry obfuscated: %s", exc) - - try: - retry_text = f"{found_message} (混淆重发)" if found_message else "" - message_chain = [Plain(retry_text)] if retry_text else [] - for img_data in images: - obf_data = obfuscate_image_bytes(img_data) - message_chain.append(Image.fromBytes(obf_data)) - yield event.chain_result(message_chain) - except Exception as exc: - logger.exception("send_images obfuscated retry failed: %s", exc) - yield event.plain_result("图片发送失败,可能被平台审核拦截。") - - @staticmethod - async def send_forward( - event: AstrMessageEvent, images: list[bytes], bot_name: str = "Bot" - ): - """以合并转发节点方式发送图片。""" - logger.info("[forward] building nodes total=%d", len(images)) - nodes = [] - for index, img_data in enumerate(images): - try: - node = Node( - uin=event.get_self_id(), - name=bot_name, - content=[Image.fromBytes(img_data)], - ) - nodes.append(node) - except Exception as exc: - logger.exception("[forward] build node failed index=%d: %s", index, exc) - if not nodes: - yield event.plain_result("合并转发构建失败,未发送任何图片。") - return - yield event.chain_result([Nodes(nodes)]) diff --git a/services/setu/__init__.py b/services/setu/__init__.py new file mode 100644 index 0000000..d5955a2 --- /dev/null +++ b/services/setu/__init__.py @@ -0,0 +1,20 @@ +"""Setu service implementations.""" + +from __future__ import annotations + +from .cache import UrlImageDiskCache +from .command_handlers import CommandHandler +from .config_manager import AccessControlManager, ConfigManager +from .docx import DocxService +from .image import ImageService +from .llm_handlers import LlmHandlers + +__all__ = [ + "UrlImageDiskCache", + "ConfigManager", + "AccessControlManager", + "DocxService", + "ImageService", + "CommandHandler", + "LlmHandlers", +] diff --git a/session_config.py b/session_config.py deleted file mode 100644 index d7b5fc9..0000000 --- a/session_config.py +++ /dev/null @@ -1,455 +0,0 @@ -"""会话级别配置管理器。 - -提供会话级别的配置覆盖功能,允许管理员在特定会话中设置不同的内容模式。 -配置存储在 AstrBotConfig 中,可在 WebUI 中管理。 -""" - -from __future__ import annotations - -import asyncio -import json -import warnings -from pathlib import Path -from typing import TYPE_CHECKING, Any - -from astrbot.api import logger - -from .session_config_base import SessionConfigBase - -if TYPE_CHECKING: - from astrbot.core import AstrBotConfig - - -class SessionConfigManager(SessionConfigBase): - """会话级别配置管理器。 - - 管理每个会话(群聊/私聊)的独立配置,支持内容模式覆盖。 - 配置存储在 AstrBotConfig 的 session_configs 字段中,可在 WebUI 中管理。 - - Attributes: - _config: AstrBotConfig 配置对象 - _data_dir: 插件数据目录(用于迁移) - _lock: 异步锁,防止并发读写不一致 - """ - - # 允许会话覆盖的配置项 - ALLOWED_KEYS = {"content_mode", "r18_docx_mode", "auto_revoke_r18", "send_mode"} - - # 有效的内容模式值 - VALID_CONTENT_MODES = {"sfw", "r18", "mix"} - - # 有效的发送模式值 - VALID_SEND_MODES = {"image", "forward", "auto"} - - def __init__(self, config: AstrBotConfig, data_dir: Path | None = None): - """初始化会话配置管理器。 - - 参数: - config: AstrBotConfig 配置对象 - data_dir: 插件数据目录(用于迁移旧配置) - """ - super().__init__(config, config_key="session_configs") - self._data_dir = data_dir - self._migrated = False - - async def initialize(self) -> None: - """初始化配置,迁移旧配置文件到新格式。""" - if self._data_dir and not self._migrated: - await self._migrate_old_config() - self._migrated = True - logger.info("[session_config] SessionConfigManager initialized") - - async def _migrate_old_config(self) -> None: - """迁移旧位置的配置文件到 AstrBotConfig。""" - old_config_file = self._data_dir / "setu" / "setu_session_config.json" - if not old_config_file.exists(): - # 检查旧的位置 - old_config_file = self._data_dir / "session_config.json" - - if not old_config_file.exists(): - return - - try: - content = await asyncio.to_thread( - old_config_file.read_text, encoding="utf-8" - ) - old_data = json.loads(content) - sessions = old_data.get("sessions", {}) - - if not sessions: - return - - # 转换格式到新的 template_list 格式 - new_configs = self._get_configs() - - for session_key, session_data in sessions.items(): - parsed = self._parse_session_key(session_key) - if not parsed: - continue - - session_type, session_id = parsed - is_group = session_type == "group" - - # 构建新的配置项 - new_item = { - "session_id": session_id, - "session_type": "group" if is_group else "private", - } - - # 迁移各配置项 - if "content_mode" in session_data: - new_item["content_mode"] = session_data["content_mode"] - if "r18_docx_mode" in session_data: - new_item["r18_docx_mode"] = ( - "enabled" if session_data["r18_docx_mode"] else "disabled" - ) - if "auto_revoke_r18" in session_data: - new_item["auto_revoke_r18"] = ( - "enabled" if session_data["auto_revoke_r18"] else "disabled" - ) - if "send_mode" in session_data: - new_item["send_mode"] = session_data["send_mode"] - - self.merge_session_item(new_configs, new_item) - - # 保存迁移后的配置 - self._save_configs(new_configs) - - # 删除旧配置文件 - await asyncio.to_thread(old_config_file.unlink) - logger.info( - "[session_config] Migrated old config to AstrBotConfig, %d sessions", - len(new_configs), - ) - except (OSError, json.JSONDecodeError) as exc: - logger.warning("[session_config] Failed to migrate old config: %s", exc) - - def _get_session_config(self, session_id: str, is_group: bool) -> dict | None: - """获取会话配置项。""" - return self._find_session_config(session_id, is_group) - - def _get_session_key(self, session_id: str, is_group: bool) -> str: - """生成会话键。""" - prefix = "group" if is_group else "private" - return f"{prefix}:{session_id}" - - async def set_config( - self, session_id: str, is_group: bool, key: str, value: Any - ) -> bool: - """设置会话配置项。 - - 参数: - session_id: 会话ID - is_group: 是否为群聊 - key: 配置键 - value: 配置值 - - 返回: - 设置成功返回 True,否则返回 False - """ - if key not in self.ALLOWED_KEYS: - logger.warning("[session_config] Key %s is not allowed", key) - return False - - # 验证 content_mode 值 - if key == "content_mode" and value not in self.VALID_CONTENT_MODES: - logger.warning("[session_config] Invalid content_mode: %s", value) - return False - - # 验证 send_mode 值 - if key == "send_mode" and value not in self.VALID_SEND_MODES: - logger.warning("[session_config] Invalid send_mode: %s", value) - return False - - async with self._lock: - session_type = "group" if is_group else "private" - configs = self._get_configs() - - # 查找现有配置 - existing_idx = self._find_session_index(configs, session_id, is_group) - - # 根据配置项类型设置值 - config_value = value - if key == "r18_docx_mode": - config_value = "enabled" if value else "disabled" - elif key == "auto_revoke_r18": - config_value = "enabled" if value else "disabled" - - if existing_idx is not None: - # 更新现有配置 - configs[existing_idx][key] = config_value - else: - # 创建新配置 - new_item = { - "session_id": session_id, - "session_type": session_type, - key: config_value, - } - configs.append(new_item) - - self._save_configs(configs) - - session_key = self._get_session_key(session_id, is_group) - logger.info( - "[session_config] Set %s=%s for session %s", key, value, session_key - ) - return True - - async def get_config( - self, session_id: str, is_group: bool, key: str, default: Any = None - ) -> Any: - """获取会话配置项。 - - 参数: - session_id: 会话ID - is_group: 是否为群聊 - key: 配置键 - default: 默认值 - - 返回: - 配置值,如果不存在则返回默认值 - """ - async with self._lock: - cfg = self._get_session_config(session_id, is_group) - if not cfg: - return default - - value = cfg.get(key) - if value is None or value == "": - return default - - # 转换布尔值类型 - if key == "r18_docx_mode": - return value == "enabled" - if key == "auto_revoke_r18": - return value == "enabled" - - return value - - async def clear_config(self, session_id: str, is_group: bool, key: str) -> bool: - """清除会话配置项。 - - 参数: - session_id: 会话ID - is_group: 是否为群聊 - key: 配置键 - - 返回: - 清除成功返回 True,否则返回 False - """ - async with self._lock: - configs = self._get_configs() - - idx = self._find_session_index(configs, session_id, is_group) - if idx is None: - return False - - cfg = configs[idx] - if key not in cfg: - return False - - del cfg[key] - # 如果配置项都为空,删除整个会话配置 - if not any(k in cfg for k in self.ALLOWED_KEYS if k != key): - configs.pop(idx) - - self._save_configs(configs) - session_key = self._get_session_key(session_id, is_group) - logger.info("[session_config] Cleared %s for session %s", key, session_key) - return True - - async def get_session_content_mode( - self, session_id: str, is_group: bool - ) -> str | None: - """获取会话的内容模式。 - - 参数: - session_id: 会话ID - is_group: 是否为群聊 - - 返回: - 内容模式 (sfw/r18/mix),如果未设置则返回 None - """ - return await self.get_config(session_id, is_group, "content_mode") - - async def set_session_content_mode( - self, session_id: str, is_group: bool, mode: str - ) -> bool: - """设置会话的内容模式。 - - 参数: - session_id: 会话ID - is_group: 是否为群聊 - mode: 内容模式 (sfw/r18/mix) - - 返回: - 设置成功返回 True,否则返回 False - """ - return await self.set_config(session_id, is_group, "content_mode", mode) - - async def clear_session_content_mode(self, session_id: str, is_group: bool) -> bool: - """清除会话的内容模式设置。 - - 参数: - session_id: 会话ID - is_group: 是否为群聊 - - 返回: - 清除成功返回 True,否则返回 False - """ - return await self.clear_config(session_id, is_group, "content_mode") - - async def get_session_r18_docx_mode( - self, session_id: str, is_group: bool - ) -> bool | None: - """获取会话的 R18 Docx 模式设置。 - - 参数: - session_id: 会话ID - is_group: 是否为群聊 - - 返回: - R18 Docx 模式设置 (True/False),如果未设置则返回 None - """ - return await self.get_config(session_id, is_group, "r18_docx_mode") - - async def set_session_r18_docx_mode( - self, session_id: str, is_group: bool, enabled: bool - ) -> bool: - """设置会话的 R18 Docx 模式。 - - 参数: - session_id: 会话ID - is_group: 是否为群聊 - enabled: 是否启用 R18 Docx 模式 - - 返回: - 设置成功返回 True,否则返回 False - """ - return await self.set_config( - session_id, is_group, "r18_docx_mode", bool(enabled) - ) - - async def clear_session_r18_docx_mode( - self, session_id: str, is_group: bool - ) -> bool: - """清除会话的 R18 Docx 模式设置。 - - 参数: - session_id: 会话ID - is_group: 是否为群聊 - - 返回: - 清除成功返回 True,否则返回 False - """ - return await self.clear_config(session_id, is_group, "r18_docx_mode") - - async def get_session_auto_revoke_r18( - self, session_id: str, is_group: bool - ) -> bool | None: - """获取会话的自动撤回 R18 设置。 - - 参数: - session_id: 会话ID - is_group: 是否为群聊 - - 返回: - 自动撤回设置 (True/False),如果未设置则返回 None - """ - return await self.get_config(session_id, is_group, "auto_revoke_r18") - - async def set_session_auto_revoke_r18( - self, session_id: str, is_group: bool, enabled: bool - ) -> bool: - """设置会话的自动撤回 R18。 - - 参数: - session_id: 会话ID - is_group: 是否为群聊 - enabled: 是否启用自动撤回 - - 返回: - 设置成功返回 True,否则返回 False - """ - return await self.set_config( - session_id, is_group, "auto_revoke_r18", bool(enabled) - ) - - async def clear_session_auto_revoke_r18( - self, session_id: str, is_group: bool - ) -> bool: - """清除会话的自动撤回 R18 设置。 - - 参数: - session_id: 会话ID - is_group: 是否为群聊 - - 返回: - 清除成功返回 True,否则返回 False - """ - return await self.clear_config(session_id, is_group, "auto_revoke_r18") - - async def get_session_send_mode( - self, session_id: str, is_group: bool - ) -> str | None: - """获取会话的发送模式设置。 - - 参数: - session_id: 会话ID - is_group: 是否为群聊 - - 返回: - 发送模式 (image/forward/auto),如果未设置则返回 None - """ - return await self.get_config(session_id, is_group, "send_mode") - - async def set_session_send_mode( - self, session_id: str, is_group: bool, mode: str - ) -> bool: - """设置会话的发送模式。 - - 参数: - session_id: 会话ID - is_group: 是否为群聊 - mode: 发送模式 (image/forward/auto) - - 返回: - 设置成功返回 True,否则返回 False - """ - return await self.set_config(session_id, is_group, "send_mode", mode) - - async def clear_session_send_mode(self, session_id: str, is_group: bool) -> bool: - """清除会话的发送模式设置。 - - 参数: - session_id: 会话ID - is_group: 是否为群聊 - - 返回: - 清除成功返回 True,否则返回 False - """ - return await self.clear_config(session_id, is_group, "send_mode") - - async def cleanup_expired_sessions(self, max_age_days: int = 30) -> int: - """[Deprecated] 兼容接口:清理过期会话配置(当前实现为 no-op)。 - - 历史版本曾基于时间戳删除会话配置;当前配置结构不再保存时间信息, - 因此该方法仅兼容旧调用方而保留。 - - 参数: - max_age_days: 兼容参数,当前版本中不会被使用 - - 返回: - 始终返回 0,不会执行任何删除操作 - """ - warnings.warn( - "SessionConfigManager.cleanup_expired_sessions() is deprecated and is now a no-op.", - DeprecationWarning, - stacklevel=2, - ) - logger.warning( - "[session_config] cleanup_expired_sessions is deprecated no-op; " - "max_age_days=%s is ignored", - max_age_days, - ) - return 0 diff --git a/session_config_base.py b/session_config_base.py deleted file mode 100644 index 1df376f..0000000 --- a/session_config_base.py +++ /dev/null @@ -1,92 +0,0 @@ -"""Shared helpers for AstrBotConfig-backed session-level configuration.""" - -from __future__ import annotations - -import asyncio -from typing import TYPE_CHECKING - -if TYPE_CHECKING: - from astrbot.core import AstrBotConfig - - -class SessionConfigBase: - """Base utilities for session config managers. - - Subclasses provide key-specific validation and value conversion logic. - """ - - def __init__( - self, - config: AstrBotConfig, - *, - config_key: str, - ): - self._config = config - self._config_key = config_key - self._lock = asyncio.Lock() - - @staticmethod - def _session_type(is_group: bool) -> str: - return "group" if is_group else "private" - - def _get_session_key(self, session_id: str, is_group: bool) -> str: - return f"{self._session_type(is_group)}:{session_id}" - - def _get_configs(self) -> list[dict]: - return list(self._config.get(self._config_key, [])) - - def _save_configs(self, configs: list[dict]) -> None: - self._config[self._config_key] = configs - self._config.save_config() - - def _find_session_index( - self, - configs: list[dict], - session_id: str, - is_group: bool, - ) -> int | None: - session_type = self._session_type(is_group) - for i, cfg in enumerate(configs): - if ( - cfg.get("session_id") == session_id - and cfg.get("session_type") == session_type - ): - return i - return None - - def _find_session_config( - self, - session_id: str, - is_group: bool, - ) -> dict | None: - configs = self._get_configs() - idx = self._find_session_index(configs, session_id, is_group) - if idx is None: - return None - return configs[idx] - - @staticmethod - def _parse_session_key(session_key: str) -> tuple[str, str] | None: - parts = session_key.split(":", 1) - if len(parts) != 2: - return None - session_type, session_id = parts - if session_type not in {"group", "private"}: - return None - return session_type, session_id - - @staticmethod - def merge_session_item(configs: list[dict], item: dict) -> None: - """Insert or replace a session config item by (session_id, session_type).""" - session_id = item.get("session_id") - session_type = item.get("session_type") - if not session_id or session_type not in {"group", "private"}: - return - for i, cfg in enumerate(configs): - if ( - cfg.get("session_id") == session_id - and cfg.get("session_type") == session_type - ): - configs[i] = item - return - configs.append(item) diff --git a/utils.py b/utils.py deleted file mode 100644 index e70a022..0000000 --- a/utils.py +++ /dev/null @@ -1,115 +0,0 @@ -"""Setu 插件的工具函数。""" - -from __future__ import annotations - -import base64 -import random - -from astrbot.api.event import MessageChain -from astrbot.api.message_components import Image - - -def obfuscate_image_bytes(data: bytes) -> bytes: - """对图片数据进行最小程度的混淆以绕过图片哈希检测。 - - 在图片数据末尾添加随机字节来改变其哈希值,同时保持图片视觉内容不变。 - """ - noise = bytes(random.randint(0, 255) for _ in range(8)) - return data + noise - - -def create_image_chain(images: list[bytes], text: str | None = None) -> MessageChain: - """创建包含文本和图片的消息链。 - - 参数: - images: 图片字节数据列表。 - text: 可选的文本消息。 - - 返回: - 可发送的消息链。 - """ - chain = MessageChain() - if text: - chain.message(text) - for img_data in images: - b64 = base64.b64encode(img_data).decode("ascii") - chain.chain.append(Image.fromBase64(b64)) - return chain - - -def create_obfuscated_image_chain( - images: list[bytes], text: str | None = None -) -> MessageChain: - """创建包含混淆图片的消息链。 - - 参数: - images: 图片字节数据列表。 - text: 可选的文本消息。 - - 返回: - 包含混淆图片的消息链。 - """ - chain = MessageChain() - if text: - chain.message(text) - for img_data in images: - obf = obfuscate_image_bytes(img_data) - b64 = base64.b64encode(obf).decode("ascii") - chain.chain.append(Image.fromBase64(b64)) - return chain - - -def cn_to_an(cn_num: str) -> int: - """中文数字转阿拉伯数字 - - 参数: - cn_num: 中文数字。 - - 返回: - 阿拉伯数字。 - """ - - # 定义对应关系 - num_dict = { - "零": 0, - "一": 1, - "二": 2, - "两": 2, - "三": 3, - "四": 4, - "五": 5, - "六": 6, - "七": 7, - "八": 8, - "九": 9, - } - unit_dict = {"十": 10, "百": 100, "千": 1000, "万": 10000, "亿": 100000000} - - res = 0 - unit = 1 # 当前单位 - temp = 0 # 累加临时值 - - # 倒序处理 - for i in range(len(cn_num) - 1, -1, -1): - char = cn_num[i] - if char in unit_dict: - val = unit_dict[char] - if val >= 10000: # 处理万、亿大单位 - if val > unit: - unit = val - temp = 0 # 重置临时值 - else: - unit *= val - else: - if val >= temp: - temp = val - else: - temp *= val - elif char in num_dict: - res += num_dict[char] * (temp if temp > 0 else 1) * unit - temp = 0 - - # 特殊处理开头是“十”的情况,如“十四” - if cn_num.startswith("十"): - res += 10 - return res From 5551dfb60bf155de84a2b1aba1ab025cd46e85dd Mon Sep 17 00:00:00 2001 From: FlanChanXwO Date: Sun, 17 May 2026 18:28:19 +0800 Subject: [PATCH 3/5] chore(release): v2.0.0 --- AGENTS.md | 39 + CHANGELOG.md | 15 + README.md | 75 +- _conf_schema.json | 127 +-- api/__init__.py | 23 - config/__init__.py | 50 -- config/api.py | 332 -------- config/base.py | 61 -- config/delivery.py | 151 ---- config/helpers.py | 75 -- config/html_card.py | 62 -- config/messages.py | 100 --- config/safety.py | 262 ------ core/__init__.py | 7 - core/rate_limiter.py | 120 --- core/revoke_manager.py | 136 ---- core/revoke_tasks.py | 152 ---- core/send_revoke.py | 283 ------- main.py | 749 ++++++++---------- metadata.yaml | 2 +- pages/sessionConfig/app.js | 146 ++++ pages/sessionConfig/index.html | 250 ++++++ render/__init__.py | 8 - requirements.txt | 2 + services/__init__.py | 21 - services/setu/__init__.py | 20 - skills/get-setu/SKILL.md | 92 +++ src/__init__.py | 14 + src/application/__init__.py | 3 + src/application/ports/__init__.py | 16 + .../ports/access_control_repository.py | 137 ++++ src/application/ports/fortune_repository.py | 66 ++ src/application/ports/image_provider.py | 243 ++++++ .../ports/session_config_repository.py | 31 + src/application/session_config/__init__.py | 29 + src/application/session_config/dto.py | 51 ++ src/application/session_config/keys.py | 153 ++++ src/application/session_config/service.py | 191 +++++ src/application/settings.py | 120 +++ src/application/setu/__init__.py | 7 + src/application/setu/dto.py | 43 + src/application/setu/get_images.py | 39 + src/domain/__init__.py | 64 ++ src/domain/access_control/__init__.py | 7 + src/domain/access_control/service.py | 134 ++++ src/domain/access_control/value_objects.py | 36 + src/domain/constants.py | 19 + src/domain/enums.py | 55 ++ src/domain/exceptions.py | 47 ++ src/domain/fortune/__init__.py | 22 + src/domain/fortune/entities.py | 333 ++++++++ src/domain/fortune/service.py | 230 ++++++ src/domain/fortune/value_objects.py | 41 + src/domain/setu/__init__.py | 8 + src/domain/setu/tag_resolver.py | 150 ++++ src/domain/setu/value_objects.py | 26 + src/infrastructure/__init__.py | 69 ++ src/infrastructure/astrbot/__init__.py | 21 + .../astrbot/commands/__init__.py | 43 + .../astrbot/commands/fortune.py | 434 ++++++++++ .../astrbot/commands/session_config.py | 395 +++++++++ src/infrastructure/astrbot/commands/setu.py | 403 ++++++++++ src/infrastructure/astrbot/config.py | 55 ++ .../astrbot/session_config_api.py | 115 +++ .../astrbot/session_identity.py | 41 + src/infrastructure/permission_service.py | 112 +++ src/infrastructure/persistence/__init__.py | 127 +++ .../persistence/access_control_repo.py | 311 ++++++++ .../session_config_json_repository.py | 133 ++++ .../persistence/sqlite_fortune_repository.py | 320 ++++++++ src/infrastructure/providers/__init__.py | 223 ++++++ src/infrastructure/providers/atri.py | 122 +++ src/infrastructure/providers/custom.py | 357 +++++++++ src/infrastructure/providers/lolicon.py | 126 +++ src/infrastructure/providers/multi.py | 95 +++ src/infrastructure/providers/sexnyan.py | 76 ++ src/infrastructure/sending/__init__.py | 36 + src/infrastructure/sending/dto.py | 20 + src/infrastructure/sending/image_sender.py | 615 ++++++++++++++ src/infrastructure/sending/napcat_stream.py | 161 ++++ src/infrastructure/sending/send_filters.py | 194 +++++ src/infrastructure/sending/send_strategies.py | 357 +++++++++ src/shared/__init__.py | 7 + src/shared/config/__init__.py | 49 ++ src/shared/config/models.py | 595 ++++++++++++++ src/shared/logging.py | 86 ++ src/shared/send_cache.py | 210 +++++ templates/fortune.html | 219 ----- templates/res/fonts/NotoSansSC-Bold.woff2 | Bin 668492 -> 0 bytes templates/res/fonts/NotoSansSC-Regular.woff2 | Bin 645136 -> 0 bytes templates/res/fonts/SSFangTangTi.woff2 | Bin 646656 -> 0 bytes templates/setu.html | 94 --- tests/__init__.py | 18 + .../test_image_provider_logging.py | 42 + .../test_provider_proxy_rewrite.py | 30 + tests/conftest.py | 223 ++++++ tests/domain/test_exceptions.py | 85 ++ tests/domain/test_tag_resolver.py | 110 +++ tests/domain/test_value_objects.py | 143 ++++ .../test_access_control_repo.py | 137 ++++ tests/infrastructure/test_image_sender.py | 139 ++++ .../infrastructure/test_permission_service.py | 75 ++ .../test_provider_init_from_config.py | 25 + .../test_session_config_repo.py | 70 ++ tests/modules/__init__.py | 1 + tests/modules/test_fortune_module.py | 58 ++ tests/modules/test_setu_module.py | 71 ++ tests/shared/test_config_models.py | 10 + tests/test_main_command_routing.py | 37 + tests/test_main_config_source.py | 60 ++ 110 files changed, 10507 insertions(+), 2723 deletions(-) create mode 100644 AGENTS.md delete mode 100644 api/__init__.py delete mode 100644 config/__init__.py delete mode 100644 config/api.py delete mode 100644 config/base.py delete mode 100644 config/delivery.py delete mode 100644 config/helpers.py delete mode 100644 config/html_card.py delete mode 100644 config/messages.py delete mode 100644 config/safety.py delete mode 100644 core/__init__.py delete mode 100644 core/rate_limiter.py delete mode 100644 core/revoke_manager.py delete mode 100644 core/revoke_tasks.py delete mode 100644 core/send_revoke.py create mode 100644 pages/sessionConfig/app.js create mode 100644 pages/sessionConfig/index.html delete mode 100644 render/__init__.py delete mode 100644 services/__init__.py delete mode 100644 services/setu/__init__.py create mode 100644 skills/get-setu/SKILL.md create mode 100644 src/__init__.py create mode 100644 src/application/__init__.py create mode 100644 src/application/ports/__init__.py create mode 100644 src/application/ports/access_control_repository.py create mode 100644 src/application/ports/fortune_repository.py create mode 100644 src/application/ports/image_provider.py create mode 100644 src/application/ports/session_config_repository.py create mode 100644 src/application/session_config/__init__.py create mode 100644 src/application/session_config/dto.py create mode 100644 src/application/session_config/keys.py create mode 100644 src/application/session_config/service.py create mode 100644 src/application/settings.py create mode 100644 src/application/setu/__init__.py create mode 100644 src/application/setu/dto.py create mode 100644 src/application/setu/get_images.py create mode 100644 src/domain/__init__.py create mode 100644 src/domain/access_control/__init__.py create mode 100644 src/domain/access_control/service.py create mode 100644 src/domain/access_control/value_objects.py create mode 100644 src/domain/constants.py create mode 100644 src/domain/enums.py create mode 100644 src/domain/exceptions.py create mode 100644 src/domain/fortune/__init__.py create mode 100644 src/domain/fortune/entities.py create mode 100644 src/domain/fortune/service.py create mode 100644 src/domain/fortune/value_objects.py create mode 100644 src/domain/setu/__init__.py create mode 100644 src/domain/setu/tag_resolver.py create mode 100644 src/domain/setu/value_objects.py create mode 100644 src/infrastructure/__init__.py create mode 100644 src/infrastructure/astrbot/__init__.py create mode 100644 src/infrastructure/astrbot/commands/__init__.py create mode 100644 src/infrastructure/astrbot/commands/fortune.py create mode 100644 src/infrastructure/astrbot/commands/session_config.py create mode 100644 src/infrastructure/astrbot/commands/setu.py create mode 100644 src/infrastructure/astrbot/config.py create mode 100644 src/infrastructure/astrbot/session_config_api.py create mode 100644 src/infrastructure/astrbot/session_identity.py create mode 100644 src/infrastructure/permission_service.py create mode 100644 src/infrastructure/persistence/__init__.py create mode 100644 src/infrastructure/persistence/access_control_repo.py create mode 100644 src/infrastructure/persistence/session_config_json_repository.py create mode 100644 src/infrastructure/persistence/sqlite_fortune_repository.py create mode 100644 src/infrastructure/providers/__init__.py create mode 100644 src/infrastructure/providers/atri.py create mode 100644 src/infrastructure/providers/custom.py create mode 100644 src/infrastructure/providers/lolicon.py create mode 100644 src/infrastructure/providers/multi.py create mode 100644 src/infrastructure/providers/sexnyan.py create mode 100644 src/infrastructure/sending/__init__.py create mode 100644 src/infrastructure/sending/dto.py create mode 100644 src/infrastructure/sending/image_sender.py create mode 100644 src/infrastructure/sending/napcat_stream.py create mode 100644 src/infrastructure/sending/send_filters.py create mode 100644 src/infrastructure/sending/send_strategies.py create mode 100644 src/shared/__init__.py create mode 100644 src/shared/config/__init__.py create mode 100644 src/shared/config/models.py create mode 100644 src/shared/logging.py create mode 100644 src/shared/send_cache.py delete mode 100644 templates/fortune.html delete mode 100644 templates/res/fonts/NotoSansSC-Bold.woff2 delete mode 100644 templates/res/fonts/NotoSansSC-Regular.woff2 delete mode 100644 templates/res/fonts/SSFangTangTi.woff2 delete mode 100644 templates/setu.html create mode 100644 tests/__init__.py create mode 100644 tests/application/test_image_provider_logging.py create mode 100644 tests/application/test_provider_proxy_rewrite.py create mode 100644 tests/conftest.py create mode 100644 tests/domain/test_exceptions.py create mode 100644 tests/domain/test_tag_resolver.py create mode 100644 tests/domain/test_value_objects.py create mode 100644 tests/infrastructure/test_access_control_repo.py create mode 100644 tests/infrastructure/test_image_sender.py create mode 100644 tests/infrastructure/test_permission_service.py create mode 100644 tests/infrastructure/test_provider_init_from_config.py create mode 100644 tests/infrastructure/test_session_config_repo.py create mode 100644 tests/modules/__init__.py create mode 100644 tests/modules/test_fortune_module.py create mode 100644 tests/modules/test_setu_module.py create mode 100644 tests/shared/test_config_models.py create mode 100644 tests/test_main_command_routing.py create mode 100644 tests/test_main_config_source.py diff --git a/AGENTS.md b/AGENTS.md new file mode 100644 index 0000000..e8c87a1 --- /dev/null +++ b/AGENTS.md @@ -0,0 +1,39 @@ +# Repository Guidelines + +## Project Structure & Module Organization + +This is an AstrBot plugin. `main.py` centralizes AstrBot command registration. `src/` has four top-level packages only: `application/` for use cases and ports; `domain/` for Setu, fortune, and access-control rules; `infrastructure/` for AstrBot adapters, providers, persistence, permissions, and sending; and `shared/` for helpers and config models. Tests live in `tests/`, WebUI pages in `pages/`, and plugin skills in `skills/`. + +## Agent Skills & Tooling + +Use `$skill-astrbot-dev` for AstrBot structure, decorators/hooks, lifecycle, config schema, message flow, platform adapters, and LLM tools. If docs and source disagree, trust source. Use `$github` for issues, PRs, CI, and advanced repository queries through `gh`. + +## Build, Test, and Development Commands + +- `python -m pip install -e ".[dev]"`: install the plugin with dev tools. +- `python -m pip install -U astrbot`: refresh the AstrBot SDK for local signatures. +- `PYTHONPATH=/path/to/data/plugins python -m pytest`: run the full test suite. +- `python -m pytest tests/domain`: run focused domain tests. +- `python -m ruff check .`: lint Python code. +- `python -m ruff format .`: format Python files. +- `python -m py_compile main.py src/**/*.py tests/**/*.py`: syntax check. + +## Ruff Tooling + +Ruff settings come from repository config. The project targets Python 3.10, uses 100-character lines, and sorts `astrbot` and `astrbot_plugin_setu` as first-party imports. If the parent cache is not writable, use `RUFF_CACHE_DIR=.ruff_cache`. + +## Coding Style & Naming Conventions + +Use 4-space indentation, type hints, and `from __future__ import annotations` in new Python modules. Use `snake_case` for modules/functions, `PascalCase` for classes, and `UPPER_SNAKE_CASE` for constants. Handlers, hooks, and tool functions should be `async def`. Keep `main.py` focused on registration and forwarding; keep reusable orchestration in `application/`. + +## Testing Guidelines + +Use pytest and pytest-asyncio. Name files `test_*.py`, classes `TestFeatureName`, and methods `test_behavior`. Reuse fixtures from `tests/conftest.py` for AstrBot config, events, providers, and temp data directories. Add focused unit tests for domain and infrastructure changes. + +## Commit & Pull Request Guidelines + +Recent history mostly follows Conventional Commits, for example `feat(safety): ...`, `fix: ...`, `refactor: ...`, `docs: ...`, and `chore: ...`. Keep subjects imperative and scoped when useful. PRs should explain motivation, summarize core file changes, identify breaking changes, and include verification output or screenshots. + +## Security & Configuration Tips + +Do not commit secrets, tokens, local AstrBot runtime data, or downloaded image caches. Session overrides are runtime data; keep fixtures under `tests/`. Keep `_conf_schema.json`, `src/shared/config/models.py`, `metadata.yaml`, `requirements.txt`, and README examples in sync when adding settings or dependencies. diff --git a/CHANGELOG.md b/CHANGELOG.md index 2601846..49ecf18 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,20 @@ # Changelog +## [2.0.0] - 2026-05-17 + +### Changed +- **统一命令入口**:合并运势相关命令,减少主入口分发重复 +- **发送链路日志增强**:补全 sender / provider / fallback / NapCat stream 的关键日志 +- **配置加载路径修正**:插件初始化改为读取插件自身配置,不再误用 AstrBot 全局配置 + +### Fixed +- **修复图片反代未生效**:Lolicon / Atri 现在都会使用插件配置中的 proxy,并对 Pixiv 图片 URL 做兜底改写 +- **修复空 aspect_ratio 导致启动失败**:兼容配置文件中的空字符串,避免 Pydantic 校验报错 +- **修复旧临时文件路径直发失败**:普通发送前先将本地图片物化为稳定载荷,降低 OneBot 发送阶段失败率 + +### Added +- **统一 provider 诊断日志**:补充抓取、下载、缓存命中和失败汇总日志,便于定位“拿不到图”的根因 + ## [1.3.1] - 2026-04-19 ## [1.3.0] - 2026-04-10 diff --git a/README.md b/README.md index b2983d0..ae18489 100644 --- a/README.md +++ b/README.md @@ -59,7 +59,7 @@ - 🤖 **LLM 工具调用** - 可通过大模型自动获取色图 - 🏷️ **标签搜索** - 支持多标签、中文标签、模糊匹配 - 🔄 **多种发送模式** - 直接发送、合并转发、文件封装 -- 🛡️ **防审核机制** - 图片混淆、延迟撤回、Docx 封装 +- 🛡️ **防审核机制** - HTML 卡片 fallback、延迟撤回、Docx 封装 - ⚡ **性能优化** - 并发下载、磁盘缓存、自动补图、httpx、分段下载 - 🌐 **多平台适配** - 兼容 AstrBot 支持的所有平台 @@ -94,7 +94,7 @@ | `send_mode` | 字符串 | 发送模式 | `auto` / `image` / `forward` | `auto` | | `content_mode` | 字符串 | 内容模式 | `sfw` / `r18` / `mix` | `sfw` | | `max_count` | 整数 | 单次最大图片数 | 1-20 | `10` | -| `cache_enabled` | 布尔值 | 是否启用图片磁盘缓存 | `true` / `false` | `true` | +| `cache_enabled` | 布尔值 | 是否复用本地发送缓存 | `true` / `false` | `true` | | `exclude_ai` | 布尔值 | 是否排除 AI 生成图片 | `true` / `false` | `false` | ### HTML 卡片与防审核配置 @@ -102,6 +102,7 @@ | 配置项 | 类型 | 说明 | 可选值 | 默认值 | |--------|------|------|--------|--------| | `html_card_strategy` | 字符串 | HTML 卡片策略 | `never` / `fallback` / `always` | `fallback` | +| `napcat_stream_mode` | 字符串 | NapCat 流式上传策略 | `disabled` / `fallback` / `always` | `fallback` | | `auto_revoke_r18` | 布尔值 | R18 图片是否自动撤回 | `true` / `false` | `false` | | `r18_docx_mode` | 布尔值 | R18 是否使用 Docx 封装 | `true` / `false` | `true` | @@ -211,12 +212,32 @@ /setu 白丝 萝莉 /setu 3 白丝 /setu 4 白丝 萝莉 -/setu_mode r18 +/session_config set setu.content_mode r18 ``` - 数量范围支持中文数字 - 标签支持空格、逗号、顿号分隔 -- `/setu_mode` 可切换内容模式 +- `/session_config` 统一管理当前会话的覆盖配置 + +### 会话配置命令(管理员设置) + +会话覆盖配置会写入插件数据目录下的 `session_overrides.json`,不会修改全局 WebUI 配置。 +也可以在插件 WebUI 的 `sessionConfig` 页面集中管理所有群聊/私聊会话覆盖。 + +``` +/session_config get +/session_config get setu.content_mode +/session_config get json +/session_config set setu.content_mode r18 +/session_config set setu.r18_docx true +/session_config set setu.auto_revoke false +/session_config set setu.send_mode forward +/session_config set fortune.tags 白丝,猫耳 +/session_config clear setu.send_mode +/session_config clear +``` + +可用配置项:`setu.content_mode`、`setu.r18_docx`、`setu.auto_revoke`、`setu.send_mode`、`fortune.tags`、`fortune.content_mode`。 ### 黑白名单管理命令(管理员) @@ -235,10 +256,10 @@ | 命令 | 说明 | 示例 | |------|------|------| -| `/拉黑运势用户 @用户` | 将用户加入运势黑名单(必须AT) | `/拉黑运势用户 @小明` | -| `/解除运势拉黑 @用户` | 将用户从运势黑名单移除(必须AT) | `/解除运势拉黑 @小明` | -| `/信任运势用户 @用户` | 将用户加入运势白名单(必须AT) | `/信任运势用户 @小明` | -| `/取消运势信任 @用户` | 将用户从运势白名单移除(必须AT) | `/取消运势信任 @小明` | +| `/运势用户 拉黑 @用户` | 将用户加入运势黑名单(必须AT) | `/运势用户 拉黑 @小明` | +| `/运势用户 解黑 @用户` | 将用户从运势黑名单移除(必须AT) | `/运势用户 解黑 @小明` | +| `/运势用户 信任 @用户` | 将用户加入运势白名单(必须AT) | `/运势用户 信任 @小明` | +| `/运势用户 取消信任 @用户` | 将用户从运势白名单移除(必须AT) | `/运势用户 取消信任 @小明` | #### 群组功能开关 @@ -246,14 +267,23 @@ |------|------|------| | `/开启色图` | 在本群开启色图功能(移出色图群组黑名单) | `/开启色图` | | `/关闭色图` | 在本群关闭色图功能(加入色图群组黑名单) | `/关闭色图` | -| `/开启运势` | 在本群开启运势功能(移出运势群组黑名单) | `/开启运势` | -| `/关闭运势` | 在本群关闭运势功能(加入运势群组黑名单) | `/关闭运势` | +| `/运势开关 开` | 在本群开启运势功能(移出运势群组黑名单) | `/运势开关 开` | +| `/运势开关 关` | 在本群关闭运势功能(加入运势群组黑名单) | `/运势开关 关` | + +#### 运势刷新 + +| 命令 | 说明 | 示例 | +|------|------|------| +| `/运势刷新` | 刷新自己的今日运势 | `/运势刷新` | +| `/运势刷新 本群` | 刷新当前群今日运势 | `/运势刷新 本群` | +| `/运势刷新 全局` | 刷新全局今日运势 | `/运势刷新 全局` | **注意:** - 以上命令仅限管理员或超级管理员使用。 - 用户类命令必须通过 `@` 指定目标用户,不支持直接输入用户 ID。 - 群组命令仅作用于当前群。 - 白名单/黑名单会自动保持互斥(同一功能下不会同时存在)。 +- 旧命令 `/开启运势`、`/关闭运势`、`/拉黑运势用户`、`/解除运势拉黑`、`/信任运势用户`、`/取消运势信任`、`/刷新今日运势`、`/刷新本群今日运势`、`/刷新全局今日运势` 仍可继续使用。 #### 安全配置示例(`safety`) @@ -289,11 +319,14 @@ | 工具名 | 作用 | 参数 | 权限 | |---|---|---|---| | `get_setu_image` | 获取并发送随机图片 | `count: integer`(数量), `tags: string[]`(标签) | 普通用户可用 | -| `get_setu_content_mode` | 查看当前会话生效的内容模式 | 无 | 普通用户可用 | -| `set_setu_content_mode` | 设置当前会话内容模式 | `mode: string`,可选 `sfw/r18/mix/clear` | 管理员/超级管理员 | -| `set_setu_r18_docx_mode` | 设置当前会话 R18 Docx 封装开关 | `enabled: boolean`(部分场景支持 clear 语义) | 管理员/超级管理员 | -| `set_setu_auto_revoke` | 设置当前会话 R18 自动撤回开关 | `enabled: boolean`(部分场景支持 clear 语义) | 管理员/超级管理员 | -| `set_setu_send_mode` | 设置当前会话发送模式 | `mode: string`,可选 `image/forward/auto/clear` | 管理员/超级管理员 | + +##### 会话配置工具 + +| 工具名 | 作用 | 参数 | 权限 | +|---|---|---|---| +| `get_session_config` | 查看当前会话全部配置或单个 key 的生效值 | `key?: string` | 普通用户可用 | +| `set_session_config` | 设置当前会话一个覆盖配置 | `key: string`, `value: string` | 管理员/超级管理员 | +| `clear_session_config` | 清除当前会话一个覆盖配置,或清空全部覆盖 | `key?: string` | 管理员/超级管理员 | ##### 今日运势工具 @@ -303,13 +336,11 @@ | `refresh_my_fortune` | 刷新"我的"今日运势 | 无 | 管理员 | | `refresh_group_fortune` | 刷新当前群今日运势 | 无 | 管理员 | | `refresh_all_fortune` | 刷新全局今日运势 | 无 | 超级管理员 | -| `get_fortune_config` | 查看当前会话运势配置 | 无 | 普通用户可用 | -| `set_fortune_config` | 设置当前会话运势配置 | `tags: string`, `mode: string(sfw/r18/mix)` | 管理员 | ##### 调用建议 -- 需要"仅查看状态"时优先调用查询类工具(如 `get_setu_content_mode`、`get_fortune_config`)。 -- 需要会话级覆写时使用 `set_*` 工具;希望回到全局配置时可使用 `clear` 语义参数(支持的工具见上表)。 +- 需要"仅查看状态"时优先调用 `get_session_config`。 +- 需要会话级覆写时使用 `set_session_config`;希望回到全局配置时使用 `clear_session_config`。 - 对于发送类工具,插件会直接把结果发送到当前会话,工具返回文本用于说明执行结果。 ### 高级用法 @@ -317,8 +348,8 @@ | 功能 | 说明 | 配置方式 | |------|------|----------| | **自定义 API** | 设置 `api_type` 为 `custom`,填写自定义 API 地址和解析规则,实现对接任意第三方色图接口 | 配置面板 | -| **图片混淆** | 如遇平台审核拦截,插件会自动尝试对图片进行字节级混淆重发 | 自动触发 | -| **磁盘缓存** | 通过 `cache_enabled` 启用图片磁盘缓存,提升多次请求同一图片的响应速度 | 配置面板 | +| **NapCat 流式上传** | 通过 `napcat_stream_mode` 控制本地图片文件的流式上传,默认普通发送失败后自动重试 | 配置面板 | +| **发送缓存** | 图片先落盘再发送;`cache_enabled` 控制是否复用未过期的本地文件,降低 original 大图内存压力 | 配置面板 | | **多 API 策略** | 支持 `all` 模式自动切换多 API,提升获取成功率 | 设置 `api_type` 为 `all` | | **标签与过滤** | 支持多标签、中文标签、AI 过滤(`exclude_ai`),可灵活组合搜索条件 | 配置面板 | @@ -334,6 +365,8 @@ | 参数 | 说明 | 推荐值 | |------|------|--------| +| `napcat_stream_mode` | NapCat/OneBot 图片传输策略:`fallback` 先普通发送,失败后流式上传;`always` 发送前先流式上传;`disabled` 不使用流式上传 | `fallback` | +| `cache_enabled` | 是否复用发送缓存。即使关闭复用,运行时仍会优先落盘发送,避免大图长期停留在内存中 | `true` | | `enable_range_download` | 启用分段下载,将大图片分多段并行下载,适合高带宽服务器 | `false`(一般)/ `true`(高带宽) | | `range_segments` | 分段数 | 2-4 | | `range_download_threshold` | 分段下载阈值(KB),大于此值才启用分段 | 512 | diff --git a/_conf_schema.json b/_conf_schema.json index 92c5e6b..e4f228c 100644 --- a/_conf_schema.json +++ b/_conf_schema.json @@ -84,24 +84,12 @@ "hint": "发送 R18 内容后多久自动撤回,默认 30 秒。", "default": 30 }, - "url_send_mode": { - "type": "bool", - "description": "URL 发送模式", - "hint": "开启后直接发送图片 URL 而不是下载后发送。可显著降低服务器带宽和内存占用,图片由客户端直接加载。", - "default": false - }, - "url_send_verify": { - "type": "bool", - "description": "验证 URL 有效性", - "hint": "发送前检查图片 URL 是否可访问(返回 200)。建议开启以避免发送失效链接。", - "default": true - }, - "url_send_timeout": { - "type": "int", - "description": "URL 验证超时(秒)", - "hint": "验证 URL 时的 HTTP 请求超时时间。默认 5 秒。", - "default": 5, - "slider": {"min": 2, "max": 10, "step": 1} + "napcat_stream_mode": { + "type": "string", + "description": "NapCat 流式上传", + "hint": "disabled=不用流式上传,fallback=普通发送失败后流式重试,always=发送前优先流式上传。", + "default": "fallback", + "options": ["disabled", "fallback", "always"] } } }, @@ -186,14 +174,14 @@ } }, "cache": { - "description": "图片缓存", + "description": "发送缓存", "type": "object", - "hint": "简单的基于 URL 键值的本地图片缓存,带索引文件。", + "hint": "图片会先流式下载到插件数据目录,再从本地文件发送,避免 original 大图进入内存。", "items": { "enabled": { "type": "bool", "description": "启用缓存", - "hint": "通过 URL 缓存图片以减少重复下载。", + "hint": "开启后复用未过期的本地发送缓存;关闭后仍会落盘发送,但不复用旧文件。", "default": true }, "ttl_hours": { @@ -546,102 +534,5 @@ "default": 30 } } - }, - "session_configs": { - "type": "template_list", - "description": "会话级配置覆盖", - "hint": "为特定群聊或私聊设置独立配置,优先于全局配置。可通过命令 /setu_config 在会话中设置。", - "default": [], - "obvious_hint": true, - "templates": { - "session_template": { - "name": "会话配置", - "hint": "一个群聊或私聊的独立配置", - "items": { - "session_id": { - "type": "string", - "description": "会话 ID", - "hint": "群号或用户 ID", - "default": "" - }, - "session_type": { - "type": "string", - "description": "会话类型", - "hint": "group=群聊,private=私聊", - "default": "group", - "options": ["group", "private"] - }, - "content_mode": { - "type": "string", - "description": "内容模式", - "hint": "覆盖全局内容模式设置", - "default": "", - "options": ["", "sfw", "r18", "mix"] - }, - "r18_docx_mode": { - "type": "string", - "description": "R18 Docx 打包模式", - "hint": "覆盖全局 R18 Docx 打包设置", - "default": "", - "options": ["", "enabled", "disabled"] - }, - "auto_revoke_r18": { - "type": "string", - "description": "R18 自动撤回", - "hint": "覆盖全局自动撤回设置", - "default": "", - "options": ["", "enabled", "disabled"] - }, - "send_mode": { - "type": "string", - "description": "发送模式", - "hint": "覆盖全局发送模式设置", - "default": "", - "options": ["", "image", "forward", "auto"] - } - } - } - } - }, - "fortune_session_configs": { - "type": "template_list", - "description": "今日运势会话配置覆盖", - "hint": "为特定群聊或私聊设置独立的今日运势配置。可通过命令 /jrys_config 在会话中设置。", - "default": [], - "obvious_hint": true, - "templates": { - "fortune_session_template": { - "name": "今日运势会话配置", - "hint": "一个群聊或私聊的今日运势独立配置", - "items": { - "session_id": { - "type": "string", - "description": "会话 ID", - "hint": "群号或用户 ID", - "default": "" - }, - "session_type": { - "type": "string", - "description": "会话类型", - "hint": "group=群聊,private=私聊", - "default": "group", - "options": ["group", "private"] - }, - "tags": { - "type": "string", - "description": "标签", - "hint": "获取今日运势图片时的标签,如 '少女,可爱'", - "default": "" - }, - "content_mode": { - "type": "string", - "description": "内容模式", - "hint": "覆盖全局内容模式设置", - "default": "", - "options": ["", "sfw", "r18", "mix"] - } - } - } - } } } diff --git a/api/__init__.py b/api/__init__.py deleted file mode 100644 index d4a1646..0000000 --- a/api/__init__.py +++ /dev/null @@ -1,23 +0,0 @@ -"""API integration layer for setu plugin.""" - -from __future__ import annotations - -from .providers import ( - AtriProvider, - CustomApiProvider, - LoliconProvider, - MultiApiProvider, - SetuImageProvider, - SexNyanRunProvider, - get_provider, -) - -__all__ = [ - "SetuImageProvider", - "MultiApiProvider", - "LoliconProvider", - "AtriProvider", - "SexNyanRunProvider", - "CustomApiProvider", - "get_provider", -] diff --git a/config/__init__.py b/config/__init__.py deleted file mode 100644 index 9561ba9..0000000 --- a/config/__init__.py +++ /dev/null @@ -1,50 +0,0 @@ -"""Setu 插件配置解析和兼容性辅助模块。 - -提供配置读取、标签解析、以及新旧配置格式的兼容性支持。 -""" - -from __future__ import annotations - -from astrbot.core import AstrBotConfig - -from .api import ApiConfigMixin -from .base import ConfigBase -from .delivery import DeliveryConfigMixin -from .helpers import parse_count -from .html_card import HtmlCardConfigMixin -from .messages import MessagesConfigMixin -from .safety import SafetyConfigMixin -from .session import SessionConfigManager -from .session_base import SessionConfigBase - - -class SetuConfig( - ConfigBase, - ApiConfigMixin, - DeliveryConfigMixin, - HtmlCardConfigMixin, - SafetyConfigMixin, - MessagesConfigMixin, -): - """Setu 插件配置包装类。 - - 支持嵌套配置和旧版配置的兼容性处理,提供类型安全的配置访问方法。 - - 通过多重继承组合各个功能模块的配置: - - ApiConfigMixin: API 相关配置 - - DeliveryConfigMixin: 发送相关配置 - - HtmlCardConfigMixin: HTML 卡片配置 - - SafetyConfigMixin: 安全和缓存配置 - - MessagesConfigMixin: 消息配置 - """ - - def __init__(self, config: AstrBotConfig): - """初始化配置包装器。 - - 参数: - config: AstrBot 配置对象 - """ - super().__init__(config) - - -__all__ = ["SetuConfig", "parse_count", "SessionConfigManager", "SessionConfigBase"] diff --git a/config/api.py b/config/api.py deleted file mode 100644 index 3f97159..0000000 --- a/config/api.py +++ /dev/null @@ -1,332 +0,0 @@ -"""API 相关配置。""" - -from __future__ import annotations - -from typing import TYPE_CHECKING, Any - -from .helpers import safe_bool, safe_int - -if TYPE_CHECKING: - from .base import ConfigBase - - -class ApiConfigMixin: - """API 配置混入类。""" - - _read: Any - - @property - def api_type(self: ConfigBase) -> str: - """API 提供商类型。 - - 返回: - 返回 API 类型:lolicon、atri、sexnyan、custom 或 all - """ - api_type = self._read( - ("setu_general", "api_type"), - ("general", "api_type"), - "api_type", - "apiType", - default="lolicon", - ) - return ( - api_type - if api_type in ("lolicon", "atri", "sexnyan", "custom", "all") - else "lolicon" - ) - - @property - def multi_api_strategy(self: ConfigBase) -> str: - """多 API 策略。 - - 返回: - 返回策略类型:round_robin(轮询)、random(随机)、failover(故障转移) - """ - strategy = self._read( - ("setu_general", "multi_api_strategy"), - ("general", "multi_api_strategy"), - "multi_api_strategy", - default="round_robin", - ) - return ( - strategy - if strategy in ("round_robin", "random", "failover") - else "round_robin" - ) - - @property - def content_mode(self: ConfigBase) -> str: - """内容模式(分级)。 - - 返回: - 返回内容模式:sfw(全年龄)、r18(成人)、mix(混合) - """ - mode = self._read( - ("setu_general", "content_mode"), - ("general", "content_mode"), - "content_mode", - "contentMode", - default="sfw", - ) - return mode if mode in ("sfw", "r18", "mix") else "sfw" - - @property - def exclude_ai(self: ConfigBase) -> bool: - """排除 AI 生成作品(仅 lolicon 生效)。 - - 返回: - 是否排除 AI 生成的图片 - """ - return safe_bool( - self._read( - ("api", "lolicon", "exclude_ai"), - "exclude_ai", - "excludeAi", - default=True, - ), - True, - ) - - @property - def image_size(self: ConfigBase) -> str: - """图片尺寸(仅 lolicon 生效)。 - - 返回: - 返回图片尺寸:original(原图)、regular、small、thumb、mini - """ - size = self._read( - ("api", "lolicon", "image_size"), "image_size", default="original" - ) - return ( - size - if size in ("original", "regular", "small", "thumb", "mini") - else "original" - ) - - @property - def proxy(self: ConfigBase) -> str: - """图片代理主机(仅 lolicon 生效)。 - - 返回: - 代理服务器地址,默认 i.pixiv.re - """ - return str( - self._read(("api", "lolicon", "proxy"), "proxy", default="i.pixiv.re") - ) - - @property - def aspect_ratio(self: ConfigBase) -> str: - """宽高比过滤(仅 lolicon 生效)。 - - 返回: - 返回宽高比:horizontal(横向)、vertical(纵向)、square(方形) - """ - ratio = self._read( - ("api", "lolicon", "aspect_ratio"), "aspect_ratio", default="" - ) - return ratio if ratio in ("horizontal", "vertical", "square") else "" - - @property - def uid(self: ConfigBase) -> list[int]: - """作者 UID 列表(仅 lolicon 生效)。 - - 返回: - 指定作者的 UID 列表,用于筛选特定作者的作品 - """ - uids = self._read(("api", "lolicon", "uid"), "uid", default=[]) - if isinstance(uids, list): - return [safe_int(uid, 0) for uid in uids if safe_int(uid, 0) > 0] - return [] - - @property - def keyword(self: ConfigBase) -> str: - """关键词过滤(仅 lolicon 生效)。 - - 返回: - 用于过滤图片的关键词 - """ - return str(self._read(("api", "lolicon", "keyword"), "keyword", default="")) - - @property - def max_replenish_rounds(self: ConfigBase) -> int: - """最大补充轮次。 - - 返回: - 部分图片下载失败时的重试轮次 - """ - return safe_int( - self._read( - ("setu_general", "max_replenish_rounds"), - ("general", "max_replenish_rounds"), - "max_replenish_rounds", - "maxReplenishRounds", - default=3, - ), - 3, - ) - - @property - def custom_api_configs(self: ConfigBase) -> list[dict[str, Any]]: - """自定义 API 配置列表。 - - 返回: - 用户自定义的 API 配置列表 - """ - configs = self._read( - ("api", "custom_api_configs"), "custom_api_configs", default=[] - ) - if isinstance(configs, list): - return configs - return [] - - def get_custom_api_config(self, name: str | None = None) -> dict[str, Any] | None: - """获取自定义 API 配置。 - - 参数: - name: 配置名称,如果不指定则返回第一个配置 - - 返回: - 配置字典或 None - """ - configs = self.custom_api_configs - if not configs: - return None - - if name: - for cfg in configs: - if cfg.get("name") == name: - return cfg - return None - return configs[0] - - @property - def custom_api(self) -> dict[str, Any]: - """自定义 API 基本信息。 - - 返回: - 包含 url、method、timeout 的字典 - """ - cfg = self.get_custom_api_config() - if cfg: - return { - "url": cfg.get("url", ""), - "method": cfg.get("method", "GET"), - "timeout": safe_int(cfg.get("timeout"), 30), - } - return {"url": "", "method": "GET", "timeout": 30} - - @property - def api_response_parser(self) -> dict[str, Any]: - """API 响应解析器配置。 - - 返回: - 包含解析器类型和 JSON 路径的字典 - """ - cfg = self.get_custom_api_config() - if cfg: - return { - "type": cfg.get("parser_type", "auto"), - "json_path": cfg.get("json_path", ""), - } - return {"type": "auto", "json_path": ""} - - # Atri 配置属性(和 Lolicon 相同结构) - @property - def atri_image_size(self: ConfigBase) -> str: - """图片尺寸(仅 atri 生效)。 - - 返回: - 返回图片尺寸:original(原图)、regular、small、thumb、mini - """ - size = self._read( - ("api", "atri", "image_size"), "image_size", default="original" - ) - return ( - size - if size in ("original", "regular", "small", "thumb", "mini") - else "original" - ) - - @property - def atri_proxy(self: ConfigBase) -> str: - """图片代理主机(仅 atri 生效)。 - - 返回: - 代理服务器地址,默认 i.pixiv.re - """ - return str(self._read(("api", "atri", "proxy"), "proxy", default="i.pixiv.re")) - - @property - def atri_aspect_ratio(self: ConfigBase) -> str: - """宽高比过滤(仅 atri 生效)。 - - 返回: - 返回宽高比:horizontal(横向)、vertical(纵向)、square(方形) - """ - ratio = self._read(("api", "atri", "aspect_ratio"), "aspect_ratio", default="") - return ratio if ratio in ("horizontal", "vertical", "square") else "" - - @property - def atri_uid(self: ConfigBase) -> list[int]: - """作者 UID 列表(仅 atri 生效)。 - - 返回: - 指定作者的 UID 列表,用于筛选特定作者的作品 - """ - uids = self._read(("api", "atri", "uid"), "uid", default=[]) - if isinstance(uids, list): - return [safe_int(uid, 0) for uid in uids if safe_int(uid, 0) > 0] - return [] - - @property - def atri_keyword(self: ConfigBase) -> str: - """关键词过滤(仅 atri 生效)。 - - 返回: - 用于过滤图片的关键词 - """ - return str(self._read(("api", "atri", "keyword"), "keyword", default="")) - - @property - def atri_exclude_ai(self: ConfigBase) -> bool: - """排除 AI 生成作品(仅 atri 生效)。 - - 返回: - 是否排除 AI 生成的图片 - """ - return safe_bool( - self._read( - ("api", "atri", "exclude_ai"), - "exclude_ai", - "excludeAi", - default=True, - ), - True, - ) - - @property - def fortune_api_type(self: ConfigBase) -> str: - """今日运势的 API 提供商类型。 - - 返回: - 返回 API 类型:inherit(继承色图配置)、lolicon、atri、sexnyan、custom - """ - api_type = self._read( - ("fortune", "api_type"), "fortune_api_type", default="inherit" - ) - if api_type in ("inherit", "lolicon", "atri", "sexnyan", "custom"): - return api_type - return "inherit" - - def get_effective_fortune_api_type(self: ConfigBase) -> str: - """获取生效的今日运势 API 类型。 - - 如果设置为 inherit,则使用色图的 api_type。 - - 返回: - 生效的 API 类型:lolicon、atri、sexnyan、custom、all - """ - fortune_api = self.fortune_api_type - if fortune_api == "inherit": - return self.api_type - return fortune_api diff --git a/config/base.py b/config/base.py deleted file mode 100644 index 206f106..0000000 --- a/config/base.py +++ /dev/null @@ -1,61 +0,0 @@ -"""配置基础类。""" - -from __future__ import annotations - -from typing import Any - -from astrbot.core import AstrBotConfig - - -class ConfigBase: - """配置基础类,提供嵌套配置读取功能。""" - - def __init__(self, config: AstrBotConfig): - """初始化配置包装器。 - - 参数: - config: AstrBot 配置对象 - """ - self._cfg = config - - def _read( - self, - nested_path: tuple[str, ...], - *legacy_keys: str, - default: Any = None, - ) -> Any: - """读取配置值,支持嵌套路径和旧版键名回退。 - - 优先尝试嵌套路径读取,如果失败则尝试旧版键名,最后返回默认值。 - - 参数: - nested_path: 嵌套配置路径,如 ("general", "api_type") - *legacy_keys: 旧版配置键名,用于兼容性回退 - default: 默认值,读取失败时返回 - - 返回: - 配置值或默认值 - """ - current: Any = self._cfg - for key in nested_path: - if isinstance(current, dict): - current = current.get(key) - elif hasattr(current, "get"): - current = current.get(key) - else: - current = None - if current is None: - break - - if current is not None: - return current - - # 尝试旧版键名 - for key in legacy_keys: - try: - value = self._cfg.get(key) - except (KeyError, AttributeError): - value = None - if value is not None: - return value - return default diff --git a/config/delivery.py b/config/delivery.py deleted file mode 100644 index 1018b56..0000000 --- a/config/delivery.py +++ /dev/null @@ -1,151 +0,0 @@ -"""发送和交付相关配置。""" - -from __future__ import annotations - -from typing import TYPE_CHECKING, Any - -from .helpers import safe_bool, safe_int - -if TYPE_CHECKING: - from .base import ConfigBase - - -class DeliveryConfigMixin: - """发送配置混入类。""" - - _read: Any - - @property - def r18_docx_mode(self: ConfigBase) -> bool: - """R18 Docx 打包模式。 - - 返回: - 是否将 R18 图片打包到 docx 文件中 - """ - return safe_bool( - self._read(("delivery", "r18_docx_mode"), "r18_docx_mode", default=True), - True, - ) - - @property - def send_mode(self: ConfigBase) -> str: - """图片发送模式。 - - 返回: - 返回发送模式:image(直接发送)、forward(合并转发)、auto(自动) - """ - mode = self._read( - ("delivery", "send_mode"), "send_mode", "sendMode", default="image" - ) - return mode if mode in ("image", "forward", "auto") else "image" - - @property - def auto_handle_send_failure(self: ConfigBase) -> bool: - """自动处理发送失败。 - - 返回: - 发送失败时是否自动尝试 HTML 卡片降级发送 - """ - return safe_bool( - self._read( - ("delivery", "auto_handle_send_failure"), - "auto_handle_send_failure", - default=True, - ), - True, - ) - - @property - def auto_revoke_r18(self: ConfigBase) -> bool: - """自动撤回 R18 内容。 - - 返回: - 是否自动撤回 R18 图片/文件 - """ - return safe_bool( - self._read( - ("delivery", "auto_revoke_r18"), - "auto_revoke_r18", - default=False, - ), - False, - ) - - @property - def auto_revoke_delay(self: ConfigBase) -> int: - """自动撤回延迟时间(秒)。 - - 返回: - R18 内容发送后多久自动撤回 - """ - return safe_int( - self._read( - ("delivery", "auto_revoke_delay"), - "auto_revoke_delay", - default=30, - ), - 30, - ) - - @property - def max_count(self: ConfigBase) -> int: - """每次请求最大图片数。 - - 返回: - 单次命令的上限 - """ - return safe_int( - self._read(("general", "max_count"), "max_count", "maxCount", default=10), - 10, - ) - - @property - def url_send_mode(self: ConfigBase) -> bool: - """URL 发送模式。 - - 返回: - 是否直接发送图片 URL 而不是下载后发送 - 开启后插件不会下载图片,而是直接发送图片链接 - 可以降低服务器带宽和内存占用 - """ - return safe_bool( - self._read( - ("delivery", "url_send_mode"), - "url_send_mode", - default=False, - ), - False, - ) - - @property - def url_send_verify(self: ConfigBase) -> bool: - """URL 发送前验证链接有效性。 - - 返回: - 是否在发送前验证 URL 是否可访问(返回 200) - 仅当 url_send_mode 为 True 时生效 - """ - return safe_bool( - self._read( - ("delivery", "url_send_verify"), - "url_send_verify", - default=True, - ), - True, - ) - - @property - def url_send_timeout(self: ConfigBase) -> int: - """URL 验证超时时间(秒)。 - - 返回: - 验证 URL 时的 HTTP 请求超时时间 - """ - return safe_int( - self._read( - ("delivery", "url_send_timeout"), - "url_send_timeout", - default=5, - ), - 5, - ) diff --git a/config/helpers.py b/config/helpers.py deleted file mode 100644 index a21914c..0000000 --- a/config/helpers.py +++ /dev/null @@ -1,75 +0,0 @@ -"""配置辅助函数。""" - -from __future__ import annotations - -from typing import Any - -from astrbot.api import logger - - -def safe_int(value: Any, default: int) -> int: - """安全地解析整数。 - - 参数: - value: 待解析的值 - default: 解析失败时返回的默认值 - - 返回: - 解析后的正整数,失败返回默认值 - """ - try: - parsed = int(value) - return parsed if parsed > 0 else default - except Exception: - return default - - -def safe_bool(value: Any, default: bool) -> bool: - """安全地解析布尔值。 - - 支持布尔值和字符串形式的布尔值(如 "true", "yes", "1" 等)。 - - 参数: - value: 待解析的值 - default: 解析失败时返回的默认值 - - 返回: - 解析后的布尔值,失败返回默认值 - """ - if isinstance(value, bool): - return value - if isinstance(value, str): - lowered = value.strip().lower() - if lowered in {"1", "true", "yes", "on"}: - return True - if lowered in {"0", "false", "no", "off"}: - return False - return default - - -def parse_count(raw: str) -> int: - """解析阿拉伯数字或中文数字字符串。 - - 支持简单数字(如 "3")和中文数字(如 "三"、"十五"、"二十三")。 - 解析失败返回 -1。 - - 参数: - raw: 待解析的数字字符串 - - 返回: - 解析后的整数,失败返回 -1 - """ - from ..utils import cn_to_an - - s = (raw or "").strip() - if not s: - return 1 - if s.isdigit(): - return int(s) - # 尝试使用 utils 中的 cn_to_an 解析复杂中文数字 - try: - result = cn_to_an(s) - return result if result > 0 else -1 - except Exception as e: - logger.debug("error parsing count: %s", e) - return -1 diff --git a/config/html_card.py b/config/html_card.py deleted file mode 100644 index 4da6136..0000000 --- a/config/html_card.py +++ /dev/null @@ -1,62 +0,0 @@ -"""HTML 卡片相关配置。""" - -from __future__ import annotations - -from typing import TYPE_CHECKING, Any - -from .helpers import safe_int - -if TYPE_CHECKING: - from .base import ConfigBase - - -class HtmlCardConfigMixin: - """HTML 卡片配置混入类。""" - - _read: Any - - @property - def html_card_strategy(self: ConfigBase) -> str: - """HTML 卡片策略。 - - 返回: - 返回策略:never(从不)、fallback(失败时降级)、always(总是) - """ - strategy = self._read( - ("html_card", "strategy"), "html_card_strategy", default="fallback" - ) - if strategy in ("never", "fallback", "always"): - return strategy - # 兼容旧版 enabled 配置 - old_enabled = self._read(("html_card", "enabled"), default=None) - if old_enabled is True: - return "fallback" - return "never" - - @property - def html_card_mode(self: ConfigBase) -> str: - """HTML 卡片模式。 - - 返回: - 返回卡片模式:single(单张)、multiple(多张) - """ - mode = self._read(("html_card", "mode"), "html_card_mode", default="single") - return mode if mode in ("single", "multiple") else "single" - - @property - def html_card_padding(self: ConfigBase) -> int: - """HTML 卡片内边距。 - - 返回: - 卡片内部图片与边框的距离 - """ - return safe_int(self._read(("html_card", "card_padding"), default=6), 6) - - @property - def html_card_gap(self: ConfigBase) -> int: - """HTML 卡片间距。 - - 返回: - 多张图片之间的间距 - """ - return safe_int(self._read(("html_card", "card_gap"), default=6), 6) diff --git a/config/messages.py b/config/messages.py deleted file mode 100644 index 78e1cc1..0000000 --- a/config/messages.py +++ /dev/null @@ -1,100 +0,0 @@ -"""消息配置相关。""" - -from __future__ import annotations - -from typing import TYPE_CHECKING, Any - -from .helpers import safe_bool - -if TYPE_CHECKING: - pass - - -class MessagesConfigMixin: - """消息配置混入类。""" - - _read: Any - - @property - def msg_fetching_enabled(self) -> bool: - """是否启用获取中提示。 - - 返回: - 开始获取图片时是否发送提示消息 - """ - return safe_bool( - self._read(("messages", "fetching", "enabled"), default=True), - True, - ) - - @property - def msg_fetching_text(self) -> str: - """获取中提示文本。 - - 返回: - 开始获取图片时显示的文本 - """ - return str( - self._read( - ("messages", "fetching", "text"), - default="正在获取图片,请稍候...", - ) - ) - - @property - def msg_found_enabled(self) -> bool: - """是否启用找到图片提示。 - - 返回: - 成功找到图片后是否发送提示消息 - """ - return safe_bool( - self._read(("messages", "found", "enabled"), default=True), - True, - ) - - @property - def msg_found_text(self) -> str: - """找到图片提示文本。 - - 返回: - 成功找到图片后显示的文本,可使用 {count} 占位符 - """ - return str( - self._read( - ("messages", "found", "text"), - default="找到 {count} 张符合要求的图片~", - ) - ) - - @property - def msg_send_failed_text(self) -> str: - """发送失败提示文本。 - - 返回: - 图片发送失败时显示的文本 - """ - return str( - self._read( - ("messages", "send_failed", "text"), - "msg_send_failed_text", - default="图片发送失败,请稍后再试。", - ) - ) - - def format_found_message(self, count: int, revoke_delay: int | None = None) -> str: - """格式化找到图片的消息。 - - 将 msg_found_text 中的 {count} 和 {revoke_delay} 占位符替换为实际值。 - - 参数: - count: 找到的图片数量 - revoke_delay: 自动撤回延迟(秒),为 None 时不替换该变量 - - 返回: - 格式化后的消息文本 - """ - result = self.msg_found_text.replace("{count}", str(count)) - if revoke_delay is not None: - result = result.replace("{revoke_delay}", str(revoke_delay)) - return result diff --git a/config/safety.py b/config/safety.py deleted file mode 100644 index 2350d4b..0000000 --- a/config/safety.py +++ /dev/null @@ -1,262 +0,0 @@ -"""安全和缓存相关配置。""" - -from __future__ import annotations - -from typing import TYPE_CHECKING, Any - -from astrbot.api import logger - -from ..domain import DEFAULT_TAG_ALIAS -from .helpers import safe_bool, safe_int - -if TYPE_CHECKING: - pass - - -class SafetyConfigMixin: - """安全和缓存配置混入类。 - - 注意:用户级黑白名单已完全分离为 setu 和 fortune 独立的配置, - 请通过 AccessControlManager 直接使用功能级黑白名单方法。 - """ - - _read: Any - - @staticmethod - def _normalize_access_mode(value: Any, default: str = "none") -> str: - """规范化访问控制模式字符串。""" - if isinstance(value, str) and value in {"none", "blacklist", "whitelist"}: - return value - return default - - @property - def setu_access_control_mode(self) -> str: - """色图访问控制模式(旧配置,兼容保留)。""" - value = self._read(("safety", "setu_access_control_mode"), default="none") - return self._normalize_access_mode(value) - - @property - def fortune_access_control_mode(self) -> str: - """运势访问控制模式(旧配置,兼容保留)。""" - value = self._read(("safety", "fortune_access_control_mode"), default="none") - return self._normalize_access_mode(value) - - @property - def setu_user_access_control_mode(self) -> str: - """色图用户访问控制模式。""" - value = self._read( - ("safety", "setu_user_access_control_mode"), - "setu_user_access_control_mode", - default=self.setu_access_control_mode, - ) - return self._normalize_access_mode(value, self.setu_access_control_mode) - - @property - def setu_group_access_control_mode(self) -> str: - """色图群组访问控制模式。""" - value = self._read( - ("safety", "setu_group_access_control_mode"), - "setu_group_access_control_mode", - default=self.setu_access_control_mode, - ) - return self._normalize_access_mode(value, self.setu_access_control_mode) - - @property - def fortune_user_access_control_mode(self) -> str: - """运势用户访问控制模式。""" - value = self._read( - ("safety", "fortune_user_access_control_mode"), - "fortune_user_access_control_mode", - default=self.fortune_access_control_mode, - ) - return self._normalize_access_mode(value, self.fortune_access_control_mode) - - @property - def fortune_group_access_control_mode(self) -> str: - """运势群组访问控制模式。""" - value = self._read( - ("safety", "fortune_group_access_control_mode"), - "fortune_group_access_control_mode", - default=self.fortune_access_control_mode, - ) - return self._normalize_access_mode(value, self.fortune_access_control_mode) - - @property - def cache_enabled(self) -> bool: - """是否启用图片缓存。 - - 返回: - 是否启用 URL 图片磁盘缓存 - """ - return safe_bool(self._read(("cache", "enabled"), default=True), True) - - @property - def cache_ttl_hours(self) -> int: - """缓存 TTL(小时)。 - - 返回: - 缓存条目的存活时间 - """ - return safe_int(self._read(("cache", "ttl_hours"), default=2), 2) - - @property - def cache_max_items(self) -> int: - """最大缓存条目数。 - - 返回: - 缓存最多保留的条目数量 - """ - return safe_int(self._read(("cache", "max_items"), default=1), 1) - - @property - def cache_cleanup_on_start(self) -> bool: - """启动时清理缓存。 - - 返回: - 启动时是否自动清理过期缓存 - """ - return safe_bool(self._read(("cache", "cleanup_on_start"), default=True), True) - - @property - def download_concurrent_limit(self) -> int: - """并发下载限制。 - - 返回: - 同时下载图片的最大并发数,适用于高带宽服务器 - """ - return safe_int( - self._read(("performance", "download_concurrent_limit"), default=10), - 10, - ) - - @property - def download_timeout_seconds(self) -> int: - """下载超时时间(秒)。 - - 返回: - 单个图片下载的最大超时时间 - """ - return safe_int( - self._read(("performance", "download_timeout_seconds"), default=30), - 30, - ) - - @property - def enable_range_download(self) -> bool: - """启用分段下载。 - - 返回: - 是否将单张大图分成多段并行下载 - """ - return safe_bool( - self._read(("performance", "enable_range_download"), default=False), - False, - ) - - @property - def range_segments(self) -> int: - """分段下载的段数。 - - 返回: - 单张图片的分段下载数,2-4 段通常效果最佳 - """ - return safe_int( - self._read(("performance", "range_segments"), default=3), - 3, - ) - - @property - def range_threshold(self) -> int: - """分段下载阈值(KB)。 - - 返回: - 图片大于此值才启用分段下载(单位 KB) - """ - return safe_int( - self._read(("performance", "range_download_threshold"), default=512), - 512, - ) - - @property - def tag_alias(self) -> dict[str, list[str]]: - """标签别名映射。 - - 返回: - 标签到别名列表的映射字典 - """ - # 从 setu_general 读取(优先)或 safety(兼容旧配置) - alias_str = self._read( - ("setu_general", "tag_alias"), - ("safety", "tag_alias"), - "tag_alias", - default="", - ) - if not alias_str or not isinstance(alias_str, str): - return DEFAULT_TAG_ALIAS - - result: dict[str, list[str]] = {} - lines = alias_str.strip().replace("\r\n", "\n").split("\n") - for line in lines: - line = line.strip() - if not line or line.startswith("#") or line.startswith(";"): - continue - - if "=" not in line: - continue - key, value = line.split("=", 1) - key = key.strip() - value = value.strip() - if not key or not value: - continue - aliases = [a.strip() for a in value.split(",") if a.strip()] - if aliases: - result[key] = aliases - - if not result: - logger.debug("tag_alias parsing returned empty map, fallback to defaults") - return DEFAULT_TAG_ALIAS.copy() - return result - - def resolve_tags(self, raw_tag: str) -> list[str]: - """解析并规范化标签字符串。 - - 将逗号或空格分隔的标签字符串解析为列表,并应用别名映射。 - - 参数: - raw_tag: 原始标签字符串 - - 返回: - 规范化后的标签列表 - """ - if not raw_tag: - return [] - - normalized = raw_tag.replace(",", ",").replace(" ", ",") - tags = [t.strip() for t in normalized.split(",") if t.strip()] - - result: list[str] = [] - for tag in tags: - canonical = self._find_canonical_tag(tag) - result.append(canonical if canonical else tag) - return result - - def _find_canonical_tag(self, tag: str) -> str | None: - """查找标签的标准名称。 - - 参数: - tag: 标签名称(可能是别名) - - 返回: - 标准标签名称,如果未找到返回 None - """ - normalized = tag.lower() - for canonical, aliases in self.tag_alias.items(): - if not isinstance(canonical, str): - continue - if normalized == canonical.lower(): - return canonical - if isinstance(aliases, list): - for alias in aliases: - if isinstance(alias, str) and normalized == alias.lower(): - return canonical - return None diff --git a/core/__init__.py b/core/__init__.py deleted file mode 100644 index 25fb24c..0000000 --- a/core/__init__.py +++ /dev/null @@ -1,7 +0,0 @@ -"""Core orchestration exports for setu plugin.""" - -from __future__ import annotations - -from .setu_core import SetuCore - -__all__ = ["SetuCore"] diff --git a/core/rate_limiter.py b/core/rate_limiter.py deleted file mode 100644 index 253a18c..0000000 --- a/core/rate_limiter.py +++ /dev/null @@ -1,120 +0,0 @@ -"""请求限流管理器 - 实现会话级用户并发控制。""" - -from __future__ import annotations - -import asyncio -from typing import TYPE_CHECKING - -from astrbot.api import logger - -if TYPE_CHECKING: - from astrbot.api.event import AstrMessageEvent - - -class SessionRequestLimiter: - """会话级请求限流器。 - - 确保每个用户在每个会话中同时只能有一个正在处理的请求。 - 使用字典跟踪正在处理的请求,键格式为: "{session_id}:{user_id}"。 - - Attributes: - _locks: 存储每个用户的请求锁 - _global_lock: 用于保护 _locks 字典的锁 - """ - - def __init__(self) -> None: - self._locks: dict[str, asyncio.Lock] = {} - self._global_lock = asyncio.Lock() - - @staticmethod - def _get_key(session_id: str, user_id: str) -> str: - """生成唯一的请求键。""" - return f"{session_id}:{user_id}" - - async def acquire(self, event: AstrMessageEvent) -> bool: - """尝试获取请求锁。 - - 参数: - event: 消息事件对象 - - 返回: - 如果成功获取锁返回 True,如果用户已有请求在处理返回 False - """ - session_id = event.get_session_id() - user_id = event.get_sender_id() - key = self._get_key(session_id, user_id) - - async with self._global_lock: - if key in self._locks: - # 用户已有请求在处理中 - logger.debug( - "[rate_limit] Request rejected for user %s in session %s: " - "already has a pending request", - user_id, - session_id, - ) - return False - - self._locks[key] = asyncio.Lock() - lock = self._locks[key] - - try: - # 新锁理论上不会阻塞,但这里是可取消的 await 点 - await lock.acquire() - except asyncio.CancelledError: - async with self._global_lock: - current = self._locks.get(key) - if current is lock: - del self._locks[key] - raise - - logger.debug( - "[rate_limit] Request acquired for user %s in session %s", - user_id, - session_id, - ) - return True - - async def release(self, event: AstrMessageEvent) -> None: - """释放请求锁。 - - 参数: - event: 消息事件对象 - """ - session_id = event.get_session_id() - user_id = event.get_sender_id() - key = self._get_key(session_id, user_id) - - async with self._global_lock: - if key in self._locks: - try: - self._locks[key].release() - except RuntimeError: - # 锁可能已被释放 - pass - del self._locks[key] - logger.debug( - "[rate_limit] Request released for user %s in session %s", - user_id, - session_id, - ) - - async def is_pending(self, event: AstrMessageEvent) -> bool: - """检查用户是否有请求在处理中。 - - 参数: - event: 消息事件对象 - - 返回: - 如果有请求在处理中返回 True - """ - session_id = event.get_session_id() - user_id = event.get_sender_id() - key = self._get_key(session_id, user_id) - - async with self._global_lock: - return key in self._locks - - def get_pending_count(self) -> int: - """获取当前正在处理的请求数量。""" - return len(self._locks) diff --git a/core/revoke_manager.py b/core/revoke_manager.py deleted file mode 100644 index 3f94d9d..0000000 --- a/core/revoke_manager.py +++ /dev/null @@ -1,136 +0,0 @@ -"""撤回管理器模块。""" - -from __future__ import annotations - -import asyncio -import json -import time -from pathlib import Path -from typing import Any - -from astrbot.api import logger - - -class RevokeManager: - """管理 revoke.json,用于追踪被撤回的 R18 消息。""" - - def __init__(self, data_dir: Path): - self.data_dir = data_dir / "setu" - self.revoke_file = self.data_dir / "setu_revoke.json" - self._lock = asyncio.Lock() - self._data: dict[str, Any] = {"entries": {}, "meta": {}} - - async def initialize(self) -> None: - """初始化 revoke.json 文件。""" - self.data_dir.mkdir(parents=True, exist_ok=True) - # 检查并迁移旧数据(从 data_dir/revoke.json 到 data_dir/setu/revoke.json) - await self._migrate_old_data() - await self._load() - - async def _migrate_old_data(self) -> None: - """迁移旧位置的数据文件到新位置。""" - old_revoke_file = self.data_dir.parent / "revoke.json" - if old_revoke_file.exists() and not self.revoke_file.exists(): - try: - content = old_revoke_file.read_text(encoding="utf-8") - self._data = json.loads(content) - await self._save() - old_revoke_file.unlink() - logger.info("[revoke_manager] Migrated old revoke data to new location") - except (OSError, json.JSONDecodeError) as exc: - logger.warning("[revoke_manager] Failed to migrate old data: %s", exc) - - async def _load(self) -> None: - """从文件加载撤回数据。""" - if not self.revoke_file.exists(): - self._data = {"entries": {}, "meta": {"created_at": int(time.time())}} - await self._save() - return - try: - async with self._lock: - content = self.revoke_file.read_text(encoding="utf-8") - loaded = json.loads(content) - self._data = { - "entries": loaded.get("entries", {}), - "meta": loaded.get("meta", {}), - } - except (json.JSONDecodeError, OSError): - logger.exception("Failed to load revoke.json") - self._data = {"entries": {}, "meta": {"created_at": int(time.time())}} - await self._save() - - async def _save(self) -> None: - """保存撤回数据到文件。""" - try: - self.revoke_file.write_text( - json.dumps(self._data, ensure_ascii=False, indent=2), - encoding="utf-8", - ) - except OSError: - logger.exception("Failed to save revoke.json") - - async def add_entry( - self, - message_id: str, - platform: str, - session_id: str, - is_group: bool, - revoke_time: int, - ) -> None: - """添加撤回条目。""" - async with self._lock: - self._data["entries"][message_id] = { - "platform": platform, - "session_id": session_id, - "is_group": is_group, - "revoke_time": revoke_time, - "revoked": False, - "created_at": int(time.time()), - } - await self._save() - - async def mark_revoked(self, message_id: str) -> None: - """标记消息为已撤回,并清理旧记录。""" - async with self._lock: - if message_id in self._data["entries"]: - self._data["entries"][message_id]["revoked"] = True - self._data["entries"][message_id]["revoked_at"] = int(time.time()) - # 清理已撤销的过期记录(保留最近7天的) - await self._cleanup_revoked_entries() - await self._save() - - async def _cleanup_revoked_entries(self, max_age_days: int = 7) -> int: - """清理已撤销的旧记录。 - - 参数: - max_age_days: 已撤销记录保留天数 - - 返回: - 清理的记录数量 - """ - cutoff = int(time.time()) - (max_age_days * 24 * 3600) - to_remove = [] - - for message_id, entry in self._data["entries"].items(): - # 只清理已撤销的过期记录 - if entry.get("revoked", False): - revoked_at = entry.get("revoked_at", entry.get("created_at", 0)) - if revoked_at < cutoff: - to_remove.append(message_id) - - for message_id in to_remove: - del self._data["entries"][message_id] - - if to_remove: - logger.debug("[revoke] Cleaned up %d old revoked entries", len(to_remove)) - - return len(to_remove) - - def get_pending_entries(self) -> list[dict[str, Any]]: - """获取待撤回的条目列表。""" - entries = [] - for message_id, entry in self._data["entries"].items(): - if not entry.get("revoked", False): - entry["message_id"] = message_id - entries.append(entry) - return entries diff --git a/core/revoke_tasks.py b/core/revoke_tasks.py deleted file mode 100644 index 0f9a3e3..0000000 --- a/core/revoke_tasks.py +++ /dev/null @@ -1,152 +0,0 @@ -"""撤回任务处理混入类。""" - -from __future__ import annotations - -import asyncio -import time -from typing import TYPE_CHECKING, Any - -from astrbot.api import logger - -if TYPE_CHECKING: - from astrbot.api.event import AstrMessageEvent - - from .revoke_manager import RevokeManager - - -class RevokeTaskMixin: - """撤回任务处理混入类。""" - - _revoke_manager: RevokeManager - _revoke_tasks: set[asyncio.Task] - - async def _delayed_revoke( - self, - message_id: str, - delay: int, - _platform: str, - session_id: str, - is_group: bool, - bot_id: int | None, - bot: Any | None, - ) -> None: - """后台任务:在 delay 秒后撤回消息。""" - await asyncio.sleep(delay) - - success = False - actual_bot = bot - - # 如果 bot 为 None,尝试从插件 context 获取 - if not actual_bot and hasattr(self, "plugin") and self.plugin: - try: - # 尝试获取平台的 bot 对象 - context = getattr(self.plugin, "context", None) - if context: - # 通过 session 获取适配器,再获取 bot - platform = context.get_platform() - if platform and hasattr(platform, "bot"): - actual_bot = platform.bot - logger.debug( - "[revoke] Retrieved bot from platform for message %s", - message_id, - ) - except Exception as exc: - logger.debug("[revoke] Failed to retrieve bot from context: %s", exc) - - if actual_bot: - try: - params_list = [ - {"message_id": message_id}, - { - "message_id": int(message_id) - if str(message_id).isdigit() - else message_id - }, - ] - for params in params_list: - try: - await actual_bot.call_action("delete_msg", **params) - success = True - break - except (RuntimeError, ConnectionError, TimeoutError): - continue - except Exception as exc: - logger.warning("[revoke] Background revoke failed: %s", exc) - - if success: - await self._revoke_manager.mark_revoked(message_id) - logger.info("[revoke] Successfully revoked message %s", message_id) - else: - await self._revoke_manager.mark_revoked(message_id) - if actual_bot: - logger.warning( - "[revoke] Failed to revoke message %s, marked as revoked", - message_id, - ) - else: - logger.warning( - "[revoke] Cannot revoke message %s: no bot available, marked as revoked", - message_id, - ) - - async def _schedule_revoke( - self, event: AstrMessageEvent, message_id: str | int, delay: int - ) -> None: - """调度消息在 delay 秒后撤回。""" - if not message_id: - return - - platform = event.get_platform_name() - session_id = event.get_session_id() - is_group = bool(event.get_group_id()) - revoke_time = int(time.time()) + delay - - bot = getattr(event, "bot", None) - bot_id = id(bot) if bot else None - - await self._revoke_manager.add_entry( - str(message_id), platform, session_id, is_group, revoke_time - ) - - task = asyncio.create_task( - self._delayed_revoke( - str(message_id), delay, platform, session_id, is_group, bot_id, bot - ) - ) - self._revoke_tasks.add(task) - task.add_done_callback(self._revoke_tasks.discard) - - async def _restore_pending_revokes(self) -> None: - """恢复未处理的撤回任务(插件重启后)。""" - try: - pending = self._revoke_manager.get_pending_entries() - if not pending: - return - logger.info("[revoke] Restoring %d pending revoke tasks", len(pending)) - now = int(time.time()) - for entry in pending: - message_id = entry.get("message_id") - revoke_time = entry.get("revoke_time", 0) - if revoke_time <= now: - # 已过期,直接标记为已撤销 - await self._revoke_manager.mark_revoked(message_id) - logger.debug( - "[revoke] Expired entry marked as revoked: %s", message_id - ) - else: - delay = revoke_time - now - task = asyncio.create_task( - self._delayed_revoke( - message_id, - delay, - entry.get("platform", ""), - entry.get("session_id", ""), - entry.get("is_group", False), - None, - None, - ) - ) - self._revoke_tasks.add(task) - task.add_done_callback(self._revoke_tasks.discard) - except Exception as exc: - logger.exception("[revoke] Failed to restore pending revokes: %s", exc) diff --git a/core/send_revoke.py b/core/send_revoke.py deleted file mode 100644 index a43ad7e..0000000 --- a/core/send_revoke.py +++ /dev/null @@ -1,283 +0,0 @@ -"""图片发送混入类。""" - -from __future__ import annotations - -import asyncio -from pathlib import Path -from typing import TYPE_CHECKING, Any - -import astrbot.api.message_components as Comp -from astrbot.api import logger - -if TYPE_CHECKING: - from astrbot.api.event import AstrMessageEvent - - -class SendWithRevokeMixin: - """支持撤回的消息发送混入类。""" - - @staticmethod - def _get_bot_api(event: AstrMessageEvent) -> Any | None: - """从事件中获取底层 bot API 客户端。""" - return getattr(event, "bot", None) - - async def _send_forward_messages( - self, - event: AstrMessageEvent, - messages: list[dict], - is_group: bool, - session_id: str, - ) -> dict | None: - """发送合并转发消息的共享逻辑。 - - 返回 API 结果字典,出错时返回 None。 - """ - bot = self._get_bot_api(event) - if not bot: - logger.debug("[forward] No bot API available") - return None - - try: - if is_group: - return await bot.call_action( - "send_group_forward_msg", - group_id=int(session_id) - if str(session_id).isdigit() - else session_id, - messages=messages, - ) - return await bot.call_action( - "send_private_forward_msg", - user_id=int(session_id) if str(session_id).isdigit() else session_id, - messages=messages, - ) - except Exception: - logger.exception("[forward] Failed to send forward messages") - return None - - @staticmethod - def _check_forward_result(result: dict | None) -> tuple[bool, str | None]: - """检查合并转发 API 返回结果。 - - 返回: (是否成功, message_id 或 None) - """ - if not isinstance(result, dict): - return False, None - - # 检查是否有错误返回 - if result.get("status") == "failed" or result.get("retcode") not in (0, None): - logger.debug("[forward] API returned failure: %s", result) - return False, None - - data = result.get("data", result) - message_id = data.get("message_id") if isinstance(data, dict) else None - - if not message_id: - logger.debug( - "[forward] API returned no message_id, platform may not support forward" - ) - return False, None - - return True, str(message_id) if message_id else None - - async def _send_with_revoke_support( - self, - event: AstrMessageEvent, - chain: list[Any], - is_group: bool, - session_id: str, - ) -> str | None: - """发送消息并返回 message_id 以支持撤回。""" - try: - bot = self._get_bot_api(event) - if not bot: - return None - - messages = [] - for comp in chain: - if isinstance(comp, Comp.Plain): - if comp.text.strip(): - messages.append({"type": "text", "data": {"text": comp.text}}) - elif isinstance(comp, Comp.Image): - if comp.file and comp.file.startswith("base64://"): - messages.append({"type": "image", "data": {"file": comp.file}}) - elif comp.file: - messages.append({"type": "image", "data": {"file": comp.file}}) - elif comp.url: - messages.append({"type": "image", "data": {"file": comp.url}}) - elif isinstance(comp, Comp.File): - if comp.file: - messages.append({"type": "file", "data": {"file": comp.file}}) - - if not messages: - return None - - if is_group: - result = await bot.call_action( - "send_group_msg", - group_id=int(session_id) if session_id.isdigit() else session_id, - message=messages, - ) - else: - result = await bot.call_action( - "send_private_msg", - user_id=int(session_id) if session_id.isdigit() else session_id, - message=messages, - ) - - if isinstance(result, dict): - data = result.get("data", result) - message_id = data.get("message_id") if isinstance(data, dict) else None - if message_id: - return str(message_id) - return None - except Exception: - logger.exception("[revoke] Failed to send with revoke support") - return None - - async def _send_file_with_revoke( - self, event: AstrMessageEvent, file_path: str, file_name: str - ) -> str | None: - """发送文件并返回 message_id。""" - try: - import base64 - - bot = self._get_bot_api(event) - if not bot: - return None - - is_group = bool(event.get_group_id()) - session_id = event.get_group_id() or event.get_sender_id() - - path_obj = Path(file_path) - file_size = path_obj.stat().st_size - max_size = 5 * 1024 * 1024 - - if file_size > max_size: - logger.warning("[revoke] File too large (%d bytes)", file_size) - return None - - file_data = path_obj.read_bytes() - file_b64 = base64.b64encode(file_data).decode() - - messages = [ - { - "type": "file", - "data": {"file": f"base64://{file_b64}", "name": file_name}, - } - ] - - if is_group: - result = await bot.call_action( - "send_group_msg", - group_id=int(session_id) - if str(session_id).isdigit() - else session_id, - message=messages, - ) - else: - result = await bot.call_action( - "send_private_msg", - user_id=int(session_id) - if str(session_id).isdigit() - else session_id, - message=messages, - ) - - if isinstance(result, dict): - data = result.get("data", result) - message_id = data.get("message_id") if isinstance(data, dict) else None - if message_id: - return str(message_id) - return None - except (OSError, RuntimeError): - logger.exception("[revoke] Failed to send file with revoke support") - return None - - async def _send_nodes_with_revoke( - self, event: AstrMessageEvent, nodes: list[Comp.Node] - ) -> str | None: - """发送合并转发消息并返回 message_id。优化版本:并行转换 node 到 dict。""" - import time - - start_time = time.monotonic() - - is_group = bool(event.get_group_id()) - session_id = event.get_group_id() or event.get_sender_id() - - # 并行转换所有 nodes 到 dict,提高效率 - tasks = [node.to_dict() for node in nodes] - messages = list(await asyncio.gather(*tasks)) - - dict_time = time.monotonic() - logger.debug( - "[forward] Converted %d nodes to dict in %.3fs", - len(nodes), - dict_time - start_time, - ) - - # 使用共享逻辑发送 - result = await self._send_forward_messages( - event, messages, is_group, session_id - ) - - end_time = time.monotonic() - - # 检查结果 - success, message_id = self._check_forward_result(result) - if success: - logger.debug( - "[forward] Sent %d nodes in %.3fs (dict: %.3fs, api: %.3fs)", - len(nodes), - end_time - start_time, - dict_time - start_time, - end_time - dict_time, - ) - return message_id - return None - - async def _send_nodes_direct( - self, event: AstrMessageEvent, nodes: list[Comp.Node] - ) -> bool: - """直接发送合并转发消息(无撤回支持),优化版本。 - - 注意:合并转发消息仅在 OneBot v11 等特定平台受支持。 - 对于不支持的平台,会返回 False,调用方应降级为普通发送。 - """ - import time - - start_time = time.monotonic() - - is_group = bool(event.get_group_id()) - session_id = event.get_group_id() or event.get_sender_id() - - # 并行转换所有 nodes 到 dict - tasks = [node.to_dict() for node in nodes] - messages = list(await asyncio.gather(*tasks)) - - dict_time = time.monotonic() - logger.debug( - "[forward] Converted %d nodes to dict in %.3fs", - len(nodes), - dict_time - start_time, - ) - - # 使用共享逻辑发送 - result = await self._send_forward_messages( - event, messages, is_group, session_id - ) - - end_time = time.monotonic() - - # 检查结果 - success, _ = self._check_forward_result(result) - if success: - logger.debug( - "[forward] Sent %d nodes in %.3fs (dict: %.3fs, api: %.3fs)", - len(nodes), - end_time - start_time, - dict_time - start_time, - end_time - dict_time, - ) - return True - return False diff --git a/main.py b/main.py index 6a78b5e..e770078 100644 --- a/main.py +++ b/main.py @@ -1,440 +1,375 @@ -"""Setu(随机图片)插件 - 主入口。 +"""AstrBot Setu Plugin - Main entry point. -支持多 API 提供商、可配置的内容模式、多种发送模式、 -HTML 卡片包装、LLM 工具调用、以及自定义 API 支持。 -集成今日运势功能。 +Commands are defined directly on the Star subclass so AstrBot's decorator-based +registration discovers them. Business logic is delegated to handler helpers. """ from __future__ import annotations from collections.abc import AsyncGenerator -from pathlib import Path from typing import Any +from astrbot.api import logger from astrbot.api.event import AstrMessageEvent, filter from astrbot.api.star import Context, Star, StarTools from astrbot.core import AstrBotConfig -from astrbot.core.message.components import Plain -from astrbot.core.provider.register import llm_tools -from .config import SetuConfig -from .core import SetuCore -from .domain import COMMAND_PATTERN, FORTUNE_PATTERN -from .services.fortune import FortuneManager -from .services.setu import CommandHandler, LlmHandlers +from .src.infrastructure import ( + init_access_control_repo, + init_fortune_repo, + init_provider_from_config, + init_session_config_repo, +) +from .src.infrastructure.astrbot import init_config, set_plugin_context +from .src.infrastructure.astrbot.commands import ( + FortuneCommandHandler, + SessionConfigCommandHandler, + SetuCommandHandler, + register_fortune_llm_tools, + register_session_config_llm_tools, + register_setu_llm_tools, + unregister_fortune_llm_tools, + unregister_session_config_llm_tools, + unregister_setu_llm_tools, +) +from .src.infrastructure.astrbot.session_config_api import ( + register_session_config_web_apis, +) +from .src.shared.send_cache import clear_send_cache, init_send_cache + +# Regex patterns for command triggers +SETU_REGEX_PATTERN = r"^/?(来\s*(.*?)(份|个|张|点))(.*?)(?:福利|色|瑟|涩|塞)?图$" + +# Module-level handler singletons +_setu_handler: SetuCommandHandler | None = None +_fortune_handler: FortuneCommandHandler | None = None +_session_config_handler: SessionConfigCommandHandler | None = None + +FORTUNE_REFRESH_COMMANDS = { + "刷新今日运势": "self", + "刷新jrys": "self", + "flush_jrys": "self", + "刷新本群今日运势": "group", + "刷新本群jrys": "group", + "flush_group_jrys": "group", + "刷新全局今日运势": "all", + "刷新全局jrys": "all", + "flush_all_jrys": "all", +} +FORTUNE_TOGGLE_COMMANDS = {"开启运势": "enable", "关闭运势": "disable"} +FORTUNE_USER_COMMANDS = { + "拉黑运势用户": "block", + "解除运势拉黑": "unblock", + "信任运势用户": "trust", + "取消运势信任": "untrust", +} +FORTUNE_REFRESH_ARG_ALIASES = { + "": "self", + "我": "self", + "自己": "self", + "我的": "self", + "self": "self", + "me": "self", + "本群": "group", + "群": "group", + "group": "group", + "全局": "all", + "全部": "all", + "all": "all", + "global": "all", +} +FORTUNE_TOGGLE_ARG_ALIASES = { + "开": "enable", + "开启": "enable", + "on": "enable", + "关": "disable", + "关闭": "disable", + "off": "disable", +} +FORTUNE_USER_ARG_ALIASES = { + "拉黑": "block", + "黑名单": "block", + "block": "block", + "解除拉黑": "unblock", + "解黑": "unblock", + "取消拉黑": "unblock", + "unblock": "unblock", + "信任": "trust", + "白名单": "trust", + "trust": "trust", + "取消信任": "untrust", + "移除信任": "untrust", + "取消白名单": "untrust", + "untrust": "untrust", +} + + +def _get_invoked_command(event: AstrMessageEvent) -> str: + raw_message = getattr(event, "message_str", None) + if not raw_message and hasattr(event, "get_message_str"): + raw_message = event.get_message_str() + text = str(raw_message or "").strip() + if text.startswith("/"): + text = text[1:].strip() + return text.split(maxsplit=1)[0] if text else "" + + +def _resolve_fortune_refresh_target(event: AstrMessageEvent, args: str) -> str: + command = _get_invoked_command(event) + if command in FORTUNE_REFRESH_COMMANDS: + return FORTUNE_REFRESH_COMMANDS[command] + + target = FORTUNE_REFRESH_ARG_ALIASES.get((args or "").strip().lower()) + if target: + return target + raise ValueError("用法:/运势刷新 [我|本群|全局]") + + +def _resolve_fortune_toggle_action(event: AstrMessageEvent, args: str) -> str: + command = _get_invoked_command(event) + if command in FORTUNE_TOGGLE_COMMANDS: + return FORTUNE_TOGGLE_COMMANDS[command] + + action = FORTUNE_TOGGLE_ARG_ALIASES.get((args or "").strip().lower()) + if action: + return action + raise ValueError("用法:/运势开关 <开|关>") + + +def _resolve_fortune_user_action( + event: AstrMessageEvent, args: str +) -> tuple[str, str]: + command = _get_invoked_command(event) + if command in FORTUNE_USER_COMMANDS: + return FORTUNE_USER_COMMANDS[command], args + + normalized_args = (args or "").strip() + if not normalized_args: + raise ValueError("用法:/运势用户 <拉黑|解黑|信任|取消信任> [用户]") + + parts = normalized_args.split(maxsplit=1) + action = FORTUNE_USER_ARG_ALIASES.get(parts[0].lower()) + if not action: + raise ValueError("用法:/运势用户 <拉黑|解黑|信任|取消信任> [用户]") + target = parts[1] if len(parts) > 1 else "" + return action, target class SetuPlugin(Star): - """色图插件主类(含今日运势)。""" + """Main plugin class with command handlers on the Star subclass. + + AstrBot only discovers @filter.command/@filter.regex handlers whose + __module__ matches the plugin's main module path. Defining handlers + here ensures they are found and bound to the Star instance. + """ def __init__(self, context: Context, config: AstrBotConfig): super().__init__(context, config) self.context = context - self.config = config - self._core: SetuCore | None = None - self._plugin_data_dir: Path = StarTools.get_data_dir(self.name) - self._cmd_handler: CommandHandler | None = None - self._llm_handlers: LlmHandlers | None = None - self._fortune_manager: FortuneManager | None = None + self._plugin_config = config + register_session_config_web_apis(self.context) async def initialize(self) -> None: - """初始化插件。""" - cfg = SetuConfig(self.config) - self._core = SetuCore(self, cfg, self._plugin_data_dir, self.config) - await self._core.initialize() - - self._cmd_handler = CommandHandler(self._core, cfg) - self._llm_handlers = LlmHandlers(self) - - # 初始化今日运势模块 - fortune_cfg = getattr(cfg, "fortune", {}) - if isinstance(fortune_cfg, dict) and fortune_cfg.get("enabled", True): - self._fortune_manager = FortuneManager( - self, self._plugin_data_dir / "fortune", fortune_cfg - ) - await self._fortune_manager.initialize() - await self._register_fortune_llm_tools() - - # 注册 Setu LLM 工具 - await self._register_setu_llm_tools() - - async def _register_setu_llm_tools(self) -> None: - """注册 Setu 相关的 LLM 工具。""" - tools = [ - ( - "get_setu_image", - self._llm_handlers._llm_get_setu_handler, - [ - { - "name": "count", - "type": "integer", - "description": "Number of images.", - }, - {"name": "tags", "type": "array", "items": {"type": "string"}}, - ], - "Fetch random anime images.", - ), - ( - "get_setu_content_mode", - self._llm_handlers._llm_get_content_mode_handler, - [], - "Get content mode.", - ), - ( - "set_setu_content_mode", - self._llm_handlers._llm_set_content_mode_handler, - [ - { - "name": "mode", - "type": "string", - "enum": ["sfw", "r18", "mix", "clear"], - }, - ], - "Set content mode.", - ), - ( - "set_setu_r18_docx_mode", - self._llm_handlers._llm_set_r18_docx_mode_handler, - [ - {"name": "enabled", "type": "boolean"}, - ], - "Set R18 Docx mode.", - ), - ( - "set_setu_auto_revoke", - self._llm_handlers._llm_set_auto_revoke_handler, - [ - {"name": "enabled", "type": "boolean"}, - ], - "Set auto-revoke.", - ), - ( - "set_setu_send_mode", - self._llm_handlers._llm_set_send_mode_handler, - [ - { - "name": "mode", - "type": "string", - "enum": ["image", "forward", "auto", "clear"], - }, - ], - "Set session send mode.", - ), - ] - - for name, handler, args, desc in tools: - try: - llm_tools.add_func( - name=name, func_args=args, desc=desc, handler=handler - ) - tool = llm_tools.get_func(name) - if tool: - tool.handler_module_path = __name__ - except (AttributeError, RuntimeError): - pass - - async def _register_fortune_llm_tools(self) -> None: - """注册今日运势的 LLM 工具。""" - if not self._fortune_manager or not self._fortune_manager.llm_handler: + global _setu_handler, _fortune_handler, _session_config_handler + + raw_config = self._runtime_plugin_config() + cfg = init_config(raw_config) + set_plugin_context(self.context) + data_dir = StarTools.get_data_dir(self.name) + + init_provider_from_config(cfg) + + await init_access_control_repo(data_dir, raw_config) + await init_fortune_repo(data_dir) + await init_session_config_repo(data_dir) + await init_send_cache( + data_dir, + enabled=cfg.cache_enabled, + ttl_hours=cfg.cache_ttl_hours, + max_items=cfg.cache_max_items, + cleanup_on_start=cfg.cache_cleanup_on_start, + ) + + _setu_handler = SetuCommandHandler() + _fortune_handler = FortuneCommandHandler() + _session_config_handler = SessionConfigCommandHandler() + + try: + register_setu_llm_tools() + register_fortune_llm_tools() + register_session_config_llm_tools() + except Exception as e: + logger.warning("Failed to register LLM tools: %s", e) + + logger.info("SetuPlugin initialized successfully") + + async def terminate(self) -> None: + global _setu_handler, _fortune_handler, _session_config_handler + + from .src.infrastructure import ( + clear_fortune_repo, + clear_provider, + clear_repo, + clear_session_config_repo, + ) + + try: + unregister_setu_llm_tools() + unregister_fortune_llm_tools() + unregister_session_config_llm_tools() + except Exception: + pass + + clear_provider() + clear_repo() + clear_fortune_repo() + clear_session_config_repo() + clear_send_cache() + + _setu_handler = None + _fortune_handler = None + _session_config_handler = None + + logger.info("SetuPlugin terminated") + + def _runtime_plugin_config(self) -> dict[str, Any]: + """Return the plugin-scoped config dict passed in by AstrBot.""" + if isinstance(self._plugin_config, dict): + return dict(self._plugin_config) + items = getattr(self._plugin_config, "items", None) + if callable(items): + return dict(items()) + return dict(self._plugin_config) + + # ==================== Setu Commands ==================== + + @filter.regex(SETU_REGEX_PATTERN) + async def get_random_picture( + self, event: AstrMessageEvent + ) -> AsyncGenerator[Any, None]: + """来份色图 / 来张图 etc.""" + if _setu_handler is None: + yield event.plain_result("插件未初始化") return + async for result in _setu_handler.get_random_picture(event): + yield result - handler = self._fortune_manager.llm_handler - - tools = [ - ( - "get_today_fortune", - handler.llm_get_fortune, - [], - "Get today's fortune for the user.", - ), - ( - "refresh_my_fortune", - handler.llm_refresh_fortune, - [], - "Refresh my today's fortune (admin only).", - ), - ( - "refresh_group_fortune", - handler.llm_refresh_group_fortune, - [], - "Refresh today's fortune for the current group (admin only).", - ), - ( - "refresh_all_fortune", - handler.llm_refresh_all_fortune, - [], - "Refresh today's fortune for all users (super admin only).", - ), - ( - "get_fortune_config", - handler.llm_get_fortune_config, - [], - "Get the fortune configuration for the current session.", - ), - ( - "set_fortune_config", - handler.llm_set_fortune_config, - [ - { - "name": "tags", - "type": "string", - "description": "Tags for fortune images, e.g., 'girl,cute'. Leave empty to clear.", - }, - { - "name": "mode", - "type": "string", - "enum": ["sfw", "r18", "mix"], - "description": "Content mode for fortune images.", - }, - ], - "Set the fortune configuration for the current session (admin only).", - ), - ] - - for name, h, args, desc in tools: - try: - llm_tools.add_func(name=name, func_args=args, desc=desc, handler=h) - tool = llm_tools.get_func(name) - if tool: - tool.handler_module_path = __name__ - except (AttributeError, RuntimeError): - pass + @filter.command("setu") + async def setu_command( + self, event: AstrMessageEvent, count: str = "1", *, tags: str = "" + ) -> AsyncGenerator[Any, None]: + """/setu [count] [tags...]""" + if _setu_handler is None: + yield event.plain_result("插件未初始化") + return + async for result in _setu_handler.setu_command(event, count, tags=tags): + yield result - async def terminate(self) -> None: - """卸载插件。""" - if self._core: - self._core.terminate() - if self._fortune_manager: - self._fortune_manager.terminate() - - # 注销 LLM 工具 - for name in [ - "get_setu_image", - "get_setu_content_mode", - "set_setu_content_mode", - "set_setu_r18_docx_mode", - "set_setu_auto_revoke", - "set_setu_send_mode", - "get_today_fortune", - "refresh_my_fortune", - "refresh_group_fortune", - "refresh_all_fortune", - "get_fortune_config", - "set_fortune_config", - ]: - try: - llm_tools.remove_func(name) - except (AttributeError, RuntimeError): - pass - - def _is_explicit_slash_command(self, event: AstrMessageEvent) -> bool: - """Check whether original message text uses an explicit '/' command prefix.""" - for comp in event.get_messages(): - if isinstance(comp, Plain): - return comp.text.strip().startswith("/") - return False - - def _mark_event_handled(self, event: AstrMessageEvent, key: str) -> bool: - """Mark a plugin flow as handled for this event.""" - extra_key = f"setu_{key}_handled" - if event.get_extra(extra_key): - return False - event.set_extra(extra_key, True) - return True - - def _should_skip_fortune_regex(self, event: AstrMessageEvent) -> bool: - if self._is_explicit_slash_command(event): - return True - if getattr(event, "is_at_or_wake_command", False): - message_text = event.get_message_str().strip() - if message_text in {"今日运势", "jrys"}: - return True - return False - - async def _run_fortune(self, event: AstrMessageEvent) -> AsyncGenerator[Any, None]: - if not self._mark_event_handled(event, "fortune"): + @filter.command("session_config") + async def session_config_command( + self, event: AstrMessageEvent, args: str = "" + ) -> AsyncGenerator[Any, None]: + """/session_config get|set|clear""" + if _session_config_handler is None: + yield event.plain_result("插件未初始化") return - if self._fortune_manager and self._fortune_manager.cmd_handler: - async for result in self._fortune_manager.cmd_handler.handle_fortune(event): - yield result + async for result in _session_config_handler.session_config_command(event, args): + yield result - # ==================== Setu 命令 ==================== + # ==================== Fortune Commands ==================== - @filter.regex(COMMAND_PATTERN) - async def get_random_picture(self, event): - """处理色图请求命令。""" - if self._cmd_handler: - async for result in self._cmd_handler.handle_random_picture(event): - yield result + @filter.command("今日运势", alias={"jrys"}) + async def fortune_command( + self, event: AstrMessageEvent + ) -> AsyncGenerator[Any, None]: + """今日运势 / jrys""" + if _fortune_handler is None: + yield event.plain_result("插件未初始化") + return + async for result in _fortune_handler.fortune_command(event): + yield result - @filter.command("setu") - async def setu_command(self, event, count: str = "1", *, tags: str = ""): - """处理 /setu 命令。""" - if self._cmd_handler: - async for result in self._cmd_handler.handle_setu_command( - event, count, tags=tags - ): - yield result - - @filter.command("setu_mode") - async def setu_mode_command(self, event, mode: str = ""): - """处理 /setu_mode 命令。""" - if self._cmd_handler: - async for result in self._cmd_handler.handle_setu_mode(event, mode): - yield result - - # ==================== Fortune 命令 ==================== - - @filter.regex(FORTUNE_PATTERN) - async def fortune_regex(self, event): - """处理纯文本今日运势触发(今日运势, jrys)。""" - if self._should_skip_fortune_regex(event): + @filter.command( + "运势刷新", + alias={ + "刷新今日运势", + "刷新jrys", + "flush_jrys", + "刷新本群今日运势", + "刷新本群jrys", + "flush_group_jrys", + "刷新全局今日运势", + "刷新全局jrys", + "flush_all_jrys", + }, + ) + async def fortune_refresh_command( + self, event: AstrMessageEvent, args: str = "" + ) -> AsyncGenerator[Any, None]: + """运势刷新 [我|本群|全局]""" + if _fortune_handler is None: + yield event.plain_result("插件未初始化") return - async for result in self._run_fortune(event): + + try: + target = _resolve_fortune_refresh_target(event, args) + except ValueError as exc: + yield event.plain_result(str(exc)) + return + + handler_map = { + "self": _fortune_handler.refresh_fortune_command, + "group": _fortune_handler.refresh_group_fortune_command, + "all": _fortune_handler.refresh_all_fortune_command, + } + async for result in handler_map[target](event): yield result - @filter.command(command_name="今日运势", alias={"jrys"}) - async def fortune_command(self, event): - """处理今日运势命令 (/今日运势, /jrys)。""" - async for result in self._run_fortune(event): + @filter.command("运势开关", alias={"开启运势", "关闭运势"}) + async def fortune_toggle_command( + self, event: AstrMessageEvent, args: str = "" + ) -> AsyncGenerator[Any, None]: + """运势开关 <开|关>""" + if _fortune_handler is None: + yield event.plain_result("插件未初始化") + return + + try: + action = _resolve_fortune_toggle_action(event, args) + except ValueError as exc: + yield event.plain_result(str(exc)) + return + + handler_map = { + "enable": _fortune_handler.enable_fortune_group_command, + "disable": _fortune_handler.disable_fortune_group_command, + } + async for result in handler_map[action](event, ""): yield result - @filter.command("刷新今日运势", alias={"刷新jrys", "flush_jrys"}) - async def refresh_fortune_command(self, event): - """处理 /刷新今日运势 命令。""" - if self._fortune_manager and self._fortune_manager.cmd_handler: - async for ( - result - ) in self._fortune_manager.cmd_handler.handle_refresh_fortune(event): - yield result - - @filter.command("刷新本群今日运势", alias={"刷新本群jrys", "flush_group_jrys"}) - async def refresh_group_fortune_command(self, event): - """处理 /刷新本群今日运势 命令。""" - if self._fortune_manager and self._fortune_manager.cmd_handler: - async for ( - result - ) in self._fortune_manager.cmd_handler.handle_refresh_group_fortune(event): - yield result - - @filter.command("刷新全局今日运势", alias={"刷新全局jrys", "flush_all_jrys"}) - async def refresh_all_fortune_command(self, event): - """处理 /刷新全局今日运势 命令。""" - if self._fortune_manager and self._fortune_manager.cmd_handler: - async for ( - result - ) in self._fortune_manager.cmd_handler.handle_refresh_all_fortune(event): - yield result - - @filter.command("jrys_config") - async def jrys_config_command(self, event, args: str = ""): - """处理 /jrys_config 命令。""" - if self._fortune_manager and self._fortune_manager.cmd_handler: - async for result in self._fortune_manager.cmd_handler.handle_fortune_config( - event, args - ): - yield result - - # ==================== 黑白名单管理命令(中文 - 完全独立的Setu和Fortune)==================== - - @filter.command("开启色图") - async def enable_setu_group_command(self, event, args: str = ""): - """处理 /开启色图 命令(在当前群组开启色图)。""" - if self._cmd_handler: - async for result in self._cmd_handler.handle_enable_setu_group(event, args): - yield result - - @filter.command("关闭色图") - async def disable_setu_group_command(self, event, args: str = ""): - """处理 /关闭色图 命令(在当前群组关闭色图)。""" - if self._cmd_handler: - async for result in self._cmd_handler.handle_disable_setu_group( - event, args - ): - yield result - - @filter.command("开启运势") - async def enable_fortune_group_command(self, event, args: str = ""): - """处理 /开启运势 命令(在当前群组开启运势)。""" - if self._cmd_handler: - async for result in self._cmd_handler.handle_enable_fortune_group( - event, args - ): - yield result - - @filter.command("关闭运势") - async def disable_fortune_group_command(self, event, args: str = ""): - """处理 /关闭运势 命令(在当前群组关闭运势)。""" - if self._cmd_handler: - async for result in self._cmd_handler.handle_disable_fortune_group( - event, args - ): - yield result - - # ----- 色图功能用户黑白名单 ----- - - @filter.command("拉黑色图用户") - async def block_setu_user_command(self, event, args: str = ""): - """处理 /拉黑色图用户 命令(AT某人加入色图黑名单)。""" - if self._cmd_handler: - async for result in self._cmd_handler.handle_setu_block_user(event, args): - yield result - - @filter.command("解除色图拉黑") - async def unblock_setu_user_command(self, event, args: str = ""): - """处理 /解除色图拉黑 命令(AT某人从色图黑名单移除)。""" - if self._cmd_handler: - async for result in self._cmd_handler.handle_setu_unblock_user(event, args): - yield result - - @filter.command("信任色图用户") - async def trust_setu_user_command(self, event, args: str = ""): - """处理 /信任色图用户 命令(AT某人加入色图白名单)。""" - if self._cmd_handler: - async for result in self._cmd_handler.handle_setu_trust_user(event, args): - yield result - - @filter.command("取消色图信任") - async def untrust_setu_user_command(self, event, args: str = ""): - """处理 /取消色图信任 命令(AT某人从色图白名单移除)。""" - if self._cmd_handler: - async for result in self._cmd_handler.handle_setu_untrust_user(event, args): - yield result - - # ----- 运势功能用户黑白名单 ----- - - @filter.command("拉黑运势用户") - async def block_fortune_user_command(self, event, args: str = ""): - """处理 /拉黑运势用户 命令(AT某人加入运势黑名单)。""" - if self._cmd_handler: - async for result in self._cmd_handler.handle_fortune_block_user( - event, args - ): - yield result - - @filter.command("解除运势拉黑") - async def unblock_fortune_user_command(self, event, args: str = ""): - """处理 /解除运势拉黑 命令(AT某人从运势黑名单移除)。""" - if self._cmd_handler: - async for result in self._cmd_handler.handle_fortune_unblock_user( - event, args - ): - yield result - - @filter.command("信任运势用户") - async def trust_fortune_user_command(self, event, args: str = ""): - """处理 /信任运势用户 命令(AT某人加入运势白名单)。""" - if self._cmd_handler: - async for result in self._cmd_handler.handle_fortune_trust_user( - event, args - ): - yield result - - @filter.command("取消运势信任") - async def untrust_fortune_user_command(self, event, args: str = ""): - """处理 /取消运势信任 命令(AT某人从运势白名单移除)。""" - if self._cmd_handler: - async for result in self._cmd_handler.handle_fortune_untrust_user( - event, args - ): - yield result + @filter.command( + "运势用户", + alias={"拉黑运势用户", "解除运势拉黑", "信任运势用户", "取消运势信任"}, + ) + async def fortune_user_command( + self, event: AstrMessageEvent, args: str = "" + ) -> AsyncGenerator[Any, None]: + """运势用户 <拉黑|解黑|信任|取消信任> [用户]""" + if _fortune_handler is None: + yield event.plain_result("插件未初始化") + return + + try: + action, target = _resolve_fortune_user_action(event, args) + except ValueError as exc: + yield event.plain_result(str(exc)) + return + + handler_map = { + "block": _fortune_handler.block_fortune_user_command, + "unblock": _fortune_handler.unblock_fortune_user_command, + "trust": _fortune_handler.trust_fortune_user_command, + "untrust": _fortune_handler.untrust_fortune_user_command, + } + async for result in handler_map[action](event, target): + yield result diff --git a/metadata.yaml b/metadata.yaml index 86866ca..efcbcb0 100644 --- a/metadata.yaml +++ b/metadata.yaml @@ -1,6 +1,6 @@ name: astrbot_plugin_setu display_name: 瑟瑟! -version: v1.3.0 +version: v2.0.0 author: FlanChanXwO desc: 随机福利图插件,支持标签与数量,以及图片分级控制,可以针对于特定平台配置概率绕过审核的发送方式。 repo: https://github.com/FlanChanXwO/astrbot_plugin_setu diff --git a/pages/sessionConfig/app.js b/pages/sessionConfig/app.js new file mode 100644 index 0000000..4612533 --- /dev/null +++ b/pages/sessionConfig/app.js @@ -0,0 +1,146 @@ +(function () { + const bridge = window.AstrBotPluginPage || null; + let toastTimer = null; + + function emptyForm() { + return { + session_id: '', + session_type: 'group', + display_name: '', + overrides: {}, + }; + } + + function apiResult(result) { + if (result && result.success === false) { + throw new Error(result.error || '请求失败'); + } + return result || {}; + } + + const store = { + loading: false, + keys: [], + sessions: [], + globalValues: {}, + form: emptyForm(), + toast: {show: false, type: 'success', message: ''}, + + async reload() { + this.loading = true; + try { + if (!bridge) throw new Error('AstrBotPluginPage bridge not available'); + await bridge.ready(); + const result = apiResult(await bridge.apiGet('session-config')); + this.keys = result.keys || []; + this.sessions = result.sessions || []; + this.globalValues = result.global || {}; + if (this.form.session_id) { + const selected = this.sessions.find((item) => item.session_id === this.form.session_id); + if (selected) this.selectSession(selected); + } + } catch (err) { + this.showToast(err.message || '加载失败', 'error'); + } finally { + this.loading = false; + } + }, + + newSession() { + this.form = emptyForm(); + }, + + selectSession(session) { + this.form = { + session_id: session.session_id || '', + session_type: session.session_type || 'group', + display_name: session.display_name || '', + overrides: {...(session.overrides || {})}, + }; + }, + + hasOverride(key) { + return Object.prototype.hasOwnProperty.call(this.form.overrides, key); + }, + + toggleOverride(key, enabled) { + if (enabled) { + this.form.overrides[key] = this.effectiveValue(key); + } else { + delete this.form.overrides[key]; + } + }, + + effectiveValue(key) { + return this.hasOverride(key) ? this.form.overrides[key] : this.globalValues[key]; + }, + + displayValue(value) { + if (value === true) return '启用'; + if (value === false) return '禁用'; + if (value === '' || value === undefined || value === null) return '空'; + return String(value); + }, + + async save() { + if (!this.form.session_id.trim()) { + this.showToast('session_id 不能为空', 'error'); + return; + } + this.loading = true; + try { + const result = apiResult(await bridge.apiPost('session-config/upsert', this.form)); + this.selectSession(result.data || this.form); + await this.reload(); + this.showToast('已保存'); + } catch (err) { + this.showToast(err.message || '保存失败', 'error'); + } finally { + this.loading = false; + } + }, + + async clearAll() { + if (!this.form.session_id) return; + this.loading = true; + try { + const result = apiResult(await bridge.apiPost('session-config/clear', this.form)); + this.selectSession(result.data || this.form); + await this.reload(); + this.showToast('已清空覆盖'); + } catch (err) { + this.showToast(err.message || '清空失败', 'error'); + } finally { + this.loading = false; + } + }, + + async deleteSession() { + if (!this.form.session_id) return; + this.loading = true; + try { + apiResult(await bridge.apiPost('session-config/delete', {session_id: this.form.session_id})); + this.form = emptyForm(); + await this.reload(); + this.showToast('已删除'); + } catch (err) { + this.showToast(err.message || '删除失败', 'error'); + } finally { + this.loading = false; + } + }, + + showToast(message, type = 'success') { + if (toastTimer) window.clearTimeout(toastTimer); + this.toast = {show: true, type, message}; + toastTimer = window.setTimeout(() => { + this.toast.show = false; + }, 2600); + }, + }; + + window.sessionConfigStore = store; + PetiteVue.createApp(store).mount('#app'); + document.body.classList.add('ready'); + store.reload(); +})(); diff --git a/pages/sessionConfig/index.html b/pages/sessionConfig/index.html new file mode 100644 index 0000000..b3a0460 --- /dev/null +++ b/pages/sessionConfig/index.html @@ -0,0 +1,250 @@ + + + + + + sessionConfig + + + +
正在加载会话配置...
+
+ +
+
+
+
+

会话

+
+ + + +
+
+
+ + + +
+
+
+
+

配置覆盖

+ +
+
+
+
+ {{ item.label }} +
{{ item.key }}
+
+ +
+
全局配置
+ {{ displayValue(globalValues[item.key]) }} +
+
+
生效值
+ {{ displayValue(effectiveValue(item.key)) }} +
+
+ + + +
+
+
+
+
+
+
+ {{ toast.message }} +
+
+ + + + diff --git a/render/__init__.py b/render/__init__.py deleted file mode 100644 index a15f6d8..0000000 --- a/render/__init__.py +++ /dev/null @@ -1,8 +0,0 @@ -"""Rendering layer for setu and fortune outputs.""" - -from __future__ import annotations - -from .fortune_renderer import FortuneRenderer -from .setu_renderer import HtmlCardRenderer - -__all__ = ["HtmlCardRenderer", "FortuneRenderer"] diff --git a/requirements.txt b/requirements.txt index 5da2415..a6383fc 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,3 +1,5 @@ python-docx>=1.0.0 playwright>=1.45.0 httpx[http2]>=0.28.0 +pydantic>=2.0 +aiosqlite>=0.19.0 diff --git a/services/__init__.py b/services/__init__.py deleted file mode 100644 index 4ce4d4c..0000000 --- a/services/__init__.py +++ /dev/null @@ -1,21 +0,0 @@ -"""服务层模块。""" - -from __future__ import annotations - -from ..render import HtmlCardRenderer -from .setu import ( - AccessControlManager, - ConfigManager, - DocxService, - ImageService, - UrlImageDiskCache, -) - -__all__ = [ - "UrlImageDiskCache", - "ConfigManager", - "AccessControlManager", - "DocxService", - "HtmlCardRenderer", - "ImageService", -] diff --git a/services/setu/__init__.py b/services/setu/__init__.py deleted file mode 100644 index d5955a2..0000000 --- a/services/setu/__init__.py +++ /dev/null @@ -1,20 +0,0 @@ -"""Setu service implementations.""" - -from __future__ import annotations - -from .cache import UrlImageDiskCache -from .command_handlers import CommandHandler -from .config_manager import AccessControlManager, ConfigManager -from .docx import DocxService -from .image import ImageService -from .llm_handlers import LlmHandlers - -__all__ = [ - "UrlImageDiskCache", - "ConfigManager", - "AccessControlManager", - "DocxService", - "ImageService", - "CommandHandler", - "LlmHandlers", -] diff --git a/skills/get-setu/SKILL.md b/skills/get-setu/SKILL.md new file mode 100644 index 0000000..c726810 --- /dev/null +++ b/skills/get-setu/SKILL.md @@ -0,0 +1,92 @@ +--- +name: get-setu +description: Help users operate the current astrbot_plugin_setu LLM tools for fetching Setu images, reading or changing unified session settings, R18 delivery safeguards, and today's fortune. Use this skill whenever the user asks for 色图/瑟图/涩图/setu/random anime images, image tags, content mode, send mode, auto revoke, DOCX packaging, session config, or 今日运势, even if they do not mention the plugin or tool names explicitly. +--- + +# get-setu + +Use this skill to choose the correct `astrbot_plugin_setu` LLM tool and explain the result. Tools operate in the current AstrBot session. Session config tools only affect the current session; WebUI can manage other sessions, but these LLM tools cannot. + +## Current Tool Inventory + +Use only these registered tools: + +- `get_setu_image(count: integer, tags: string[])` +- `get_today_fortune()` +- `refresh_my_fortune()` +- `refresh_group_fortune()` +- `refresh_all_fortune()` +- `get_session_config(key?: string)` +- `set_session_config(key: string, value: string)` +- `clear_session_config(key?: string)` + +Do not call removed legacy tools such as `get_setu_content_mode`, `set_setu_content_mode`, `set_setu_r18_docx_mode`, `set_setu_auto_revoke`, `set_setu_send_mode`, `get_fortune_config`, or `set_fortune_config`. + +## Session Config Keys + +Use these keys with `get_session_config`, `set_session_config`, and `clear_session_config`: + +| Key | Values | Meaning | +|---|---|---| +| `setu.content_mode` | `sfw`, `r18`, `mix` | Content rating for Setu image requests. | +| `setu.r18_docx` | `true`, `false` | Whether R18 images are packaged as DOCX. | +| `setu.auto_revoke` | `true`, `false` | Whether R18 messages are auto-revoked. | +| `setu.send_mode` | `image`, `forward`, `auto` | Direct image, merged forward, or automatic send mode. | +| `fortune.tags` | string | Default tags for fortune images. | +| `fortune.content_mode` | `sfw`, `r18`, `mix` | Content rating for fortune images. | + +Boolean values can be passed as strings like `"true"` or `"false"`. + +Global delivery settings such as `napcat_stream_mode`, send cache TTL, and send cache size are not session preferences and are not exposed through the LLM session config tools. Tell users to change them in the AstrBot WebUI plugin config. + +## Choosing Tools + +For image requests, extract count and tags from the user. Default to `count=1` and `tags=[]` when unspecified. Preserve meaningful tags such as `白丝`, `猫耳`, `blue archive`, or `long_hair`. The plugin decides R18 behavior from the current effective `setu.content_mode`; do not pass a separate R18 flag because the current tool does not expose one. + +For settings questions, call `get_session_config`. If the user asks about one setting, pass the specific key. If they ask for all settings, omit `key`. The tool returns JSON; read `ok`, then summarize `data.effective`, `data.override`, and `data.global` as needed. + +For setting changes, call `set_session_config(key, value)` with the exact key. The tool returns JSON; if `ok` is false, report `message` directly. If `ok` is true, summarize the changed key and effective value. + +For clearing settings, call `clear_session_config(key)` for one override or `clear_session_config()` to clear all current-session overrides. Explain that the global config will apply afterward. + +For fortune requests, call `get_today_fortune`. For refresh requests, use `refresh_my_fortune`, `refresh_group_fortune`, or `refresh_all_fortune` based on scope. + +## Permission Boundaries + +Treat `set_session_config`, `clear_session_config`, and all refresh tools as privileged. If a tool reports insufficient permission, tell the user the operation requires an administrator or super administrator. Do not retry with a different tool to bypass permission checks. + +Use extra care with `r18`, `mix`, `setu.auto_revoke`, and `setu.r18_docx`. Change only what the user requested; do not silently enable unrelated safety or delivery settings. + +## Response Style + +Be concise. After a fetch or fortune tool returns, say what was requested and whether the plugin reported success or failure. Do not claim that an image was sent unless the tool result says it succeeded. + +For failures, surface the plugin's message directly and suggest a practical next step such as fewer images, different tags, or a different send mode. Do not tell the user to configure HTML fallback in WebUI after fallback failure; the plugin now reports fallback failure as a normal send failure. + +For slow image sending on NapCat/OneBot, explain that the plugin downloads images to local send cache first and defaults to `napcat_stream_mode=fallback`: it tries normal file-path sending, then uses NapCat stream upload if that fails. `always` can be enabled globally in WebUI when the platform supports stream upload and large original images are common. + +## Examples + +User: `来三张白丝猫耳` + +Action: `get_setu_image(count=3, tags=["白丝", "猫耳"])` + +User: `现在是 r18 吗` + +Action: `get_session_config(key="setu.content_mode")` + +User: `这个群以后用合并转发` + +Action: `set_session_config(key="setu.send_mode", value="forward")` + +User: `开启 r18 自动撤回` + +Action: `set_session_config(key="setu.auto_revoke", value="true")` + +User: `清掉这个群的色图模式` + +Action: `clear_session_config(key="setu.content_mode")` + +User: `今日运势` + +Action: `get_today_fortune()` diff --git a/src/__init__.py b/src/__init__.py new file mode 100644 index 0000000..77804d0 --- /dev/null +++ b/src/__init__.py @@ -0,0 +1,14 @@ +"""AstrBot Setu plugin internals.""" + +from __future__ import annotations + +from .infrastructure.astrbot import clear_config, get_config, init_config, set_config +from .shared import get_logger + +__all__ = [ + "clear_config", + "get_config", + "get_logger", + "init_config", + "set_config", +] diff --git a/src/application/__init__.py b/src/application/__init__.py new file mode 100644 index 0000000..cd39aa2 --- /dev/null +++ b/src/application/__init__.py @@ -0,0 +1,3 @@ +"""Application layer for use cases, ports, and settings facades.""" + +from __future__ import annotations diff --git a/src/application/ports/__init__.py b/src/application/ports/__init__.py new file mode 100644 index 0000000..822facf --- /dev/null +++ b/src/application/ports/__init__.py @@ -0,0 +1,16 @@ +"""Application ports implemented by infrastructure adapters.""" + +from __future__ import annotations + +from .access_control_repository import AccessControlRepository +from .fortune_repository import FortuneRepository +from .image_provider import ImageProvider, SetuImageProvider +from .session_config_repository import SessionConfigRepository + +__all__ = [ + "AccessControlRepository", + "FortuneRepository", + "ImageProvider", + "SessionConfigRepository", + "SetuImageProvider", +] diff --git a/src/application/ports/access_control_repository.py b/src/application/ports/access_control_repository.py new file mode 100644 index 0000000..139855d --- /dev/null +++ b/src/application/ports/access_control_repository.py @@ -0,0 +1,137 @@ +"""Repository interface for access control data. + +Defines the contract for accessing blacklist/whitelist data. +Implemented by infrastructure layer (e.g., FileBackedAccessControlRepo). +""" + +from __future__ import annotations + +from abc import ABC, abstractmethod + + +class AccessControlRepository(ABC): + """Repository interface for access control data.""" + + # Setu user access control + @abstractmethod + async def is_setu_user_blocked(self, user_id: str) -> bool: + """Check if user is in Setu blacklist.""" + ... + + @abstractmethod + async def is_setu_user_whitelisted(self, user_id: str) -> bool: + """Check if user is in Setu whitelist.""" + ... + + @abstractmethod + async def add_setu_blocked_user(self, user_id: str) -> bool: + """Add user to Setu blacklist.""" + ... + + @abstractmethod + async def remove_setu_blocked_user(self, user_id: str) -> bool: + """Remove user from Setu blacklist.""" + ... + + @abstractmethod + async def add_setu_whitelist_user(self, user_id: str) -> bool: + """Add user to Setu whitelist.""" + ... + + @abstractmethod + async def remove_setu_whitelist_user(self, user_id: str) -> bool: + """Remove user from Setu whitelist.""" + ... + + # Setu group access control + @abstractmethod + async def is_setu_group_blocked(self, group_id: str) -> bool: + """Check if group is in Setu blacklist.""" + ... + + @abstractmethod + async def is_setu_group_whitelisted(self, group_id: str) -> bool: + """Check if group is in Setu whitelist.""" + ... + + @abstractmethod + async def add_setu_blocked_group(self, group_id: str) -> bool: + """Add group to Setu blacklist.""" + ... + + @abstractmethod + async def remove_setu_blocked_group(self, group_id: str) -> bool: + """Remove group from Setu blacklist.""" + ... + + @abstractmethod + async def add_setu_whitelist_group(self, group_id: str) -> bool: + """Add group to Setu whitelist.""" + ... + + @abstractmethod + async def remove_setu_whitelist_group(self, group_id: str) -> bool: + """Remove group from Setu whitelist.""" + ... + + # Fortune user access control + @abstractmethod + async def is_fortune_user_blocked(self, user_id: str) -> bool: + """Check if user is in Fortune blacklist.""" + ... + + @abstractmethod + async def is_fortune_user_whitelisted(self, user_id: str) -> bool: + """Check if user is in Fortune whitelist.""" + ... + + @abstractmethod + async def add_fortune_blocked_user(self, user_id: str) -> bool: + """Add user to Fortune blacklist.""" + ... + + @abstractmethod + async def remove_fortune_blocked_user(self, user_id: str) -> bool: + """Remove user from Fortune blacklist.""" + ... + + @abstractmethod + async def add_fortune_whitelist_user(self, user_id: str) -> bool: + """Add user to Fortune whitelist.""" + ... + + @abstractmethod + async def remove_fortune_whitelist_user(self, user_id: str) -> bool: + """Remove user from Fortune whitelist.""" + ... + + # Fortune group access control + @abstractmethod + async def is_fortune_group_blocked(self, group_id: str) -> bool: + """Check if group is in Fortune blacklist.""" + ... + + @abstractmethod + async def is_fortune_group_whitelisted(self, group_id: str) -> bool: + """Check if group is in Fortune whitelist.""" + ... + + @abstractmethod + async def add_fortune_blocked_group(self, group_id: str) -> bool: + """Add group to Fortune blacklist.""" + ... + + @abstractmethod + async def remove_fortune_blocked_group(self, group_id: str) -> bool: + """Remove group from Fortune blacklist.""" + ... + + @abstractmethod + async def add_fortune_whitelist_group(self, group_id: str) -> bool: + """Add group to Fortune whitelist.""" + ... + + @abstractmethod + async def remove_fortune_whitelist_group(self, group_id: str) -> bool: + """Remove group from Fortune whitelist.""" + ... diff --git a/src/application/ports/fortune_repository.py b/src/application/ports/fortune_repository.py new file mode 100644 index 0000000..1f78918 --- /dev/null +++ b/src/application/ports/fortune_repository.py @@ -0,0 +1,66 @@ +"""Application port for fortune persistence.""" + +from __future__ import annotations + +from abc import ABC, abstractmethod +from typing import Any + +from ...domain.fortune.entities import FortuneGenerationRequest, FortuneRecord + + +class FortuneRepository(ABC): + """Repository interface for fortune data.""" + + @abstractmethod + async def get_today_fortune( + self, request: FortuneGenerationRequest + ) -> FortuneRecord | None: + """Get fortune for today.""" + ... + + @abstractmethod + async def save_fortune(self, record: FortuneRecord) -> bool: + """Save or update fortune record.""" + ... + + @abstractmethod + async def delete_fortune(self, user_id: str, date_str: str) -> bool: + """Delete a fortune record.""" + ... + + @abstractmethod + async def delete_group_fortunes(self, group_id: str, date_str: str) -> int: + """Delete all fortune records for a group on a date.""" + ... + + @abstractmethod + async def delete_all_fortunes(self, date_str: str) -> int: + """Delete all fortune records for a date.""" + ... + + @abstractmethod + async def get_active_users(self, days: int = 3) -> list[str]: + """Get active user IDs.""" + ... + + @abstractmethod + async def get_cached_image_path(self, user_id: str, date_str: str) -> Any | None: + """Get cached image path.""" + ... + + @abstractmethod + async def save_cached_image( + self, user_id: str, date_str: str, image_data: bytes, img_url: str | None + ) -> Any: + """Save cached image data.""" + ... + + @abstractmethod + async def delete_cached_image(self, user_id: str, date_str: str) -> bool: + """Delete cached image.""" + ... + + @abstractmethod + async def cleanup_expired_cache(self, date_str: str) -> int: + """Clean expired cache files.""" + ... diff --git a/src/application/ports/image_provider.py b/src/application/ports/image_provider.py new file mode 100644 index 0000000..2049690 --- /dev/null +++ b/src/application/ports/image_provider.py @@ -0,0 +1,243 @@ +"""图片提供商基类。""" + +from __future__ import annotations + +import asyncio +from pathlib import Path +from urllib.parse import urlsplit, urlunsplit + +import httpx + +from ...domain.setu import SetuRequest +from ...shared import get_logger +from ...shared.send_cache import get_send_cache +from ..setu.dto import ImagePayload + +logger = get_logger() + + +class SetuImageProvider: + """色图图片提供商基类(策略模式)。""" + + async def fetch_image_urls( + self, + num: int, + tags: list[str], + r18: bool, + exclude_ai: bool = True, + ) -> list[str]: + """从 API 获取图片 URL 列表。 + + 参数: + num: 要获取的图片数量。 + tags: 搜索标签/关键词。 + r18: 是否请求 R18 内容。 + exclude_ai: 是否排除 AI 生成的作品。 + + 返回: + 图片 URL 列表。 + """ + raise NotImplementedError + + async def fetch_and_download(self, request: SetuRequest) -> ImagePayload: + """Fetch image URLs and download them to local files for delivery.""" + provider_name = self._provider_name() + logger.info( + "[provider] fetch start: provider=%s, count=%d, r18=%s, tags=%s, exclude_ai=%s", + provider_name, + request.count, + request.r18, + ",".join(request.tags) or "-", + request.exclude_ai, + ) + urls = await self.fetch_image_urls( + num=request.count, + tags=list(request.tags), + r18=request.r18, + exclude_ai=request.exclude_ai, + ) + if not urls: + logger.warning( + "[provider] no urls returned: provider=%s, count=%d, r18=%s, tags=%s", + provider_name, + request.count, + request.r18, + ",".join(request.tags) or "-", + ) + return ImagePayload( + urls=(), raw_bytes=(), file_paths=(), r18=request.r18, tags=request.tags + ) + + cache = get_send_cache() + cache_enabled = bool(cache and cache.enabled) + logger.info( + "[provider] fetch result: provider=%s, urls=%d, cache_enabled=%s", + provider_name, + len(urls), + cache_enabled, + ) + + async def download(client: httpx.AsyncClient, url: str) -> Path | bytes | None: + try: + if cache_enabled and cache: + cached = await cache.get(url) + if cached is not None: + logger.debug( + "[provider] cache hit: provider=%s, url=%s", + provider_name, + url, + ) + return cached + + if cache is not None: + write = None + try: + async with client.stream("GET", url) as response: + response.raise_for_status() + write = await cache.reserve( + url, response.headers.get("content-type") + ) + with write.temp_path.open("wb") as file: + async for chunk in response.aiter_bytes(): + if chunk: + await asyncio.to_thread(file.write, chunk) + final_path = await cache.commit(write) + logger.debug( + "[provider] download cached: provider=%s, url=%s, path=%s", + provider_name, + url, + final_path, + ) + return final_path + except Exception: + if write is not None: + await cache.discard(write) + raise + + response = await client.get(url) + response.raise_for_status() + logger.debug( + "[provider] download bytes: provider=%s, url=%s, bytes=%d", + provider_name, + url, + len(response.content), + ) + return response.content + except (httpx.HTTPError, asyncio.TimeoutError) as exc: + logger.warning( + "[provider] download failed: provider=%s, url=%s, error=%s", + provider_name, + url, + exc, + ) + return None + + async with httpx.AsyncClient(timeout=30.0, follow_redirects=True) as client: + results = await asyncio.gather(*(download(client, url) for url in urls)) + + items = tuple(item for item in results if item is not None) + raw_bytes = tuple(item for item in items if isinstance(item, bytes)) + file_paths = tuple(item for item in items if isinstance(item, Path)) + logger.info( + "[provider] download summary: provider=%s, requested=%d, succeeded=%d, failed=%d, bytes=%d, files=%d", + provider_name, + len(urls), + len(items), + len(urls) - len(items), + len(raw_bytes), + len(file_paths), + ) + if not items: + logger.error( + "[provider] all downloads failed: provider=%s, requested=%d, tags=%s", + provider_name, + len(urls), + ",".join(request.tags) or "-", + ) + return ImagePayload( + urls=tuple(urls), + raw_bytes=raw_bytes, + file_paths=file_paths, + items=items, + r18=request.r18, + tags=request.tags, + ) + + def _provider_name(self) -> str: + return self.__class__.__name__ + + def _apply_proxy_to_url(self, url: str, proxy: str | None) -> str: + """Rewrite Pixiv-style image URLs to the configured reverse proxy host.""" + proxy_host = (proxy or "").strip() + if not proxy_host: + return url + + try: + parsed = urlsplit(url) + except ValueError: + return url + + if parsed.scheme not in ("http", "https") or not parsed.netloc: + return url + + original_host = parsed.hostname or "" + proxy_targets = { + "i.pximg.net", + "i.pixiv.re", + "i.pixiv.cat", + "proxy.pixivel.moe", + } + if original_host not in proxy_targets: + return url + + if ":" in proxy_host: + netloc = proxy_host + else: + netloc = proxy_host + return urlunsplit((parsed.scheme, netloc, parsed.path, parsed.query, parsed.fragment)) + + def _apply_proxy_to_urls( + self, urls: list[str], proxy: str | None, provider_name: str + ) -> list[str]: + if not proxy: + return urls + + rewritten = [self._apply_proxy_to_url(url, proxy) for url in urls] + changed = sum(1 for old, new in zip(urls, rewritten, strict=False) if old != new) + if changed: + logger.info( + "[provider] proxy rewritten: provider=%s, proxy=%s, changed=%d", + provider_name, + proxy, + changed, + ) + else: + logger.debug( + "[provider] proxy rewrite skipped: provider=%s, proxy=%s, urls=%d", + provider_name, + proxy, + len(urls), + ) + return rewritten + + @staticmethod + def _normalize_bool(value, default: bool = True) -> bool: + """Normalize possibly-dirty boolean input from config/runtime sources.""" + if value is None: + return default + if isinstance(value, bool): + return value + if isinstance(value, (int, float)): + return bool(value) + if isinstance(value, str): + lowered = value.strip().lower() + if lowered in {"true", "1", "yes", "on"}: + return True + if lowered in {"false", "0", "no", "off"}: + return False + if lowered in {"none", "null", ""}: + return default + return default + + +ImageProvider = SetuImageProvider diff --git a/src/application/ports/session_config_repository.py b/src/application/ports/session_config_repository.py new file mode 100644 index 0000000..df4d534 --- /dev/null +++ b/src/application/ports/session_config_repository.py @@ -0,0 +1,31 @@ +"""Application port for session configuration persistence.""" + +from __future__ import annotations + +from abc import ABC, abstractmethod + +from ..session_config.dto import SessionConfigRecord + + +class SessionConfigRepository(ABC): + """Repository interface for session-scoped config overrides.""" + + @abstractmethod + async def list_sessions(self) -> list[SessionConfigRecord]: + """List all stored session records.""" + ... + + @abstractmethod + async def get_session(self, session_id: str) -> SessionConfigRecord | None: + """Get a session record by ID.""" + ... + + @abstractmethod + async def upsert_session(self, record: SessionConfigRecord) -> SessionConfigRecord: + """Create or replace a session record.""" + ... + + @abstractmethod + async def delete_session(self, session_id: str) -> bool: + """Delete a session record.""" + ... diff --git a/src/application/session_config/__init__.py b/src/application/session_config/__init__.py new file mode 100644 index 0000000..2764c54 --- /dev/null +++ b/src/application/session_config/__init__.py @@ -0,0 +1,29 @@ +"""Session-scoped configuration application services.""" + +from __future__ import annotations + +from .dto import JsonValue, SessionConfigRecord, SessionConfigSnapshot, SessionType +from .keys import ( + SESSION_CONFIG_KEYS, + SessionConfigKey, + SessionConfigValidationError, + get_key_definition, + normalize_config_value, + normalize_session_type, +) +from .service import SessionConfigService, get_global_session_config_values + +__all__ = [ + "JsonValue", + "SESSION_CONFIG_KEYS", + "SessionConfigKey", + "SessionConfigRecord", + "SessionConfigService", + "SessionConfigSnapshot", + "SessionConfigValidationError", + "SessionType", + "get_global_session_config_values", + "get_key_definition", + "normalize_config_value", + "normalize_session_type", +] diff --git a/src/application/session_config/dto.py b/src/application/session_config/dto.py new file mode 100644 index 0000000..5d14bfa --- /dev/null +++ b/src/application/session_config/dto.py @@ -0,0 +1,51 @@ +"""DTOs for per-session configuration overrides.""" + +from __future__ import annotations + +from dataclasses import dataclass, field +from typing import Any, Literal + +JsonValue = str | int | float | bool | None | list[Any] | dict[str, Any] +SessionType = Literal["group", "private"] + + +@dataclass(frozen=True, slots=True) +class SessionConfigRecord: + """Stored override record for one chat session.""" + + session_id: str + session_type: SessionType = "private" + display_name: str = "" + overrides: dict[str, JsonValue] = field(default_factory=dict) + + def to_dict(self) -> dict[str, Any]: + """Return a JSON-serializable representation.""" + return { + "session_id": self.session_id, + "session_type": self.session_type, + "display_name": self.display_name, + "overrides": dict(self.overrides), + } + + +@dataclass(frozen=True, slots=True) +class SessionConfigSnapshot: + """Effective configuration for one session.""" + + session_id: str + session_type: SessionType + display_name: str + overrides: dict[str, JsonValue] + global_values: dict[str, JsonValue] + effective: dict[str, JsonValue] + + def to_dict(self) -> dict[str, Any]: + """Return a JSON-serializable representation.""" + return { + "session_id": self.session_id, + "session_type": self.session_type, + "display_name": self.display_name, + "overrides": dict(self.overrides), + "global": dict(self.global_values), + "effective": dict(self.effective), + } diff --git a/src/application/session_config/keys.py b/src/application/session_config/keys.py new file mode 100644 index 0000000..294708b --- /dev/null +++ b/src/application/session_config/keys.py @@ -0,0 +1,153 @@ +"""Known session-scoped configuration keys and validation.""" + +from __future__ import annotations + +from dataclasses import dataclass +from typing import Any, Literal + +from .dto import JsonValue + +ValueType = Literal["enum", "bool", "string"] + + +@dataclass(frozen=True, slots=True) +class SessionConfigKey: + """Metadata for a supported session override key.""" + + key: str + label: str + value_type: ValueType + description: str + options: tuple[str, ...] = () + + def to_dict(self) -> dict[str, Any]: + """Return a JSON-serializable schema fragment.""" + return { + "key": self.key, + "label": self.label, + "type": self.value_type, + "description": self.description, + "options": list(self.options), + } + + +SESSION_CONFIG_KEYS: dict[str, SessionConfigKey] = { + "setu.content_mode": SessionConfigKey( + key="setu.content_mode", + label="色图内容分级", + value_type="enum", + options=("sfw", "r18", "mix"), + description="当前会话请求色图时使用的内容分级。", + ), + "setu.r18_docx": SessionConfigKey( + key="setu.r18_docx", + label="R18 Docx 打包", + value_type="bool", + description="当前会话发送 R18 图片时是否优先打包为 Docx。", + ), + "setu.auto_revoke": SessionConfigKey( + key="setu.auto_revoke", + label="R18 自动撤回", + value_type="bool", + description="当前会话发送 R18 内容后是否自动撤回。", + ), + "setu.send_mode": SessionConfigKey( + key="setu.send_mode", + label="图片发送模式", + value_type="enum", + options=("image", "forward", "auto"), + description="当前会话发送图片时使用直发、合并转发或自动模式。", + ), + "fortune.tags": SessionConfigKey( + key="fortune.tags", + label="运势图片标签", + value_type="string", + description="当前会话生成运势图片时使用的默认标签。", + ), + "fortune.content_mode": SessionConfigKey( + key="fortune.content_mode", + label="运势内容分级", + value_type="enum", + options=("sfw", "r18", "mix"), + description="当前会话生成运势图片时使用的内容分级。", + ), +} + +TRUE_VALUES = { + "1", + "true", + "yes", + "y", + "on", + "enable", + "enabled", + "开", + "开启", + "启用", + "是", +} +FALSE_VALUES = { + "0", + "false", + "no", + "n", + "off", + "disable", + "disabled", + "关", + "关闭", + "禁用", + "否", +} + + +class SessionConfigValidationError(ValueError): + """Raised when a session configuration key or value is invalid.""" + + +def get_key_definition(key: str) -> SessionConfigKey: + """Return metadata for a key or raise a validation error.""" + normalized = key.strip() + definition = SESSION_CONFIG_KEYS.get(normalized) + if definition is None: + raise SessionConfigValidationError( + f"未知配置项:{key}。可用配置项:{', '.join(SESSION_CONFIG_KEYS)}" + ) + return definition + + +def normalize_session_type(value: str | None) -> Literal["group", "private"]: + """Normalize a session type from user/API input.""" + normalized = (value or "private").strip().lower() + if normalized not in ("group", "private"): + raise SessionConfigValidationError("session_type 必须是 group 或 private") + return normalized # type: ignore[return-value] + + +def normalize_config_value(key: str, value: Any) -> JsonValue: + """Normalize and validate a value for a known session config key.""" + definition = get_key_definition(key) + if definition.value_type == "bool": + return _normalize_bool(value) + if definition.value_type == "enum": + text = str(value).strip().lower() + if text not in definition.options: + raise SessionConfigValidationError( + f"{definition.label} 的值必须是:{', '.join(definition.options)}" + ) + return text + return "" if value is None else str(value).strip() + + +def _normalize_bool(value: Any) -> bool: + """Normalize common boolean spellings.""" + if isinstance(value, bool): + return value + if isinstance(value, int) and value in (0, 1): + return bool(value) + text = str(value).strip().lower() + if text in TRUE_VALUES: + return True + if text in FALSE_VALUES: + return False + raise SessionConfigValidationError("布尔值必须是 true/false、on/off 或 1/0") diff --git a/src/application/session_config/service.py b/src/application/session_config/service.py new file mode 100644 index 0000000..59095f0 --- /dev/null +++ b/src/application/session_config/service.py @@ -0,0 +1,191 @@ +"""Application service for session-scoped configuration overrides.""" + +from __future__ import annotations + +from typing import TYPE_CHECKING, Any + +from ..settings import get_delivery_settings, get_fortune_settings, get_setu_settings +from .dto import JsonValue, SessionConfigRecord, SessionConfigSnapshot +from .keys import ( + SESSION_CONFIG_KEYS, + get_key_definition, + normalize_config_value, + normalize_session_type, +) + +if TYPE_CHECKING: + from ..ports.session_config_repository import SessionConfigRepository + + +class SessionConfigService: + """Coordinate validation, persistence, and effective session config snapshots.""" + + def __init__(self, repository: SessionConfigRepository) -> None: + self._repo = repository + + async def list_snapshots(self) -> list[SessionConfigSnapshot]: + """Return effective snapshots for all stored sessions.""" + records = await self._repo.list_sessions() + return [self._snapshot_from_record(record) for record in records] + + async def get_snapshot( + self, + session_id: str, + session_type: str = "private", + display_name: str = "", + ) -> SessionConfigSnapshot: + """Return the effective config snapshot for a session.""" + record = await self._repo.get_session(_normalize_session_id(session_id)) + if record is None: + record = SessionConfigRecord( + session_id=_normalize_session_id(session_id), + session_type=normalize_session_type(session_type), + display_name=display_name.strip(), + ) + return self._snapshot_from_record(record) + + async def get_effective_value( + self, + session_id: str, + key: str, + session_type: str = "private", + display_name: str = "", + ) -> JsonValue: + """Return one effective value for a session.""" + snapshot = await self.get_snapshot(session_id, session_type, display_name) + return snapshot.effective[key] + + async def set_value( + self, + session_id: str, + session_type: str, + key: str, + value: Any, + display_name: str = "", + ) -> SessionConfigSnapshot: + """Set one override value and return the updated snapshot.""" + session_id = _normalize_session_id(session_id) + normalized_key = key.strip() + record = await self._repo.get_session(session_id) + if record is None: + record = SessionConfigRecord( + session_id=session_id, + session_type=normalize_session_type(session_type), + display_name=display_name.strip(), + ) + + overrides = dict(record.overrides) + overrides[normalized_key] = normalize_config_value(normalized_key, value) + updated = SessionConfigRecord( + session_id=session_id, + session_type=normalize_session_type(session_type or record.session_type), + display_name=(display_name or record.display_name).strip(), + overrides=overrides, + ) + saved = await self._repo.upsert_session(updated) + return self._snapshot_from_record(saved) + + async def clear( + self, + session_id: str, + session_type: str, + key: str | None = None, + display_name: str = "", + ) -> SessionConfigSnapshot: + """Clear one override or all overrides while keeping the session record.""" + session_id = _normalize_session_id(session_id) + record = await self._repo.get_session(session_id) + if record is None: + record = SessionConfigRecord( + session_id=session_id, + session_type=normalize_session_type(session_type), + display_name=display_name.strip(), + ) + + overrides = dict(record.overrides) + if key: + get_key_definition(key) + overrides.pop(key.strip(), None) + else: + overrides.clear() + + updated = SessionConfigRecord( + session_id=session_id, + session_type=normalize_session_type(session_type or record.session_type), + display_name=(display_name or record.display_name).strip(), + overrides=overrides, + ) + saved = await self._repo.upsert_session(updated) + return self._snapshot_from_record(saved) + + async def upsert_session( + self, + session_id: str, + session_type: str, + display_name: str = "", + overrides: dict[str, Any] | None = None, + ) -> SessionConfigSnapshot: + """Create or replace a session config record from WebUI input.""" + normalized_overrides = { + key.strip(): normalize_config_value(key, value) + for key, value in (overrides or {}).items() + } + record = SessionConfigRecord( + session_id=_normalize_session_id(session_id), + session_type=normalize_session_type(session_type), + display_name=display_name.strip(), + overrides=normalized_overrides, + ) + saved = await self._repo.upsert_session(record) + return self._snapshot_from_record(saved) + + async def delete_session(self, session_id: str) -> bool: + """Delete a whole session record.""" + return await self._repo.delete_session(_normalize_session_id(session_id)) + + def _snapshot_from_record( + self, record: SessionConfigRecord + ) -> SessionConfigSnapshot: + global_values = get_global_session_config_values() + overrides = _filter_known_overrides(record.overrides) + effective = dict(global_values) + effective.update(overrides) + return SessionConfigSnapshot( + session_id=record.session_id, + session_type=record.session_type, + display_name=record.display_name, + overrides=overrides, + global_values=global_values, + effective=effective, + ) + + +def get_global_session_config_values() -> dict[str, JsonValue]: + """Return current read-only global values relevant to session overrides.""" + setu = get_setu_settings() + delivery = get_delivery_settings() + fortune = get_fortune_settings() + return { + "setu.content_mode": setu.content_mode, + "setu.r18_docx": delivery.r18_docx_mode, + "setu.auto_revoke": delivery.auto_revoke_r18, + "setu.send_mode": delivery.send_mode, + "fortune.tags": fortune.tags, + "fortune.content_mode": fortune.content_mode, + } + + +def _filter_known_overrides(overrides: dict[str, Any]) -> dict[str, JsonValue]: + """Keep only known and valid override values.""" + result: dict[str, JsonValue] = {} + for key, value in overrides.items(): + if key in SESSION_CONFIG_KEYS: + result[key] = normalize_config_value(key, value) + return result + + +def _normalize_session_id(session_id: str) -> str: + normalized = str(session_id).strip() + if not normalized: + raise ValueError("session_id 不能为空") + return normalized diff --git a/src/application/settings.py b/src/application/settings.py new file mode 100644 index 0000000..a1a87f4 --- /dev/null +++ b/src/application/settings.py @@ -0,0 +1,120 @@ +"""Read-only settings facade for application code. + +Infrastructure owns the full AstrBot/Pydantic config object. Application code reads +small settings snapshots so it does not reach into the full runtime config tree. +""" + +from __future__ import annotations + +from dataclasses import dataclass + +from ..shared.config import SetuPluginConfig + + +@dataclass(frozen=True) +class SetuSettings: + """Settings needed by Setu use cases.""" + + max_count: int + content_mode: str + exclude_ai: bool + fetch_timeout_seconds: float = 60.0 + + +@dataclass(frozen=True) +class DeliverySettings: + """Settings needed by adapter-level delivery.""" + + send_mode: str + html_card_strategy: str + auto_revoke_r18: bool + auto_revoke_delay: int + r18_docx_mode: bool + html_card_padding: int + html_card_gap: int + napcat_stream_mode: str + + +@dataclass(frozen=True) +class FortuneSettings: + """Settings needed by fortune use cases.""" + + enabled: bool + content_mode: str + tags: str + allow_user_refresh: bool + auto_refresh: bool + + +_config: SetuPluginConfig | None = None + + +def set_application_config(config: SetuPluginConfig) -> None: + """Set the config snapshot used by application settings getters.""" + global _config + _config = config + + +def clear_application_config() -> None: + """Clear application config for tests and plugin shutdown.""" + global _config + _config = None + + +def get_setu_settings() -> SetuSettings: + """Return Setu settings from the current config snapshot.""" + if _config is None: + return SetuSettings( + max_count=10, + content_mode="sfw", + exclude_ai=True, + ) + return SetuSettings( + max_count=_config.max_count, + content_mode=_config.content_mode, + exclude_ai=_config.exclude_ai, + ) + + +def get_delivery_settings() -> DeliverySettings: + """Return delivery settings from the current config snapshot.""" + if _config is None: + return DeliverySettings( + send_mode="image", + html_card_strategy="never", + auto_revoke_r18=False, + auto_revoke_delay=30, + r18_docx_mode=False, + html_card_padding=6, + html_card_gap=6, + napcat_stream_mode="fallback", + ) + return DeliverySettings( + send_mode=_config.send_mode, + html_card_strategy=_config.html_card_strategy, + auto_revoke_r18=_config.auto_revoke_r18, + auto_revoke_delay=_config.auto_revoke_delay, + r18_docx_mode=_config.r18_docx_mode, + html_card_padding=_config.html_card_padding, + html_card_gap=_config.html_card_gap, + napcat_stream_mode=_config.napcat_stream_mode, + ) + + +def get_fortune_settings() -> FortuneSettings: + """Return fortune settings from the current config snapshot.""" + if _config is None: + return FortuneSettings( + enabled=True, + content_mode="sfw", + tags="", + allow_user_refresh=False, + auto_refresh=True, + ) + return FortuneSettings( + enabled=_config.fortune.enabled, + content_mode=_config.fortune.content_mode.value, + tags=_config.fortune.tags, + allow_user_refresh=_config.fortune.allow_user_refresh, + auto_refresh=_config.fortune.auto_refresh, + ) diff --git a/src/application/setu/__init__.py b/src/application/setu/__init__.py new file mode 100644 index 0000000..d25f6af --- /dev/null +++ b/src/application/setu/__init__.py @@ -0,0 +1,7 @@ +"""Setu application use cases.""" + +from __future__ import annotations + +from .dto import ImagePayload, SetuImagesResult + +__all__ = ["ImagePayload", "SetuImagesResult"] diff --git a/src/application/setu/dto.py b/src/application/setu/dto.py new file mode 100644 index 0000000..2580154 --- /dev/null +++ b/src/application/setu/dto.py @@ -0,0 +1,43 @@ +"""Setu application DTOs.""" + +from __future__ import annotations + +from dataclasses import dataclass +from pathlib import Path + + +@dataclass(frozen=True) +class ImagePayload: + """Fetched image data ready for adapter-level delivery.""" + + urls: tuple[str, ...] + raw_bytes: tuple[bytes, ...] + r18: bool + tags: tuple[str, ...] + file_paths: tuple[Path, ...] = () + items: tuple[Path | bytes, ...] = () + + @property + def is_empty(self) -> bool: + """Check if payload contains no data.""" + return ( + not self.urls + and not self.raw_bytes + and not self.file_paths + and not self.items + ) + + @property + def count(self) -> int: + """Return number of images in payload.""" + if self.items: + return len(self.items) + return max(len(self.urls), len(self.raw_bytes), len(self.file_paths)) + + +@dataclass(frozen=True) +class SetuImagesResult: + """Application result for a Setu image request.""" + + payload: ImagePayload | None + notice: str | None = None diff --git a/src/application/setu/get_images.py b/src/application/setu/get_images.py new file mode 100644 index 0000000..0a22ad4 --- /dev/null +++ b/src/application/setu/get_images.py @@ -0,0 +1,39 @@ +"""Use case for fetching Setu images.""" + +from __future__ import annotations + +import asyncio + +from ...domain.setu import SetuRequest +from ..ports import ImageProvider +from ..settings import get_setu_settings +from .dto import SetuImagesResult + + +class GetSetuImagesUseCase: + """Fetch Setu image data without knowing how a chat platform will send it.""" + + def __init__(self, image_provider: ImageProvider) -> None: + self._provider = image_provider + + async def execute(self, count: int, tags: list[str], r18: bool) -> SetuImagesResult: + """Fetch image files according to current settings.""" + settings = get_setu_settings() + request = SetuRequest.from_user_input( + count=count, + tags=tags, + r18=r18, + exclude_ai=settings.exclude_ai, + ) + + payload = await asyncio.wait_for( + self._provider.fetch_and_download(request), + timeout=settings.fetch_timeout_seconds, + ) + + if payload.is_empty: + tags_info = f"标签: {', '.join(tags)}" if tags else "" + return SetuImagesResult( + payload=None, notice=f"未找到{tags_info}符合要求的图片~" + ) + return SetuImagesResult(payload=payload) diff --git a/src/domain/__init__.py b/src/domain/__init__.py new file mode 100644 index 0000000..21d5956 --- /dev/null +++ b/src/domain/__init__.py @@ -0,0 +1,64 @@ +"""Domain layer for AstrBot Setu plugin. + +Contains value objects, exceptions, enums, and domain services following +Domain-Driven Design principles. +""" + +from __future__ import annotations + +from .access_control import AccessPolicy +from .constants import COMMAND_PATTERN, FORTUNE_PATTERN, HTTP_TIMEOUT_SECONDS +from .enums import ( + AccessControlMode, + ApiType, + ContentMode, + HtmlCardStrategy, + MultiApiStrategy, + SendMode, +) +from .exceptions import ( + AccessDeniedError, + FortuneException, + FortuneNotFoundError, + ProviderError, + SendError, + SetuException, + ValidationError, +) +from .fortune import ( + FortuneGenerationRequest, + FortuneRecord, + FortuneResult, + FortuneSeed, +) +from .setu import SetuRequest, TagResolverService + +__all__ = [ + # Constants + "COMMAND_PATTERN", + "FORTUNE_PATTERN", + "HTTP_TIMEOUT_SECONDS", + # Enums + "ApiType", + "ContentMode", + "SendMode", + "HtmlCardStrategy", + "MultiApiStrategy", + "AccessControlMode", + # Exceptions + "SetuException", + "ProviderError", + "SendError", + "AccessDeniedError", + "ValidationError", + "FortuneException", + "FortuneNotFoundError", + # Value Objects + "SetuRequest", + "AccessPolicy", + "FortuneSeed", + "FortuneResult", + "FortuneGenerationRequest", + "FortuneRecord", + "TagResolverService", +] diff --git a/src/domain/access_control/__init__.py b/src/domain/access_control/__init__.py new file mode 100644 index 0000000..5d8e85c --- /dev/null +++ b/src/domain/access_control/__init__.py @@ -0,0 +1,7 @@ +"""Access-control domain value objects.""" + +from __future__ import annotations + +from .value_objects import AccessPolicy + +__all__ = ["AccessPolicy"] diff --git a/src/domain/access_control/service.py b/src/domain/access_control/service.py new file mode 100644 index 0000000..1805a17 --- /dev/null +++ b/src/domain/access_control/service.py @@ -0,0 +1,134 @@ +"""Domain service for access control logic. + +Centralizes access control decisions that were previously duplicated +across SetuCore, CommandHandler, and FortuneCommandHandler. +""" + +from __future__ import annotations + +from ...application.ports import AccessControlRepository +from .value_objects import AccessPolicy + + +class AccessControlService: + """Domain service for access control decisions. + + Provides a single place for access control logic, eliminating + duplication across SetuCore, CommandHandler, and FortuneCommandHandler. + """ + + def __init__(self, repository: AccessControlRepository) -> None: + """Initialize access control service. + + Args: + repository: Repository for accessing blacklist/whitelist data + """ + self._repo = repository + + async def check_setu_access(self, policy: AccessPolicy) -> tuple[bool, str | None]: + """Check if Setu access is allowed. + + Args: + policy: Access policy containing user/group IDs and modes + + Returns: + Tuple of (allowed, denial_reason). If allowed=True, reason is None. + """ + return await self._check_access( + policy, + user_blacklist_fn=self._repo.is_setu_user_blocked, + user_whitelist_fn=self._repo.is_setu_user_whitelisted, + group_blacklist_fn=self._repo.is_setu_group_blocked, + group_whitelist_fn=self._repo.is_setu_group_whitelisted, + feature_name="setu", + ) + + async def check_fortune_access( + self, policy: AccessPolicy + ) -> tuple[bool, str | None]: + """Check if Fortune access is allowed. + + Args: + policy: Access policy containing user/group IDs and modes + + Returns: + Tuple of (allowed, denial_reason). If allowed=True, reason is None. + """ + return await self._check_access( + policy, + user_blacklist_fn=self._repo.is_fortune_user_blocked, + user_whitelist_fn=self._repo.is_fortune_user_whitelisted, + group_blacklist_fn=self._repo.is_fortune_group_blocked, + group_whitelist_fn=self._repo.is_fortune_group_whitelisted, + feature_name="fortune", + ) + + async def _check_access( + self, + policy: AccessPolicy, + user_blacklist_fn, + user_whitelist_fn, + group_blacklist_fn, + group_whitelist_fn, + feature_name: str, + ) -> tuple[bool, str | None]: + """Internal access check implementation. + + Args: + policy: Access policy + user_blacklist_fn: Async function to check if user is blacklisted + user_whitelist_fn: Async function to check if user is whitelisted + group_blacklist_fn: Async function to check if group is blacklisted + group_whitelist_fn: Async function to check if group is whitelisted + feature_name: Feature name for logging + + Returns: + Tuple of (allowed, denial_reason) + """ + from astrbot.api import logger + + # Check user access control + if policy.user_id is not None: + uid = str(policy.user_id) + + if policy.user_mode == "blacklist": + if await user_blacklist_fn(uid): + logger.info( + "[%s] Access denied for user=%s: blacklist mode", + feature_name, + uid, + ) + return False, "用户被禁用" + + elif policy.user_mode == "whitelist": + if not await user_whitelist_fn(uid): + logger.info( + "[%s] Access denied for user=%s: not in whitelist", + feature_name, + uid, + ) + return False, "用户不在白名单中" + + # Check group access control + if policy.group_id is not None: + gid = str(policy.group_id) + + if policy.group_mode == "blacklist": + if await group_blacklist_fn(gid): + logger.info( + "[%s] Access denied for group=%s: blacklist mode", + feature_name, + gid, + ) + return False, "群组被禁用" + + elif policy.group_mode == "whitelist": + if not await group_whitelist_fn(gid): + logger.info( + "[%s] Access denied for group=%s: not in whitelist", + feature_name, + gid, + ) + return False, "群组不在白名单中" + + return True, None diff --git a/src/domain/access_control/value_objects.py b/src/domain/access_control/value_objects.py new file mode 100644 index 0000000..817e11a --- /dev/null +++ b/src/domain/access_control/value_objects.py @@ -0,0 +1,36 @@ +"""Access-control domain value objects.""" + +from __future__ import annotations + +from dataclasses import dataclass + + +@dataclass(frozen=True) +class AccessPolicy: + """Value object for access-control policy.""" + + user_id: str | None + group_id: str | None + user_mode: str + group_mode: str + + @classmethod + def for_user(cls, user_id: str, user_mode: str = "none") -> AccessPolicy: + """Create policy for user-only access control.""" + return cls(user_id, None, user_mode, "none") + + @classmethod + def for_group(cls, group_id: str, group_mode: str = "none") -> AccessPolicy: + """Create policy for group-only access control.""" + return cls(None, group_id, "none", group_mode) + + @classmethod + def for_session( + cls, + user_id: str | None, + group_id: str | None, + user_mode: str = "none", + group_mode: str = "none", + ) -> AccessPolicy: + """Create policy for full session access control.""" + return cls(user_id, group_id, user_mode, group_mode) diff --git a/src/domain/constants.py b/src/domain/constants.py new file mode 100644 index 0000000..5d7188b --- /dev/null +++ b/src/domain/constants.py @@ -0,0 +1,19 @@ +"""Setu 插件的领域常量。""" + +from __future__ import annotations + +# 图片下载的 HTTP 超时时间(秒)- 默认值为 30,可通过配置覆盖 +HTTP_TIMEOUT_SECONDS = 30 + +# 常见标签的默认别名映射 +DEFAULT_TAG_ALIAS: dict[str, list[str]] = { + "白丝": ["白丝", "白絲", "white stockings"], + "萝莉": ["萝莉", "蘿莉", "loli"], + "碧蓝档案": ["碧蓝档案", "碧藍檔案", "blue archive", "ba"], +} + +# 命令匹配正则表达式 +COMMAND_PATTERN = r"^/?(来\s*(.*?)(份|个|张|点))(.*?)(?:福利|色|瑟|涩|塞)?图$" + +# 今日运势命令正则 - 只匹配不以斜杠开头的纯文本 +FORTUNE_PATTERN = r"^(?!/)(今日运势|jrys)$" diff --git a/src/domain/enums.py b/src/domain/enums.py new file mode 100644 index 0000000..b282128 --- /dev/null +++ b/src/domain/enums.py @@ -0,0 +1,55 @@ +"""Setu 插件的领域枚举。""" + +from __future__ import annotations + +from enum import Enum + + +class ContentMode(str, Enum): + """内容分级模式。""" + + SFW = "sfw" + R18 = "r18" + MIX = "mix" + + +class SendMode(str, Enum): + """图片发送模式。""" + + IMAGE = "image" + FORWARD = "forward" + AUTO = "auto" + + +class HtmlCardStrategy(str, Enum): + """HTML 卡片策略。""" + + NEVER = "never" + FALLBACK = "fallback" + ALWAYS = "always" + + +class ApiType(str, Enum): + """API 提供商类型。""" + + LOLICON = "lolicon" + ATRI = "atri" + SEXNYAN = "sexnyan" + CUSTOM = "custom" + ALL = "all" + + +class MultiApiStrategy(str, Enum): + """多 API 策略。""" + + ROUND_ROBIN = "round_robin" + RANDOM = "random" + FAILOVER = "failover" + + +class AccessControlMode(str, Enum): + """访问控制模式。""" + + NONE = "none" + BLACKLIST = "blacklist" + WHITELIST = "whitelist" diff --git a/src/domain/exceptions.py b/src/domain/exceptions.py new file mode 100644 index 0000000..9fb0962 --- /dev/null +++ b/src/domain/exceptions.py @@ -0,0 +1,47 @@ +"""Domain exceptions for Setu and Fortune bounded contexts.""" + +from __future__ import annotations + + +class SetuException(Exception): + """Base exception for Setu domain errors.""" + + pass + + +class ProviderError(SetuException): + """Raised when image provider fails.""" + + pass + + +class SendError(SetuException): + """Raised when image sending fails.""" + + pass + + +class AccessDeniedError(SetuException): + """Raised when access control denies a request.""" + + def __init__(self, reason: str = "") -> None: + self.reason = reason + super().__init__(f"Access denied: {reason}" if reason else "Access denied") + + +class ValidationError(SetuException): + """Raised when input validation fails.""" + + pass + + +class FortuneException(Exception): + """Base exception for Fortune domain errors.""" + + pass + + +class FortuneNotFoundError(FortuneException): + """Raised when fortune record is not found.""" + + pass diff --git a/src/domain/fortune/__init__.py b/src/domain/fortune/__init__.py new file mode 100644 index 0000000..7a774a7 --- /dev/null +++ b/src/domain/fortune/__init__.py @@ -0,0 +1,22 @@ +"""Fortune domain entities and value objects.""" + +from __future__ import annotations + +from .entities import ( + FortuneConfig, + FortuneGenerationRequest, + FortuneRecord, + FortuneTheme, + FortuneWeights, +) +from .value_objects import FortuneResult, FortuneSeed + +__all__ = [ + "FortuneConfig", + "FortuneGenerationRequest", + "FortuneRecord", + "FortuneTheme", + "FortuneWeights", + "FortuneResult", + "FortuneSeed", +] diff --git a/src/domain/fortune/entities.py b/src/domain/fortune/entities.py new file mode 100644 index 0000000..cf41ae0 --- /dev/null +++ b/src/domain/fortune/entities.py @@ -0,0 +1,333 @@ +"""Fortune domain entities and value objects. + +Extracts domain logic from FortuneCore into proper DDD entities. +""" + +from __future__ import annotations + +from dataclasses import dataclass +from datetime import date + +# Default weights array (corresponding to 0-7 stars) +DEFAULT_WEIGHTS = [0.1, 0.15, 0.2, 0.25, 0.15, 0.12, 0.07, 0.005] + +# Default fortune titles (corresponding to stars 0-7) +DEFAULT_TITLES = ["凶", "末吉", "末小吉", "小吉", "中吉", "吉", "大吉", "超大吉"] + +# Default fortune descriptions (corresponding to stars 0-7) +DEFAULT_MESSAGES = [ + "长夜再暗,火种仍在,转机终会到来。", + "微光不灭,步步向前,黎明就在眼前。", + "心怀希冀,顺流而行,好事悄然靠近。", + "逆境翻篇,机遇迎面,惊喜不期而至。", + "小吉随身,难题化易,幸运与你并肩。", + "吉星高照,所行皆坦,所愿皆如愿。", + "福泽深厚,大吉加身,一路花开有声。", + "七星同耀,奇迹频现,今日万事皆成。", +] + + +@dataclass +class FortuneConfig: + """Fortune feature configuration. + + Attributes: + enabled: Whether fortune feature is enabled + api_type: API type for fortune images + default_tags: Default tags for fortune images + content_mode: Default content mode + allow_user_refresh: Whether users can refresh their own fortune + auto_refresh: Whether to auto-refresh daily + """ + + enabled: bool = True + api_type: str = "inherit" + default_tags: str = "" + content_mode: str = "sfw" + allow_user_refresh: bool = False + auto_refresh: bool = True + + +@dataclass(frozen=True, slots=True) +class FortuneRecord: + """Entity representing a user's fortune record. + + Attributes: + user_id: User identifier + username: User display name + date_str: Date string in ISO format + title: Fortune title (e.g., "大吉") + star_count: Star rating (0-7) + description: Fortune description + extra_message: Extra message (usually empty) + theme_color: Theme color class + image_cached: Whether image is cached + img_url: URL of background image + last_view_date: Last date this fortune was viewed + group_id: Group ID where fortune was generated + """ + + user_id: str + username: str + date_str: str + title: str + star_count: int + description: str + extra_message: str + theme_color: str + image_cached: bool + img_url: str | None + last_view_date: str + group_id: str | None = None + + @property + def max_stars(self) -> int: + """Maximum possible stars.""" + return 7 + + @property + def is_expired(self) -> bool: + """Check if fortune is from a previous day.""" + try: + record_date = date.fromisoformat(self.date_str) + today = date.today() + return record_date < today + except ValueError: + return False + + def with_last_view_date(self, last_view_date: str) -> FortuneRecord: + """Return new record with updated last_view_date. + + Args: + last_view_date: New last view date string + + Returns: + New FortuneRecord with updated last_view_date + """ + return FortuneRecord( + user_id=self.user_id, + username=self.username, + date_str=self.date_str, + title=self.title, + star_count=self.star_count, + description=self.description, + extra_message=self.extra_message, + theme_color=self.theme_color, + image_cached=self.image_cached, + img_url=self.img_url, + last_view_date=last_view_date, + group_id=self.group_id, + ) + + def with_refreshed_data( + self, title: str, star_count: int, description: str, theme_color: str + ) -> FortuneRecord: + """Return new record with refreshed fortune data. + + Args: + title: New title + star_count: New star count + description: New description + theme_color: New theme color + + Returns: + New FortuneRecord with updated data + """ + return FortuneRecord( + user_id=self.user_id, + username=self.username, + date_str=self.date_str, + title=title, + star_count=star_count, + description=description, + extra_message=self.extra_message, + theme_color=theme_color, + image_cached=False, + img_url=None, + last_view_date=self.last_view_date, + group_id=self.group_id, + ) + + @classmethod + def create_new( + cls, + *, + user_id: str, + username: str, + date_str: str, + title: str, + star_count: int, + description: str, + extra_message: str, + theme_color: str, + group_id: str | None = None, + ) -> FortuneRecord: + """Create a new fortune record with defaults for image fields.""" + return cls( + user_id=user_id, + username=username, + date_str=date_str, + title=title, + star_count=star_count, + description=description, + extra_message=extra_message, + theme_color=theme_color, + image_cached=False, + img_url=None, + last_view_date=date_str, + group_id=group_id, + ) + + def with_image_cache(self, img_url: str | None) -> FortuneRecord: + """Return new record with image cache marked as cached. + + Args: + img_url: Image URL + + Returns: + New FortuneRecord with image_cached=True + """ + return FortuneRecord( + user_id=self.user_id, + username=self.username, + date_str=self.date_str, + title=self.title, + star_count=self.star_count, + description=self.description, + extra_message=self.extra_message, + theme_color=self.theme_color, + image_cached=True, + img_url=img_url, + last_view_date=self.last_view_date, + group_id=self.group_id, + ) + + +@dataclass(frozen=True, slots=True) +class FortuneWeights: + """Value object for fortune calculation weights. + + Attributes: + weights: Weight array for each star level (0-7) + """ + + weights: tuple[float, ...] = tuple(DEFAULT_WEIGHTS) + + def calculate_star(self) -> int: + """Calculate fortune star based on weights. + + Returns: + Star rating (0-7) + """ + import random + + total_weight = sum(self.weights) + random_value = random.random() * total_weight + current_weight = 0.0 + + for i, w in enumerate(self.weights): + current_weight += w + if random_value <= current_weight: + return i + return 0 + + @classmethod + def default(cls) -> FortuneWeights: + """Get default weights.""" + return cls() + + +@dataclass(frozen=True, slots=True) +class FortuneTheme: + """Value object for fortune theme configuration. + + Attributes: + titles: Title array for each star level + messages: Message array for each star level + extra_message: Default extra message + """ + + titles: tuple[str, ...] = tuple(DEFAULT_TITLES) + messages: tuple[str, ...] = tuple(DEFAULT_MESSAGES) + extra_message: str = "" + + def get_title(self, star_count: int) -> str: + """Get title for star count. + + Args: + star_count: Star rating + + Returns: + Title string + """ + idx = min(star_count, len(self.titles) - 1) + return self.titles[idx] + + def get_message(self, star_count: int) -> str: + """Get message for star count. + + Args: + star_count: Star rating + + Returns: + Message string + """ + idx = min(star_count, len(self.messages) - 1) + return self.messages[idx] + + def get_theme_color(self, star_count: int) -> str: + """Get theme color class for star count. + + Args: + star_count: Star rating + + Returns: + Theme color class name + """ + if star_count in (7, 6): + return "theme-red" + elif star_count in (5, 4): + return "theme-gold" + elif star_count in (1, 0): + return "theme-gray" + else: + return "theme-blue" + + @classmethod + def default(cls) -> FortuneTheme: + """Get default theme.""" + return cls() + + +@dataclass +class FortuneGenerationRequest: + """Value object representing a fortune generation request. + + Attributes: + user_id: User identifier + username: User display name + date_str: Date string (ISO format) + group_id: Optional group ID + """ + + user_id: str + username: str + date_str: str + group_id: str | None = None + + @classmethod + def for_today( + cls, user_id: str, username: str, group_id: str | None = None + ) -> FortuneGenerationRequest: + """Create request for today's fortune. + + Args: + user_id: User identifier + username: User display name + group_id: Optional group ID + + Returns: + New FortuneGenerationRequest + """ + today_str = date.today().isoformat() + return cls(user_id, username, today_str, group_id) diff --git a/src/domain/fortune/service.py b/src/domain/fortune/service.py new file mode 100644 index 0000000..d79ff9e --- /dev/null +++ b/src/domain/fortune/service.py @@ -0,0 +1,230 @@ +"""Fortune domain service for generating fortunes. + +Extracts business logic from FortuneCore into a pure domain service. +""" + +from __future__ import annotations + +import logging +from datetime import date + +from ...application.ports import FortuneRepository +from .entities import ( + FortuneGenerationRequest, + FortuneRecord, + FortuneTheme, + FortuneWeights, +) + + +class FortuneService: + """Domain service for fortune generation and retrieval. + + Provides pure business logic for fortune operations, + separate from persistence and infrastructure concerns. + """ + + def __init__( + self, + repository: FortuneRepository, + weights: FortuneWeights | None = None, + theme: FortuneTheme | None = None, + ) -> None: + """Initialize fortune service. + + Args: + repository: Fortune repository for persistence + weights: Fortune weights (uses default if None) + theme: Fortune theme (uses default if None) + """ + self._repo = repository + self._weights = weights or FortuneWeights.default() + self._theme = theme or FortuneTheme.default() + + async def get_or_create_fortune( + self, request: FortuneGenerationRequest, force_refresh: bool = False + ) -> FortuneRecord: + """Get or create fortune for user. + + Args: + request: Fortune generation request + force_refresh: If True, generate new fortune even if one exists + + Returns: + FortuneRecord + + Raises: + FortuneException: If fortune generation fails + """ + # Try to get existing fortune + existing = await self._repo.get_today_fortune(request) + if existing and not force_refresh: + updated = existing.with_last_view_date(request.date_str) + await self._repo.save_fortune(updated) + return updated + + # Generate new fortune + star_count = self._weights.calculate_star() + title = self._theme.get_title(star_count) + description = self._theme.get_message(star_count) + theme_color = self._theme.get_theme_color(star_count) + extra_message = self._theme.extra_message + + record = FortuneRecord.create_new( + user_id=request.user_id, + username=request.username, + date_str=request.date_str, + title=title, + star_count=star_count, + description=description, + extra_message=extra_message, + theme_color=theme_color, + group_id=request.group_id, + ) + + await self._repo.save_fortune(record) + return record + + async def refresh_fortune(self, request: FortuneGenerationRequest) -> FortuneRecord: + """Refresh user's fortune (generate new). + + Args: + request: Fortune generation request + + Returns: + New FortuneRecord + """ + # Delete existing fortune first + await self._repo.delete_fortune(request.user_id, request.date_str) + + # Delete cached image + await self._repo.delete_cached_image(request.user_id, request.date_str) + + # Generate new fortune + return await self.get_or_create_fortune(request, force_refresh=True) + + async def refresh_group_fortunes( + self, group_id: str, date_str: str | None = None + ) -> int: + """Refresh all fortunes for a group. + + Args: + group_id: Group identifier + date_str: Date string (uses today if None) + + Returns: + Number of fortunes refreshed + """ + if date_str is None: + date_str = date.today().isoformat() + + count = await self._repo.delete_group_fortunes(group_id, date_str) + + # Note: This deletes records but doesn't regenerate them. + # Regeneration happens when users request their fortune again. + + return count + + async def refresh_all_fortunes(self, date_str: str | None = None) -> int: + """Refresh all fortunes for a given date. + + Args: + date_str: Date string (uses today if None) + + Returns: + Number of fortunes deleted + """ + if date_str is None: + date_str = date.today().isoformat() + + return await self._repo.delete_all_fortunes(date_str) + + async def pregenerate_active_users(self, days: int = 3) -> int: + """Pregenerate fortunes for active users. + + Args: + days: Number of days to look back for activity + + Returns: + Number of fortunes pregenerated + """ + today_str = date.today().isoformat() + active_users = await self._repo.get_active_users(days) + + pregenerated = 0 + for user_id in active_users: + # Check if already has fortune today + request = FortuneGenerationRequest(user_id, "指挥官", today_str) + existing = await self._repo.get_today_fortune(request) + if not existing: + # Generate new fortune + await self.get_or_create_fortune(request) + pregenerated += 1 + + return pregenerated + + async def update_image_cache( + self, record: FortuneRecord, image_data: bytes, img_url: str | None + ) -> FortuneRecord: + """Update image cache for fortune record. + + Args: + record: Fortune record + image_data: Image bytes + img_url: Image URL + + Returns: + Updated FortuneRecord with image_cached=True + """ + await self._repo.save_cached_image( + record.user_id, record.date_str, image_data, img_url + ) + return record.with_image_cache(img_url) + + async def get_cached_image(self, user_id: str, date_str: str) -> bytes | None: + """Get cached image data. + + Args: + user_id: User identifier + date_str: Date string + + Returns: + Image bytes if cache exists, None otherwise + """ + cache_path = await self._repo.get_cached_image_path(user_id, date_str) + if cache_path: + try: + import asyncio + + return await asyncio.to_thread(cache_path.read_bytes) + except OSError as e: + logging.debug("Failed to read cached image: %s", e) + return None + + async def cleanup_cache(self, date_str: str | None = None) -> int: + """Clean up expired cache files. + + Args: + date_str: Date string (uses today if None) + + Returns: + Number of files deleted + """ + if date_str is None: + date_str = date.today().isoformat() + + return await self._repo.cleanup_expired_cache(date_str) + + def format_stars(self, star_count: int, max_count: int = 7) -> str: + """Format star display. + + Args: + star_count: Number of stars + max_count: Maximum stars + + Returns: + Formatted star string (e.g., "★★★★☆☆☆☆") + """ + filled = "★" * star_count + empty = "☆" * (max_count - star_count) + return filled + empty diff --git a/src/domain/fortune/value_objects.py b/src/domain/fortune/value_objects.py new file mode 100644 index 0000000..45ed53c --- /dev/null +++ b/src/domain/fortune/value_objects.py @@ -0,0 +1,41 @@ +"""Fortune domain value objects.""" + +from __future__ import annotations + +from dataclasses import dataclass +from datetime import date + + +@dataclass(frozen=True) +class FortuneSeed: + """Value object identifying a fortune request.""" + + user_id: str + date_str: str + + @classmethod + def for_today(cls, user_id: str) -> FortuneSeed: + """Create seed for today's fortune.""" + return cls(user_id, date.today().isoformat()) + + @property + def cache_key(self) -> str: + """Return cache key for this fortune.""" + return f"{self.user_id}_{self.date_str}" + + +@dataclass(frozen=True) +class FortuneResult: + """Value object containing fortune generation result.""" + + seed: FortuneSeed + title: str + star_count: int + description: str + extra_message: str + theme_color: str + + @property + def max_stars(self) -> int: + """Maximum possible stars.""" + return 7 diff --git a/src/domain/setu/__init__.py b/src/domain/setu/__init__.py new file mode 100644 index 0000000..743acee --- /dev/null +++ b/src/domain/setu/__init__.py @@ -0,0 +1,8 @@ +"""Setu domain rules and value objects.""" + +from __future__ import annotations + +from .tag_resolver import TagResolverService +from .value_objects import SetuRequest + +__all__ = ["SetuRequest", "TagResolverService"] diff --git a/src/domain/setu/tag_resolver.py b/src/domain/setu/tag_resolver.py new file mode 100644 index 0000000..ed49dc1 --- /dev/null +++ b/src/domain/setu/tag_resolver.py @@ -0,0 +1,150 @@ +"""Domain service for tag alias resolution. + +Extracted from SafetyConfigMixin.resolve_tags() to separate domain logic +from infrastructure/config layer. +""" + +from __future__ import annotations + + +class TagResolverService: + """Domain service for resolving tag aliases. + + Provides pure functions for tag normalization and alias lookup. + """ + + DEFAULT_TAG_ALIAS: dict[str, list[str]] = { + "萝莉": ["loli", "roricon"], + "少女": ["girl", "girls"], + "猫耳": ["cat_ears", "nekomimi"], + "狗耳": ["dog_ears", "inumimi"], + "长发": ["long_hair"], + "短发": ["short_hair"], + "双马尾": ["twintails", "twin_tails"], + "丝袜": ["pantyhose", "stockings"], + "白丝": ["white_stockings", "white_pantyhose"], + "黑丝": ["black_stockings", "black_pantyhose"], + "泳装": ["swimsuit", "mizugi"], + "校服": ["school_uniform", "seifuku"], + } + + def __init__(self, alias_map: dict[str, list[str]] | None = None) -> None: + """Initialize tag resolver. + + Args: + alias_map: Custom tag alias mapping (canonical -> [aliases]). + If None, uses DEFAULT_TAG_ALIAS. + """ + self._alias_map = alias_map if alias_map is not None else self.DEFAULT_TAG_ALIAS + + def resolve_tags(self, raw_tags: str) -> list[str]: + """Resolve and normalize tag string to canonical tag names. + + Args: + raw_tags: Comma or space-separated tag string + + Returns: + List of canonical tag names + """ + if not raw_tags: + return [] + + # Normalize separators + normalized = raw_tags.replace(",", ",").replace(" ", ",") + raw_list = [t.strip() for t in normalized.split(",") if t.strip()] + + return [self._resolve_single_tag(tag) for tag in raw_list] + + def _resolve_single_tag(self, tag: str) -> str: + """Resolve a single tag to its canonical name. + + Args: + tag: Tag name (may be alias or canonical) + + Returns: + Canonical tag name, or original tag if not found in alias map + """ + canonical = self._find_canonical_tag(tag) + return canonical if canonical else tag + + def _find_canonical_tag(self, tag: str) -> str | None: + """Find canonical tag name from alias map. + + Args: + tag: Tag name to look up + + Returns: + Canonical tag name, or None if not found + """ + normalized = tag.lower() + + for canonical, aliases in self._alias_map.items(): + if not isinstance(canonical, str): + continue + + if normalized == canonical.lower(): + return canonical + + if isinstance(aliases, list): + for alias in aliases: + if isinstance(alias, str) and normalized == alias.lower(): + return canonical + + return None + + @classmethod + def parse_alias_map_from_string(cls, alias_str: str) -> dict[str, list[str]]: + """Parse alias map from config string format. + + Format: "canonical=alias1,alias2" (one per line, # or ; for comments) + + Args: + alias_str: Raw alias string from config + + Returns: + Parsed alias map + """ + if not alias_str or not isinstance(alias_str, str): + return {} + + result: dict[str, list[str]] = {} + lines = alias_str.strip().replace("\r\n", "\n").split("\n") + + for line in lines: + line = line.strip() + + # Skip comments and empty lines + if not line or line.startswith(("#", ";")): + continue + + if "=" not in line: + continue + + key, value = line.split("=", 1) + key = key.strip() + value = value.strip() + + if not key or not value: + continue + + aliases = [a.strip() for a in value.split(",") if a.strip()] + if aliases: + result[key] = aliases + + return result + + def get_alias_map(self) -> dict[str, list[str]]: + """Get the current alias map. + + Returns: + Copy of the alias map + """ + return dict(self._alias_map) + + def update_alias_map(self, new_map: dict[str, list[str]]) -> None: + """Update the alias map. + + Args: + new_map: New alias map to use + """ + self._alias_map = dict(new_map) if new_map else {} diff --git a/src/domain/setu/value_objects.py b/src/domain/setu/value_objects.py new file mode 100644 index 0000000..638026f --- /dev/null +++ b/src/domain/setu/value_objects.py @@ -0,0 +1,26 @@ +"""Setu domain value objects.""" + +from __future__ import annotations + +from dataclasses import dataclass + + +@dataclass(frozen=True) +class SetuRequest: + """Value object representing a Setu image request.""" + + count: int + tags: tuple[str, ...] + r18: bool + exclude_ai: bool + + @classmethod + def from_user_input( + cls, count: int, tags: list[str], r18: bool, exclude_ai: bool = True + ) -> SetuRequest: + """Create from user input, normalizing tags to tuple.""" + return cls(count, tuple(tags), r18, exclude_ai) + + def with_tags(self, new_tags: list[str]) -> SetuRequest: + """Return a new SetuRequest with different tags.""" + return SetuRequest(self.count, tuple(new_tags), self.r18, self.exclude_ai) diff --git a/src/infrastructure/__init__.py b/src/infrastructure/__init__.py new file mode 100644 index 0000000..5445792 --- /dev/null +++ b/src/infrastructure/__init__.py @@ -0,0 +1,69 @@ +"""Infrastructure layer — external concerns and technical details. + +Contains implementations for: +- Sending strategies (direct, forward, HTML card) +- Persistence (repositories, file I/O) +- External API clients +- Caching +- Permission checking +""" + +from __future__ import annotations + +from ..shared import get_logger +from .permission_service import PermissionService +from .persistence import ( + FileBackedAccessControlRepo, + JsonSessionConfigRepository, + SQLiteFortuneRepo, + clear_fortune_repo, + clear_repo, + clear_session_config_repo, + get_access_control_repo, + get_fortune_repo, + get_session_config_repo, + init_access_control_repo, + init_fortune_repo, + init_session_config_repo, +) +from .providers import ( + clear_provider, + get_provider, + init_provider, + init_provider_from_config, +) +from .sending import ( + DirectSendStrategy, + ForwardSendStrategy, + HtmlCardFallbackStrategy, + ImageSender, + resolve_send_mode, +) + +__all__ = [ + "ImageSender", + "DirectSendStrategy", + "ForwardSendStrategy", + "HtmlCardFallbackStrategy", + "resolve_send_mode", + "FileBackedAccessControlRepo", + "JsonSessionConfigRepository", + "SQLiteFortuneRepo", + "PermissionService", + # Singleton getters + "get_provider", + "init_provider", + "init_provider_from_config", + "clear_provider", + "get_access_control_repo", + "init_access_control_repo", + "clear_repo", + "get_fortune_repo", + "init_fortune_repo", + "clear_fortune_repo", + "get_session_config_repo", + "init_session_config_repo", + "clear_session_config_repo", + # Logger + "get_logger", +] diff --git a/src/infrastructure/astrbot/__init__.py b/src/infrastructure/astrbot/__init__.py new file mode 100644 index 0000000..d309ba0 --- /dev/null +++ b/src/infrastructure/astrbot/__init__.py @@ -0,0 +1,21 @@ +"""AstrBot infrastructure adapters.""" + +from __future__ import annotations + +from .config import ( + clear_config, + get_config, + get_plugin_context, + init_config, + set_config, + set_plugin_context, +) + +__all__ = [ + "clear_config", + "get_config", + "get_plugin_context", + "init_config", + "set_config", + "set_plugin_context", +] diff --git a/src/infrastructure/astrbot/commands/__init__.py b/src/infrastructure/astrbot/commands/__init__.py new file mode 100644 index 0000000..5a77a3e --- /dev/null +++ b/src/infrastructure/astrbot/commands/__init__.py @@ -0,0 +1,43 @@ +"""AstrBot command adapters.""" + +from __future__ import annotations + +from .fortune import ( + FortuneCommandHandler, +) +from .fortune import ( + register_llm_tools as register_fortune_llm_tools, +) +from .fortune import ( + unregister_llm_tools as unregister_fortune_llm_tools, +) +from .session_config import ( + SessionConfigCommandHandler, +) +from .session_config import ( + register_llm_tools as register_session_config_llm_tools, +) +from .session_config import ( + unregister_llm_tools as unregister_session_config_llm_tools, +) +from .setu import ( + SetuCommandHandler, +) +from .setu import ( + register_llm_tools as register_setu_llm_tools, +) +from .setu import ( + unregister_llm_tools as unregister_setu_llm_tools, +) + +__all__ = [ + "FortuneCommandHandler", + "SessionConfigCommandHandler", + "SetuCommandHandler", + "register_fortune_llm_tools", + "register_session_config_llm_tools", + "register_setu_llm_tools", + "unregister_fortune_llm_tools", + "unregister_session_config_llm_tools", + "unregister_setu_llm_tools", +] diff --git a/src/infrastructure/astrbot/commands/fortune.py b/src/infrastructure/astrbot/commands/fortune.py new file mode 100644 index 0000000..81dea93 --- /dev/null +++ b/src/infrastructure/astrbot/commands/fortune.py @@ -0,0 +1,434 @@ +"""Fortune command handler - all Fortune-related commands.""" + +from __future__ import annotations + +from collections.abc import AsyncGenerator +from typing import Any + +from astrbot.api.event import AstrMessageEvent +from astrbot.core.provider.register import llm_tools + +from ....domain.access_control import AccessPolicy +from ....domain.fortune import ( + FortuneGenerationRequest, + FortuneRecord, +) +from ....domain.fortune.service import FortuneService +from ....shared import get_logger +from ... import get_access_control_repo +from ...permission_service import PermissionService +from ...persistence import get_fortune_repo +from ..config import get_config + +logger = get_logger() + +# Regex pattern directly in decorator (not in constants) +FORTUNE_REGEX_PATTERN = r"^(?!/)(今日运势|jrys)$" + + +class FortuneCommandHandler: + """Handles all Fortune-related commands. + + Uses singleton pattern for config, fortune repo, and access control repo. + Commands are auto-registered by AstrBot decorators. + """ + + def __init__(self) -> None: + pass + + # ==================== Command Handlers ==================== + + async def fortune_command( + self, event: AstrMessageEvent + ) -> AsyncGenerator[Any, None]: + """Handle /今日运势 command (/今日运势, /jrys).""" + config = get_config() + if not config: + yield event.result("配置未加载") + return + + has_perm, msg = await self._check_access(event, config) + if not has_perm: + yield event.result(msg) + return + + request = self._build_fortune_request(event) + + try: + repo = get_fortune_repo() + service = FortuneService(repo=repo) + result = await service.get_or_create_fortune(request) + yield event.result(self._format_fortune(result)) + except Exception as e: + yield event.result(f"获取运势失败: {e}") + + async def refresh_fortune_command( + self, event: AstrMessageEvent + ) -> AsyncGenerator[Any, None]: + """Handle /刷新今日运势 command.""" + has_perm, msg = PermissionService.require_admin(event) + if not has_perm: + yield event.result(msg) + return + + config = get_config() + if not config: + yield event.result("配置未加载") + return + + request = self._build_fortune_request(event) + + try: + repo = get_fortune_repo() + service = FortuneService(repo=repo) + result = await service.refresh_fortune(request) + yield event.result(self._format_fortune(result)) + except Exception as e: + yield event.result(f"刷新运势失败: {e}") + + async def refresh_group_fortune_command( + self, event: AstrMessageEvent + ) -> AsyncGenerator[Any, None]: + """Handle /刷新本群今日运势 command.""" + has_perm, msg = PermissionService.require_admin(event) + if not has_perm: + yield event.result(msg) + return + + group_id = event.get_group_id() + if not group_id: + yield event.result("此命令仅支持群聊") + return + + config = get_config() + if not config: + yield event.result("配置未加载") + return + + try: + repo = get_fortune_repo() + service = FortuneService(repo=repo) + refreshed_count = await service.pregenerate_active_users() + yield event.result(f"已刷新本群 {refreshed_count} 位用户的今日运势") + except Exception as e: + yield event.result(f"刷新群运势失败: {e}") + + async def refresh_all_fortune_command( + self, event: AstrMessageEvent + ) -> AsyncGenerator[Any, None]: + """Handle /刷新全局今日运势 command.""" + has_perm, msg = PermissionService.require_super_user(event) + if not has_perm: + yield event.result(msg) + return + + config = get_config() + if not config: + yield event.result("配置未加载") + return + + try: + repo = get_fortune_repo() + service = FortuneService(repo=repo) + refreshed_count = await service.pregenerate_active_users() + yield event.result(f"已刷新全局 {refreshed_count} 位用户的今日运势") + except Exception as e: + yield event.result(f"刷新全局运势失败: {e}") + + async def enable_fortune_group_command( + self, event: AstrMessageEvent, args: str = "" + ) -> AsyncGenerator[Any, None]: + """Handle /开启运势 command (enable Fortune for current group).""" + has_perm, msg = PermissionService.require_admin(event) + if not has_perm: + yield event.result(msg) + return + + group_id = event.get_group_id() + if not group_id: + yield event.result("此命令仅支持群聊") + return + + repo = get_access_control_repo() + await repo.remove_fortune_blocked_group(str(group_id)) + yield event.result("运势功能已开启") + + async def disable_fortune_group_command( + self, event: AstrMessageEvent, args: str = "" + ) -> AsyncGenerator[Any, None]: + """Handle /关闭运势 command (disable Fortune for current group).""" + has_perm, msg = PermissionService.require_admin(event) + if not has_perm: + yield event.result(msg) + return + + group_id = event.get_group_id() + if not group_id: + yield event.result("此命令仅支持群聊") + return + + repo = get_access_control_repo() + await repo.add_fortune_blocked_group(str(group_id)) + yield event.result("运势功能已关闭") + + async def block_fortune_user_command( + self, event: AstrMessageEvent, args: str = "" + ) -> AsyncGenerator[Any, None]: + """Handle /拉黑运势用户 command (add user to Fortune blacklist).""" + has_perm, msg = PermissionService.require_admin(event) + if not has_perm: + yield event.result(msg) + return + + target_id = args.strip() or event.get_sender_id() + if not target_id: + yield event.result("请指定用户ID") + return + + repo = get_access_control_repo() + await repo.add_fortune_blocked_user(str(target_id)) + yield event.result(f"用户 {target_id} 已添加到运势黑名单") + + async def unblock_fortune_user_command( + self, event: AstrMessageEvent, args: str = "" + ) -> AsyncGenerator[Any, None]: + """Handle /解除运势拉黑 command (remove user from Fortune blacklist).""" + has_perm, msg = PermissionService.require_admin(event) + if not has_perm: + yield event.result(msg) + return + + target_id = args.strip() + if not target_id: + yield event.result("请指定用户ID") + return + + repo = get_access_control_repo() + await repo.remove_fortune_blocked_user(str(target_id)) + yield event.result(f"用户 {target_id} 已从运势黑名单移除") + + async def trust_fortune_user_command( + self, event: AstrMessageEvent, args: str = "" + ) -> AsyncGenerator[Any, None]: + """Handle /信任运势用户 command (add user to Fortune whitelist).""" + has_perm, msg = PermissionService.require_admin(event) + if not has_perm: + yield event.result(msg) + return + + target_id = args.strip() or event.get_sender_id() + if not target_id: + yield event.result("请指定用户ID") + return + + repo = get_access_control_repo() + await repo.add_fortune_whitelist_user(str(target_id)) + yield event.result(f"用户 {target_id} 已添加到运势白名单") + + async def untrust_fortune_user_command( + self, event: AstrMessageEvent, args: str = "" + ) -> AsyncGenerator[Any, None]: + """Handle /取消运势信任 command (remove user from Fortune whitelist).""" + has_perm, msg = PermissionService.require_admin(event) + if not has_perm: + yield event.result(msg) + return + + target_id = args.strip() + if not target_id: + yield event.result("请指定用户ID") + return + + repo = get_access_control_repo() + await repo.remove_fortune_whitelist_user(str(target_id)) + yield event.result(f"用户 {target_id} 已从运势白名单移除") + + # ==================== LLM Tool Handlers ==================== + + async def _llm_get_fortune(self, event: AstrMessageEvent) -> str: + """LLM tool handler for getting today's fortune.""" + config = get_config() + if not config: + return "配置未加载" + + has_perm, msg = await self._check_access(event, config) + if not has_perm: + return msg + + request = self._build_fortune_request(event) + + try: + repo = get_fortune_repo() + service = FortuneService(repo=repo) + result = await service.get_or_create_fortune(request) + return f"今日运势: {result.title}, 星级: {result.star_count}/{result.max_stars}" + except Exception as e: + return f"获取运势失败: {e}" + + async def _llm_refresh_fortune(self, event: AstrMessageEvent) -> str: + """LLM tool handler for refreshing today's fortune.""" + has_perm, msg = PermissionService.require_admin(event) + if not has_perm: + return msg + + config = get_config() + if not config: + return "配置未加载" + + request = self._build_fortune_request(event) + + try: + repo = get_fortune_repo() + service = FortuneService(repo=repo) + result = await service.refresh_fortune(request) + return f"今日运势已刷新: {result.title}" + except Exception as e: + return f"刷新运势失败: {e}" + + async def _llm_refresh_group_fortune(self, event: AstrMessageEvent) -> str: + """LLM tool handler for refreshing group fortunes.""" + has_perm, msg = PermissionService.require_admin(event) + if not has_perm: + return msg + + group_id = event.get_group_id() + if not group_id: + return "此命令仅支持群聊" + + config = get_config() + if not config: + return "配置未加载" + + try: + repo = get_fortune_repo() + service = FortuneService(repo=repo) + refreshed_count = await service.pregenerate_active_users() + return f"已刷新本群 {refreshed_count} 位用户的今日运势" + except Exception as e: + return f"刷新群运势失败: {e}" + + async def _llm_refresh_all_fortune(self, event: AstrMessageEvent) -> str: + """LLM tool handler for refreshing all fortunes.""" + has_perm, msg = PermissionService.require_super_user(event) + if not has_perm: + return msg + + config = get_config() + if not config: + return "配置未加载" + + try: + repo = get_fortune_repo() + service = FortuneService(repo=repo) + refreshed_count = await service.pregenerate_active_users() + return f"已刷新全局 {refreshed_count} 位用户的今日运势" + except Exception as e: + return f"刷新全局运势失败: {e}" + + # ==================== Helper Methods ==================== + + async def _check_access(self, event: AstrMessageEvent, config) -> tuple[bool, str]: + """Check if user/group has access to Fortune feature.""" + from ....domain.access_control.service import AccessControlService + + user_id = event.get_sender_id() + group_id = event.get_group_id() + + policy = AccessPolicy.for_session( + user_id=user_id, + group_id=group_id, + user_mode=config.fortune_user_access_control_mode if config else "none", + group_mode=config.fortune_group_access_control_mode if config else "none", + ) + + repo = get_access_control_repo() + service = AccessControlService(repo) + return await service.check_fortune_access(policy) + + def _build_fortune_request( + self, event: AstrMessageEvent + ) -> FortuneGenerationRequest: + """Build a framework-free fortune generation request from an AstrBot event.""" + user_id = str(event.get_sender_id()) + username = user_id + message_obj = getattr(event, "message_obj", None) + sender = getattr(message_obj, "sender", None) + for attr in ("nickname", "name", "user_name"): + value = getattr(sender, attr, None) + if value: + username = str(value) + break + group_id = event.get_group_id() + return FortuneGenerationRequest.for_today( + user_id=user_id, + username=username, + group_id=str(group_id) if group_id else None, + ) + + def _format_fortune(self, result: FortuneRecord) -> str: + """Format fortune result for message sending.""" + return ( + f"🔮 {result.date_str} 运势\n" + f"📊 {result.title}\n" + f"⭐ {'★' * result.star_count}{'☆' * (result.max_stars - result.star_count)}\n" + f"💬 {result.description}" + ) + + +# ==================== LLM Tools Registration ==================== + + +def register_llm_tools() -> None: + """Register Fortune LLM tools.""" + _handler = FortuneCommandHandler() + tools = [ + ( + "get_today_fortune", + _handler._llm_get_fortune, + [], + "Get today's fortune for the user.", + ), + ( + "refresh_my_fortune", + _handler._llm_refresh_fortune, + [], + "Refresh my today's fortune (admin only).", + ), + ( + "refresh_group_fortune", + _handler._llm_refresh_group_fortune, + [], + "Refresh today's fortune for the current group (admin only).", + ), + ( + "refresh_all_fortune", + _handler._llm_refresh_all_fortune, + [], + "Refresh today's fortune for all users (super admin only).", + ), + ] + + for name, handler, args, desc in tools: + try: + llm_tools.add_func(name=name, func_args=args, desc=desc, handler=handler) + tool = llm_tools.get_func(name) + if tool: + tool.handler_module_path = __name__ + except (AttributeError, RuntimeError): + pass + + +def unregister_llm_tools() -> None: + """Unregister Fortune LLM tools.""" + tool_names = [ + "get_today_fortune", + "refresh_my_fortune", + "refresh_group_fortune", + "refresh_all_fortune", + ] + + for name in tool_names: + try: + llm_tools.remove_func(name) + except (AttributeError, RuntimeError): + pass diff --git a/src/infrastructure/astrbot/commands/session_config.py b/src/infrastructure/astrbot/commands/session_config.py new file mode 100644 index 0000000..9d0434a --- /dev/null +++ b/src/infrastructure/astrbot/commands/session_config.py @@ -0,0 +1,395 @@ +"""Unified session configuration command and LLM tools.""" + +from __future__ import annotations + +import json +from collections.abc import AsyncGenerator +from typing import Any + +from astrbot.api.event import AstrMessageEvent +from astrbot.core.provider.register import llm_tools + +from ....application.session_config import ( + SESSION_CONFIG_KEYS, + SessionConfigService, + SessionConfigSnapshot, + get_key_definition, +) +from ....application.session_config.keys import SessionConfigValidationError +from ...permission_service import PermissionService +from ...persistence import get_session_config_repo +from ..session_identity import get_event_session_identity + +LEGACY_CONFIG_TOOL_NAMES = ( + "get_setu_content_mode", + "set_setu_content_mode", + "set_setu_r18_docx_mode", + "set_setu_auto_revoke", + "set_setu_send_mode", + "get_fortune_config", + "set_fortune_config", +) + + +class SessionConfigCommandHandler: + """Handles unified per-session configuration operations.""" + + async def session_config_command( + self, event: AstrMessageEvent, args: str = "" + ) -> AsyncGenerator[Any, None]: + """Handle `/session_config`.""" + args = (args or "").strip() + if not args: + async for result in self._handle_get(event, []): + yield result + return + + action = args.split(maxsplit=1)[0].lower() + if action in ("get", "show", "status"): + tail = args.split(maxsplit=1)[1] if " " in args else "" + async for result in self._handle_get(event, tail.split()): + yield result + return + if action == "set": + async for result in self._handle_set(event, args): + yield result + return + if action == "clear": + async for result in self._handle_clear(event, args): + yield result + return + + yield event.plain_result(self._usage(f"未知子命令:{action}")) + + async def _handle_get( + self, event: AstrMessageEvent, tokens: list[str] + ) -> AsyncGenerator[Any, None]: + try: + key, as_json = _parse_get_tokens(tokens) + snapshot = await _current_snapshot(event) + if as_json: + yield event.plain_result(_json(_snapshot_payload(snapshot, key))) + elif key: + yield event.plain_result(_format_one(snapshot, key)) + else: + yield event.plain_result(_format_all(snapshot)) + except (RuntimeError, ValueError, SessionConfigValidationError) as exc: + yield event.plain_result(str(exc)) + + async def _handle_set( + self, event: AstrMessageEvent, args: str + ) -> AsyncGenerator[Any, None]: + has_perm, msg = PermissionService.require_admin(event) + if not has_perm: + yield event.plain_result(msg) + return + + parts = args.split(maxsplit=2) + if len(parts) < 3: + yield event.plain_result( + self._usage("用法:/session_config set ") + ) + return + + key = parts[1].strip() + value = _strip_quotes(parts[2]) + try: + service = SessionConfigService(get_session_config_repo()) + identity = get_event_session_identity(event) + snapshot = await service.set_value( + identity.session_id, + identity.session_type, + key, + value, + identity.display_name, + ) + definition = get_key_definition(key) + effective = snapshot.effective[key] + yield event.plain_result( + f"已设置 {definition.label}({key})为:{_format_value(effective)}" + ) + except (RuntimeError, ValueError, SessionConfigValidationError) as exc: + yield event.plain_result(str(exc)) + + async def _handle_clear( + self, event: AstrMessageEvent, args: str + ) -> AsyncGenerator[Any, None]: + has_perm, msg = PermissionService.require_admin(event) + if not has_perm: + yield event.plain_result(msg) + return + + parts = args.split(maxsplit=1) + key = parts[1].strip() if len(parts) > 1 else None + try: + service = SessionConfigService(get_session_config_repo()) + identity = get_event_session_identity(event) + await service.clear( + identity.session_id, + identity.session_type, + key, + identity.display_name, + ) + if key: + definition = get_key_definition(key) + yield event.plain_result( + f"已清除 {definition.label}({key})的会话覆盖" + ) + else: + yield event.plain_result("已清除当前会话的全部配置覆盖") + except (RuntimeError, ValueError, SessionConfigValidationError) as exc: + yield event.plain_result(str(exc)) + + async def _llm_get_session_config( + self, event: AstrMessageEvent, key: str = "" + ) -> str: + """LLM tool handler for reading current session config.""" + try: + key = key.strip() + if key: + get_key_definition(key) + snapshot = await _current_snapshot(event) + return _json({"ok": True, "data": _snapshot_payload(snapshot, key or None)}) + except Exception as exc: + return _json({"ok": False, "message": str(exc)}) + + async def _llm_set_session_config( + self, event: AstrMessageEvent, key: str, value: str + ) -> str: + """LLM tool handler for setting current session config.""" + has_perm, msg = PermissionService.require_admin(event) + if not has_perm: + return _json({"ok": False, "message": msg}) + try: + normalized_key = key.strip() + service = SessionConfigService(get_session_config_repo()) + identity = get_event_session_identity(event) + snapshot = await service.set_value( + identity.session_id, + identity.session_type, + normalized_key, + value, + identity.display_name, + ) + return _json( + { + "ok": True, + "message": "updated", + "key": normalized_key, + "value": snapshot.overrides[normalized_key], + "effective": snapshot.effective[normalized_key], + } + ) + except Exception as exc: + return _json({"ok": False, "message": str(exc)}) + + async def _llm_clear_session_config( + self, event: AstrMessageEvent, key: str = "" + ) -> str: + """LLM tool handler for clearing current session config.""" + has_perm, msg = PermissionService.require_admin(event) + if not has_perm: + return _json({"ok": False, "message": msg}) + try: + service = SessionConfigService(get_session_config_repo()) + identity = get_event_session_identity(event) + normalized_key = key.strip() or None + snapshot = await service.clear( + identity.session_id, + identity.session_type, + normalized_key, + identity.display_name, + ) + return _json( + { + "ok": True, + "message": "cleared", + "key": normalized_key, + "data": snapshot.to_dict(), + } + ) + except Exception as exc: + return _json({"ok": False, "message": str(exc)}) + + def _usage(self, prefix: str = "") -> str: + lines = [ + prefix, + "用法:", + "/session_config get [key] [json]", + "/session_config set ", + "/session_config clear [key]", + "可用 key:", + *[ + f"- {key}: {definition.label}" + for key, definition in SESSION_CONFIG_KEYS.items() + ], + ] + return "\n".join(line for line in lines if line) + + +async def _current_snapshot(event: AstrMessageEvent) -> SessionConfigSnapshot: + service = SessionConfigService(get_session_config_repo()) + identity = get_event_session_identity(event) + return await service.get_snapshot( + identity.session_id, + identity.session_type, + identity.display_name, + ) + + +def _parse_get_tokens(tokens: list[str]) -> tuple[str | None, bool]: + as_json = False + cleaned: list[str] = [] + for token in tokens: + if token.lower() == "json": + as_json = True + else: + cleaned.append(token) + if len(cleaned) > 1: + raise ValueError("用法:/session_config get [key] [json]") + key = cleaned[0] if cleaned else None + if key: + get_key_definition(key) + return key, as_json + + +def _snapshot_payload( + snapshot: SessionConfigSnapshot, key: str | None +) -> dict[str, Any]: + if not key: + return snapshot.to_dict() + definition = get_key_definition(key) + return { + "session_id": snapshot.session_id, + "session_type": snapshot.session_type, + "display_name": snapshot.display_name, + "key": key, + "label": definition.label, + "override": snapshot.overrides.get(key), + "global": snapshot.global_values[key], + "effective": snapshot.effective[key], + } + + +def _format_all(snapshot: SessionConfigSnapshot) -> str: + lines = [ + "当前会话配置", + f"会话:{snapshot.display_name or snapshot.session_id} ({snapshot.session_type})", + f"ID:{snapshot.session_id}", + "", + ] + for key, definition in SESSION_CONFIG_KEYS.items(): + lines.append(f"{definition.label} ({key})") + lines.append(f" 会话覆盖:{_format_override(snapshot.overrides, key)}") + lines.append(f" 全局配置:{_format_value(snapshot.global_values[key])}") + lines.append(f" 生效值:{_format_value(snapshot.effective[key])}") + return "\n".join(lines) + + +def _format_one(snapshot: SessionConfigSnapshot, key: str) -> str: + definition = get_key_definition(key) + return "\n".join( + [ + f"{definition.label} ({key})", + f"会话覆盖:{_format_override(snapshot.overrides, key)}", + f"全局配置:{_format_value(snapshot.global_values[key])}", + f"生效值:{_format_value(snapshot.effective[key])}", + ] + ) + + +def _format_override(overrides: dict[str, Any], key: str) -> str: + if key not in overrides: + return "未设置" + return _format_value(overrides[key]) + + +def _format_value(value: Any) -> str: + if isinstance(value, bool): + return "启用" if value else "禁用" + if value == "": + return "空" + return str(value) + + +def _strip_quotes(value: str) -> str: + value = value.strip() + if len(value) >= 2 and value[0] == value[-1] and value[0] in ("'", '"'): + return value[1:-1] + return value + + +def _json(payload: dict[str, Any]) -> str: + return json.dumps(payload, ensure_ascii=False) + + +def register_llm_tools() -> None: + """Register unified session configuration LLM tools.""" + _remove_tools(LEGACY_CONFIG_TOOL_NAMES) + handler = SessionConfigCommandHandler() + tools = [ + ( + "get_session_config", + handler._llm_get_session_config, + [ + { + "name": "key", + "type": "string", + "description": "Optional config key, e.g. setu.content_mode.", + } + ], + "Get current session config as JSON.", + ), + ( + "set_session_config", + handler._llm_set_session_config, + [ + {"name": "key", "type": "string", "description": "Config key."}, + {"name": "value", "type": "string", "description": "Config value."}, + ], + "Set one current-session config override as JSON result.", + ), + ( + "clear_session_config", + handler._llm_clear_session_config, + [ + { + "name": "key", + "type": "string", + "description": "Optional config key. Empty clears all overrides.", + } + ], + "Clear current-session config override(s) as JSON result.", + ), + ] + + for name, handler_func, args, desc in tools: + try: + llm_tools.add_func( + name=name, func_args=args, desc=desc, handler=handler_func + ) + tool = llm_tools.get_func(name) + if tool: + tool.handler_module_path = __name__ + except (AttributeError, RuntimeError): + pass + + +def unregister_llm_tools() -> None: + """Unregister unified session configuration LLM tools.""" + _remove_tools( + ( + "get_session_config", + "set_session_config", + "clear_session_config", + *LEGACY_CONFIG_TOOL_NAMES, + ) + ) + + +def _remove_tools(names: tuple[str, ...]) -> None: + for name in names: + try: + llm_tools.remove_func(name) + except (AttributeError, RuntimeError): + pass diff --git a/src/infrastructure/astrbot/commands/setu.py b/src/infrastructure/astrbot/commands/setu.py new file mode 100644 index 0000000..50e63c9 --- /dev/null +++ b/src/infrastructure/astrbot/commands/setu.py @@ -0,0 +1,403 @@ +"""Setu command handler - all Setu-related commands.""" + +from __future__ import annotations + +import asyncio +import random +import re +import time +from collections.abc import AsyncGenerator +from typing import Any + +from astrbot.api.event import AstrMessageEvent +from astrbot.core.provider.register import llm_tools + +from ....application.session_config import SessionConfigService +from ....application.setu.get_images import GetSetuImagesUseCase +from ....domain.access_control import AccessPolicy +from ....domain.access_control.service import AccessControlService +from ....domain.setu import SetuRequest +from ....shared import get_logger +from ... import get_access_control_repo, get_provider +from ...persistence import get_session_config_repo +from ..config import get_config +from ..session_identity import get_event_session_identity +from ...providers import init_provider_from_config + +logger = get_logger() + +# Regex pattern directly in decorator (not in constants) +SETU_REGEX_PATTERN = r"^/?(来\s*(.*?)(份|个|张|点))(.*?)(?:福利|色|瑟|涩|塞)?图$" + + +class RateLimiter: + """Simple rate limiter to prevent concurrent requests from same user.""" + + MAX_LOCKS = 1000 + LOCK_TTL = 120 # Auto-release locks after 120s + + def __init__(self) -> None: + self._locks: dict[str, asyncio.Lock] = {} + self._lock_times: dict[str, float] = {} + + async def acquire(self, event: AstrMessageEvent) -> bool: + """Acquire lock for event. Returns True if acquired, False if already processing.""" + key = f"user:{event.get_sender_id()}" + lock = self._locks.setdefault(key, asyncio.Lock()) + + # Auto-release stale locks (safety net for leaked locks) + if lock.locked(): + acquire_time = self._lock_times.get(key, 0) + if time.monotonic() - acquire_time > self.LOCK_TTL: + try: + lock.release() + except RuntimeError: + pass + + if lock.locked(): + return False + await lock.acquire() + self._lock_times[key] = time.monotonic() + return True + + async def release(self, event: AstrMessageEvent) -> None: + """Release lock for event and evict stale entries.""" + key = f"user:{event.get_sender_id()}" + if key in self._locks: + self._locks[key].release() + self._lock_times.pop(key, None) + if len(self._locks) > self.MAX_LOCKS: + stale = [k for k, v in self._locks.items() if not v.locked()] + for k in stale[: len(stale) // 2]: + del self._locks[k] + self._lock_times.pop(k, None) + + +# Module-level rate limiter singleton +_rate_limiter = RateLimiter() + + +class SetuCommandHandler: + """Handles all Setu-related commands. + + Uses singleton pattern for config, provider, and access control repo. + Commands are auto-registered by AstrBot decorators. + """ + + # ==================== Command Handlers ==================== + + async def get_random_picture( + self, event: AstrMessageEvent + ) -> AsyncGenerator[Any, None]: + """Handle natural language setu requests (regex trigger).""" + if not await _rate_limiter.acquire(event): + yield event.plain_result("你有一个请求正在处理中,请稍后再试~") + return + + try: + async for result in self._handle_random_picture_internal(event): + yield result + finally: + await _rate_limiter.release(event) + + async def _handle_random_picture_internal( + self, event: AstrMessageEvent + ) -> AsyncGenerator[Any, None]: + """Internal handler for regex-triggered setu requests.""" + config = get_config() + if not config: + yield event.plain_result("配置未加载") + return + + match = re.match(SETU_REGEX_PATTERN, event.message_str.strip()) + if not match: + return + + has_perm, msg = await self._check_access(event, config) + if not has_perm: + yield event.plain_result(msg) + return + + num_str = match.group(2) + num = self._parse_count(num_str) + max_count = config.max_count or 10 + + if num < 1 or num > max_count: + if num == -1: + yield event.plain_result( + f"数量解析失败,图片数量必须在1-{max_count}之间" + ) + elif num > max_count: + yield event.plain_result(f"一次最多只能获取{max_count}张哦~") + else: + yield event.plain_result(f"图片数量必须在1-{max_count}之间哦~") + return + + tag_str = match.group(4).strip() + tags = tag_str.replace(",", " ").split() if tag_str else [] + + effective_mode = await self._get_effective_content_mode(event) + is_r18 = self._mode_requires_r18(effective_mode) + + try: + async for result in self._fetch_and_send_images( + event, num, tags, is_r18, config + ): + yield result + except asyncio.TimeoutError: + logger.warning("get_random_picture timeout (>60s)") + yield event.plain_result("获取图片超时,网络可能不稳定,请稍后再试。") + except Exception: + logger.exception("get_random_picture failed") + yield event.plain_result("获取图片失败,请稍后再试") + + async def setu_command( + self, event: AstrMessageEvent, count: str = "1", *, tags: str = "" + ) -> AsyncGenerator[Any, None]: + """Handle /setu command. + + Usage: /setu [count] [tags...] + Example: /setu 3 girl cute + """ + if not await _rate_limiter.acquire(event): + yield event.plain_result("你有一个请求正在处理中,请稍后再试~") + return + + try: + async for result in self._handle_setu_command_internal(event, count, tags): + yield result + finally: + await _rate_limiter.release(event) + + async def _handle_setu_command_internal( + self, event: AstrMessageEvent, count: str, tags: str + ) -> AsyncGenerator[Any, None]: + """Internal handler for /setu command.""" + config = get_config() + if not config: + yield event.plain_result("配置未加载") + return + + has_perm, msg = await self._check_access(event, config) + if not has_perm: + yield event.plain_result(msg) + return + + max_count = config.max_count or 10 + num = self._parse_count(count) + extra_tag = "" + + if num == -1: + num = 1 + extra_tag = count + + all_tags = tags + if extra_tag: + all_tags = f"{extra_tag} {all_tags}".strip() + + if num > max_count: + yield event.plain_result(f"一次最多只能获取{max_count}张哦~") + return + + parsed_tags = [t.strip() for t in all_tags.split() if t.strip()] + + effective_mode = await self._get_effective_content_mode(event) + is_r18 = self._mode_requires_r18(effective_mode) + + try: + async for result in self._fetch_and_send_images( + event, num, parsed_tags, is_r18, config + ): + yield result + except asyncio.TimeoutError: + logger.warning("setu command timeout (>60s)") + yield event.plain_result("获取图片超时,网络可能不稳定,请稍后再试。") + except Exception: + logger.exception("setu command failed") + yield event.plain_result("获取图片失败,网络或服务异常,请稍后再试。") + + # ==================== LLM Tool Handlers ==================== + + async def _llm_get_setu_handler( + self, event: AstrMessageEvent, count: int = 1, tags: list[str] | None = None + ) -> str: + """LLM tool handler for getting Setu images.""" + config = get_config() + if not config: + return "配置未加载" + + has_perm, msg = await self._check_access(event, config) + if not has_perm: + return msg + + try: + init_provider_from_config(config) + provider = get_provider() + effective_mode = await self._get_effective_content_mode(event) + request = SetuRequest.from_user_input( + count=count, + tags=tags or [], + r18=self._mode_requires_r18(effective_mode), + exclude_ai=config.exclude_ai, + ) + payload = await provider.fetch_and_download(request) + from ...sending import ImageSender + + sender = ImageSender(config, logger) + async for _ in sender.send_images(payload, event): + pass + return f"Successfully fetched {payload.count} images" + except Exception: + return "获取图片失败,请稍后再试" + + # ==================== Helper Methods ==================== + + async def _check_access(self, event: AstrMessageEvent, config) -> tuple[bool, str]: + """Check if user/group has access to Setu feature.""" + repo = get_access_control_repo() + user_id = event.get_sender_id() + group_id = event.get_group_id() + policy = AccessPolicy.for_session( + user_id=user_id, + group_id=group_id, + user_mode=config.setu_user_access_control_mode, + group_mode=config.setu_group_access_control_mode, + ) + return await AccessControlService(repo).check_setu_access(policy) + + async def _fetch_and_send_images( + self, event: AstrMessageEvent, num: int, tags: list[str], is_r18: bool, config + ) -> AsyncGenerator[Any, None]: + """Fetch images and send to user.""" + init_provider_from_config(config) + provider = get_provider() + use_case = GetSetuImagesUseCase(provider) + + try: + result = await use_case.execute(num, tags, is_r18) + except asyncio.TimeoutError: + logger.warning("image fetch timeout (>60s)") + yield event.plain_result("获取图片超时,网络可能不稳定,请稍后再试。") + return + + if result.notice: + yield event.plain_result(result.notice) + return + + payload = result.payload + if payload is None: + yield event.plain_result("未找到符合要求的图片~") + return + + from ...sending import ImageSender + + sender = ImageSender(config, logger) + async for send_result in sender.send_images(payload, event): + yield send_result + + async def _get_effective_content_mode(self, event: AstrMessageEvent) -> str: + """Get effective content mode for session.""" + config = get_config() + global_mode = (config.content_mode if config else None) or "sfw" + try: + identity = get_event_session_identity(event) + service = SessionConfigService(get_session_config_repo()) + value = await service.get_effective_value( + identity.session_id, + "setu.content_mode", + identity.session_type, + identity.display_name, + ) + return str(value) + except Exception as exc: + logger.debug("Failed to read session content mode: %s", exc) + return global_mode + + @staticmethod + def _mode_requires_r18(mode: str) -> bool: + """Resolve content mode to the provider R18 flag.""" + if mode == "r18": + return True + if mode == "mix": + return random.random() > 0.5 + return False + + def _parse_count(self, count_str: str) -> int: + """Parse count from string, handling Chinese numbers.""" + if not count_str: + return 1 + + try: + return int(count_str) + except ValueError: + pass + + chinese_nums = { + "一": 1, + "二": 2, + "三": 3, + "四": 4, + "五": 5, + "六": 6, + "七": 7, + "八": 8, + "九": 9, + "十": 10, + } + if count_str in chinese_nums: + return chinese_nums[count_str] + + if count_str.startswith("十"): + if len(count_str) == 1: + return 10 + try: + return 10 + int(count_str[1]) + except ValueError: + return 10 + + return -1 + + +# ==================== LLM Tools Registration ==================== + + +def register_llm_tools() -> None: + """Register Setu LLM tools.""" + _handler = SetuCommandHandler() + tools = [ + ( + "get_setu_image", + _handler._llm_get_setu_handler, + [ + { + "name": "count", + "type": "integer", + "description": "Number of images.", + }, + {"name": "tags", "type": "array", "items": {"type": "string"}}, + ], + "Fetch random anime images.", + ), + ] + + for name, handler, args, desc in tools: + try: + llm_tools.add_func(name=name, func_args=args, desc=desc, handler=handler) + tool = llm_tools.get_func(name) + if tool: + tool.handler_module_path = __name__ + except (AttributeError, RuntimeError): + pass + + +def unregister_llm_tools() -> None: + """Unregister Setu LLM tools.""" + tool_names = [ + "get_setu_image", + ] + + for name in tool_names: + try: + llm_tools.remove_func(name) + except (AttributeError, RuntimeError): + pass diff --git a/src/infrastructure/astrbot/config.py b/src/infrastructure/astrbot/config.py new file mode 100644 index 0000000..17d7d21 --- /dev/null +++ b/src/infrastructure/astrbot/config.py @@ -0,0 +1,55 @@ +"""Configuration singleton manager. + +Provides module-level singleton access to the plugin configuration, +following the rsshub plugin pattern. +""" + +from __future__ import annotations + +from ...application.settings import clear_application_config, set_application_config +from ...shared.config import SetuPluginConfig + +_config: SetuPluginConfig | None = None +_plugin_context: object | None = None + + +def get_config() -> SetuPluginConfig | None: + """Get the plugin configuration singleton. + + Returns: + The current SetuPluginConfig instance or None if not initialized. + """ + return _config + + +def set_config(config: SetuPluginConfig) -> None: + """Set the plugin configuration singleton.""" + global _config + _config = config + + +def get_plugin_context() -> object | None: + """Get the AstrBot plugin context singleton.""" + return _plugin_context + + +def set_plugin_context(context: object) -> None: + """Set the AstrBot plugin context singleton.""" + global _plugin_context + _plugin_context = context + + +def init_config(config_dict: dict) -> SetuPluginConfig: + """Initialize config from dict. Called once at plugin init.""" + global _config + _config = SetuPluginConfig(**config_dict) + set_application_config(_config) + return _config + + +def clear_config() -> None: + """Clear config singleton (for testing).""" + global _config, _plugin_context + _config = None + _plugin_context = None + clear_application_config() diff --git a/src/infrastructure/astrbot/session_config_api.py b/src/infrastructure/astrbot/session_config_api.py new file mode 100644 index 0000000..580feb1 --- /dev/null +++ b/src/infrastructure/astrbot/session_config_api.py @@ -0,0 +1,115 @@ +"""WebUI API handlers for session configuration management.""" + +from __future__ import annotations + +from typing import Any + +from quart import jsonify, request + +from ...application.session_config import ( + SESSION_CONFIG_KEYS, + SessionConfigService, + get_global_session_config_values, +) +from ..persistence import get_session_config_repo +from .config import get_config + +PLUGIN_NAME = "astrbot_plugin_setu" + + +class SessionConfigApi: + """Quart handlers registered through AstrBot's plugin Web API bridge.""" + + async def list_sessions(self): + """Return session config schema, globals, and all records.""" + try: + service = SessionConfigService(get_session_config_repo()) + snapshots = await service.list_snapshots() + return jsonify( + { + "success": True, + "keys": [item.to_dict() for item in SESSION_CONFIG_KEYS.values()], + "global": get_global_session_config_values(), + "sessions": [snapshot.to_dict() for snapshot in snapshots], + "config_loaded": get_config() is not None, + } + ) + except Exception as exc: + return jsonify({"success": False, "error": str(exc)}), 500 + + async def upsert_session(self): + """Create or replace one session record.""" + try: + payload = await request.get_json() + payload = payload or {} + service = SessionConfigService(get_session_config_repo()) + snapshot = await service.upsert_session( + session_id=str(payload.get("session_id", "")), + session_type=str(payload.get("session_type", "private")), + display_name=str(payload.get("display_name", "")), + overrides=_dict(payload.get("overrides")), + ) + return jsonify({"success": True, "data": snapshot.to_dict()}) + except Exception as exc: + return jsonify({"success": False, "error": str(exc)}), 400 + + async def delete_session(self): + """Delete a session record.""" + try: + payload = await request.get_json() + payload = payload or {} + service = SessionConfigService(get_session_config_repo()) + deleted = await service.delete_session(str(payload.get("session_id", ""))) + return jsonify({"success": True, "deleted": deleted}) + except Exception as exc: + return jsonify({"success": False, "error": str(exc)}), 400 + + async def clear_session(self): + """Clear all overrides or one key for a session while keeping the record.""" + try: + payload = await request.get_json() + payload = payload or {} + service = SessionConfigService(get_session_config_repo()) + key = str(payload.get("key", "")).strip() or None + snapshot = await service.clear( + session_id=str(payload.get("session_id", "")), + session_type=str(payload.get("session_type", "private")), + key=key, + display_name=str(payload.get("display_name", "")), + ) + return jsonify({"success": True, "data": snapshot.to_dict()}) + except Exception as exc: + return jsonify({"success": False, "error": str(exc)}), 400 + + +def register_session_config_web_apis(context: Any) -> None: + """Register WebUI APIs for the sessionConfig page.""" + api = SessionConfigApi() + context.register_web_api( + f"/{PLUGIN_NAME}/session-config", + api.list_sessions, + ["GET"], + "List session config records", + ) + context.register_web_api( + f"/{PLUGIN_NAME}/session-config/upsert", + api.upsert_session, + ["POST"], + "Create or update session config", + ) + context.register_web_api( + f"/{PLUGIN_NAME}/session-config/delete", + api.delete_session, + ["POST"], + "Delete session config", + ) + context.register_web_api( + f"/{PLUGIN_NAME}/session-config/clear", + api.clear_session, + ["POST"], + "Clear session config overrides", + ) + + +def _dict(value: Any) -> dict[str, Any]: + return value if isinstance(value, dict) else {} diff --git a/src/infrastructure/astrbot/session_identity.py b/src/infrastructure/astrbot/session_identity.py new file mode 100644 index 0000000..ece64b5 --- /dev/null +++ b/src/infrastructure/astrbot/session_identity.py @@ -0,0 +1,41 @@ +"""Helpers for mapping AstrBot events to session config identities.""" + +from __future__ import annotations + +from dataclasses import dataclass +from typing import Any + + +@dataclass(frozen=True, slots=True) +class SessionIdentity: + """Normalized AstrBot session identity.""" + + session_id: str + session_type: str + display_name: str + + +def get_event_session_identity(event: Any) -> SessionIdentity: + """Return the session identity used by per-session config.""" + session_id = _call_or_attr(event, "unified_msg_origin") + if not session_id: + session_id = _call_or_attr(event, "get_session_id") + if not session_id: + raise ValueError("无法获取当前会话 ID") + + group_id = _call_or_attr(event, "get_group_id") + sender_id = _call_or_attr(event, "get_sender_id") + session_type = "group" if group_id else "private" + display_name = str(group_id or sender_id or session_id) + return SessionIdentity( + session_id=str(session_id), + session_type=session_type, + display_name=display_name, + ) + + +def _call_or_attr(obj: Any, name: str) -> Any: + value = getattr(obj, name, None) + if callable(value): + return value() + return value diff --git a/src/infrastructure/permission_service.py b/src/infrastructure/permission_service.py new file mode 100644 index 0000000..ca0dc71 --- /dev/null +++ b/src/infrastructure/permission_service.py @@ -0,0 +1,112 @@ +"""Permission service for checking user roles. + +Centralizes admin/super-user checks that were duplicated across +CommandHandler, LlmHandlers, and Fortune handlers. +""" + +from __future__ import annotations + +from typing import TYPE_CHECKING + +from ..shared import get_logger + +if TYPE_CHECKING: + from astrbot.api.event import AstrMessageEvent + +logger = get_logger() + + +class PermissionService: + """Service for checking user permissions. + + Provides a single place for admin/super-user checks, + eliminating duplication across handlers. + """ + + @staticmethod + def is_admin(event: AstrMessageEvent) -> bool: + """Check if user is admin or super user. + + Args: + event: Message event + + Returns: + True if user is admin or super user + """ + try: + # Check is_admin method + if hasattr(event, "is_admin") and callable(getattr(event, "is_admin")): + if event.is_admin(): + return True + + # Check is_super_user method + if hasattr(event, "is_super_user") and callable( + getattr(event, "is_super_user") + ): + if event.is_super_user(): + return True + + # Check message_obj.sender.role + if hasattr(event, "message_obj"): + msg_obj = event.message_obj + if hasattr(msg_obj, "sender") and hasattr(msg_obj.sender, "role"): + role = msg_obj.sender.role + if role in ("admin", "owner"): + return True + + except AttributeError as e: + logger.debug("Permission check attr error: %s", e) + pass + + return False + + @staticmethod + def is_super_user(event: AstrMessageEvent) -> bool: + """Check if user is super user. + + Args: + event: Message event + + Returns: + True if user is super user + """ + try: + if hasattr(event, "is_super_user") and callable( + getattr(event, "is_super_user") + ): + if event.is_super_user(): + return True + + except AttributeError as e: + logger.debug("Super user check attr error: %s", e) + pass + + return False + + @staticmethod + def require_admin(event: AstrMessageEvent) -> tuple[bool, str]: + """Check admin permission and return result with message. + + Args: + event: Message event + + Returns: + Tuple of (has_permission, error_message) + """ + if PermissionService.is_admin(event): + return True, "" + return False, "❌ 权限不足:此命令仅限管理员或超级管理员使用。" + + @staticmethod + def require_super_user(event: AstrMessageEvent) -> tuple[bool, str]: + """Check super user permission and return result with message. + + Args: + event: Message event + + Returns: + Tuple of (has_permission, error_message) + """ + if PermissionService.is_super_user(event): + return True, "" + return False, "❌ 权限不足:此命令仅限超级管理员使用。" diff --git a/src/infrastructure/persistence/__init__.py b/src/infrastructure/persistence/__init__.py new file mode 100644 index 0000000..eec6c52 --- /dev/null +++ b/src/infrastructure/persistence/__init__.py @@ -0,0 +1,127 @@ +"""Persistence layer — data access and storage. + +Contains repository implementations for: +- Access control (blacklist/whitelist) +- Session configuration +- Fortune data +- Cache management +""" + +from __future__ import annotations + +from pathlib import Path +from typing import TYPE_CHECKING + +from .access_control_repo import FileBackedAccessControlRepo +from .session_config_json_repository import JsonSessionConfigRepository +from .sqlite_fortune_repository import SQLiteFortuneRepo + +if TYPE_CHECKING: + from astrbot.core import AstrBotConfig + +__all__ = [ + "FileBackedAccessControlRepo", + "JsonSessionConfigRepository", + "SQLiteFortuneRepo", + "get_access_control_repo", + "init_access_control_repo", + "clear_repo", + "get_fortune_repo", + "init_fortune_repo", + "clear_fortune_repo", + "get_session_config_repo", + "init_session_config_repo", + "clear_session_config_repo", +] + +# ==================== Singleton Pattern ==================== + +_repo: FileBackedAccessControlRepo | None = None +_fortune_repo: SQLiteFortuneRepo | None = None +_session_config_repo: JsonSessionConfigRepository | None = None + + +def get_access_control_repo() -> FileBackedAccessControlRepo: + """Get the access control repository singleton. + + Returns: + The current FileBackedAccessControlRepo instance. + + Raises: + RuntimeError: If repo not initialized. + """ + if _repo is None: + raise RuntimeError( + "Access control repo not initialized. Call init_access_control_repo() first." + ) + return _repo + + +async def init_access_control_repo( + data_dir: Path, astrbot_config: AstrBotConfig | None = None +) -> FileBackedAccessControlRepo: + """Initialize access control repository singleton. + + Args: + data_dir: Plugin data directory. + astrbot_config: AstrBot config dict for WebUI sync. + + Returns: + The initialized repository instance. + """ + global _repo + _repo = FileBackedAccessControlRepo(data_dir, astrbot_config) + await _repo.initialize() + return _repo + + +def clear_repo() -> None: + """Clear repo singleton (for testing).""" + global _repo + _repo = None + + +def get_fortune_repo() -> SQLiteFortuneRepo: + """Get the fortune repository singleton.""" + if _fortune_repo is None: + raise RuntimeError( + "Fortune repo not initialized. Call init_fortune_repo() first." + ) + return _fortune_repo + + +async def init_fortune_repo(data_dir: Path) -> SQLiteFortuneRepo: + """Initialize fortune repository singleton.""" + global _fortune_repo + _fortune_repo = SQLiteFortuneRepo(data_dir / "fortune") + await _fortune_repo.initialize() + return _fortune_repo + + +def clear_fortune_repo() -> None: + """Clear fortune repo singleton.""" + global _fortune_repo + _fortune_repo = None + + +def get_session_config_repo() -> JsonSessionConfigRepository: + """Get the session configuration repository singleton.""" + if _session_config_repo is None: + raise RuntimeError( + "Session config repo not initialized. Call init_session_config_repo() first." + ) + return _session_config_repo + + +async def init_session_config_repo(data_dir: Path) -> JsonSessionConfigRepository: + """Initialize session configuration repository singleton.""" + global _session_config_repo + _session_config_repo = JsonSessionConfigRepository(data_dir) + await _session_config_repo.initialize() + return _session_config_repo + + +def clear_session_config_repo() -> None: + """Clear session configuration repo singleton.""" + global _session_config_repo + _session_config_repo = None diff --git a/src/infrastructure/persistence/access_control_repo.py b/src/infrastructure/persistence/access_control_repo.py new file mode 100644 index 0000000..42b1750 --- /dev/null +++ b/src/infrastructure/persistence/access_control_repo.py @@ -0,0 +1,311 @@ +"""File-backed repository for access control data. + +Implements AccessControlRepository interface using JSON file persistence. +Extracted from ConfigManager to separate persistence from domain logic. +""" + +from __future__ import annotations + +import asyncio +import json +from pathlib import Path +from typing import TYPE_CHECKING, Any + +from astrbot.api import logger + +from ...application.ports import AccessControlRepository + +if TYPE_CHECKING: + from astrbot.core import AstrBotConfig + + +class FileBackedAccessControlRepo(AccessControlRepository): + """File-backed repository for access control lists. + + Stores blacklist/whitelist data in JSON file with async lock protection. + Syncs with AstrBotConfig for WebUI compatibility. + """ + + SAFETY_LIST_KEYS = ( + "setu_blocked_users", + "setu_whitelist_users", + "setu_blocked_groups", + "setu_whitelist_groups", + "fortune_blocked_users", + "fortune_whitelist_users", + "fortune_blocked_groups", + "fortune_whitelist_groups", + ) + + def __init__( + self, data_dir: Path, astrbot_config: AstrBotConfig | None = None + ) -> None: + """Initialize repository. + + Args: + data_dir: Plugin data directory + astrbot_config: AstrBot config for WebUI sync + """ + self._data_dir = data_dir + self._config_file = data_dir / "config.json" + self._cache: dict[str, Any] = {} + self._astrbot_config = astrbot_config + self._main_config_cache: dict[str, Any] | None = None + self._main_config_cache_mtime: float | None = None + self._main_config_cache_path: Path | None = None + + async def initialize(self) -> None: + """Initialize repository, load existing config.""" + self._load_config() + imported = self._sync_from_astrbot_config() + if not imported: + self._sync_to_astrbot_config() + if not self._config_file.exists(): + await self._save_config() + + def _load_config(self) -> None: + """Load config from file.""" + if not self._config_file.exists(): + self._cache = {} + return + + try: + with open(self._config_file, encoding="utf-8") as f: + self._cache = json.load(f) + except (json.JSONDecodeError, OSError) as e: + logger.warning("Failed to load config file: %s", e) + self._cache = {} + + async def _save_config(self) -> bool: + """Save config to file via executor. + + Returns: + True if save succeeded + """ + try: + self._data_dir.mkdir(parents=True, exist_ok=True) + data = json.dumps(self._cache, ensure_ascii=False, indent=2) + loop = asyncio.get_running_loop() + await loop.run_in_executor(None, self._write_config_file, data) + self._sync_to_astrbot_config() + return True + except (OSError, TypeError) as e: + logger.error("Failed to save config file: %s", e) + return False + + def _write_config_file(self, data: str) -> None: + """Write config data to file (called in thread pool).""" + with open(self._config_file, "w", encoding="utf-8") as f: + f.write(data) + + # Setu user access control + async def add_setu_blocked_user(self, user_id: str) -> bool: + """Add user to Setu blacklist.""" + user_id = str(user_id).strip() + if not user_id: + return False + await self.remove_setu_whitelist_user(user_id) + return await self._add_to_list("setu_blocked_users", user_id) + + async def remove_setu_blocked_user(self, user_id: str) -> bool: + """Remove user from Setu blacklist.""" + return await self._remove_from_list("setu_blocked_users", user_id) + + async def is_setu_user_blocked(self, user_id: str) -> bool: + """Check if user is in Setu blacklist.""" + return self._is_in_list("setu_blocked_users", user_id) + + async def add_setu_whitelist_user(self, user_id: str) -> bool: + """Add user to Setu whitelist.""" + user_id = str(user_id).strip() + if not user_id: + return False + await self.remove_setu_blocked_user(user_id) + return await self._add_to_list("setu_whitelist_users", user_id) + + async def remove_setu_whitelist_user(self, user_id: str) -> bool: + """Remove user from Setu whitelist.""" + return await self._remove_from_list("setu_whitelist_users", user_id) + + async def is_setu_user_whitelisted(self, user_id: str) -> bool: + """Check if user is in Setu whitelist.""" + return self._is_in_list("setu_whitelist_users", user_id) + + # Setu group access control + async def add_setu_blocked_group(self, group_id: str) -> bool: + """Add group to Setu blacklist.""" + return await self._add_to_list("setu_blocked_groups", group_id) + + async def remove_setu_blocked_group(self, group_id: str) -> bool: + """Remove group from Setu blacklist.""" + return await self._remove_from_list("setu_blocked_groups", group_id) + + async def is_setu_group_blocked(self, group_id: str) -> bool: + """Check if group is in Setu blacklist.""" + return self._is_in_list("setu_blocked_groups", group_id) + + async def add_setu_whitelist_group(self, group_id: str) -> bool: + """Add group to Setu whitelist.""" + return await self._add_to_list("setu_whitelist_groups", group_id) + + async def remove_setu_whitelist_group(self, group_id: str) -> bool: + """Remove group from Setu whitelist.""" + return await self._remove_from_list("setu_whitelist_groups", group_id) + + async def is_setu_group_whitelisted(self, group_id: str) -> bool: + """Check if group is in Setu whitelist.""" + return self._is_in_list("setu_whitelist_groups", group_id) + + # Fortune user access control + async def add_fortune_blocked_user(self, user_id: str) -> bool: + """Add user to Fortune blacklist.""" + user_id = str(user_id).strip() + if not user_id: + return False + await self.remove_fortune_whitelist_user(user_id) + return await self._add_to_list("fortune_blocked_users", user_id) + + async def remove_fortune_blocked_user(self, user_id: str) -> bool: + """Remove user from Fortune blacklist.""" + return await self._remove_from_list("fortune_blocked_users", user_id) + + async def is_fortune_user_blocked(self, user_id: str) -> bool: + """Check if user is in Fortune blacklist.""" + return self._is_in_list("fortune_blocked_users", user_id) + + async def add_fortune_whitelist_user(self, user_id: str) -> bool: + """Add user to Fortune whitelist.""" + user_id = str(user_id).strip() + if not user_id: + return False + await self.remove_fortune_blocked_user(user_id) + return await self._add_to_list("fortune_whitelist_users", user_id) + + async def remove_fortune_whitelist_user(self, user_id: str) -> bool: + """Remove user from Fortune whitelist.""" + return await self._remove_from_list("fortune_whitelist_users", user_id) + + async def is_fortune_user_whitelisted(self, user_id: str) -> bool: + """Check if user is in Fortune whitelist.""" + return self._is_in_list("fortune_whitelist_users", user_id) + + # Fortune group access control + async def add_fortune_blocked_group(self, group_id: str) -> bool: + """Add group to Fortune blacklist.""" + return await self._add_to_list("fortune_blocked_groups", group_id) + + async def remove_fortune_blocked_group(self, group_id: str) -> bool: + """Remove group from Fortune blacklist.""" + return await self._remove_from_list("fortune_blocked_groups", group_id) + + async def is_fortune_group_blocked(self, group_id: str) -> bool: + """Check if group is in Fortune blacklist.""" + return self._is_in_list("fortune_blocked_groups", group_id) + + async def add_fortune_whitelist_group(self, group_id: str) -> bool: + """Add group to Fortune whitelist.""" + return await self._add_to_list("fortune_whitelist_groups", group_id) + + async def remove_fortune_whitelist_group(self, group_id: str) -> bool: + """Remove group from Fortune whitelist.""" + return await self._remove_from_list("fortune_whitelist_groups", group_id) + + async def is_fortune_group_whitelisted(self, group_id: str) -> bool: + """Check if group is in Fortune whitelist.""" + return self._is_in_list("fortune_whitelist_groups", group_id) + + # Helper methods + async def _add_to_list(self, key: str, item: str) -> bool: + """Add item to list (normalized on write).""" + current = self._cache.setdefault(key, []) + item_str = str(item).strip() + if not item_str or item_str in current: + return True + current.append(item_str) + return await self._save_config() + + async def _remove_from_list(self, key: str, item: str) -> bool: + """Remove item from list.""" + current = self._cache.get(key, []) + item_str = str(item).strip() + if item_str not in current: + return True + current.remove(item_str) + return await self._save_config() + + def _is_in_list(self, key: str, item: str) -> bool: + """Check if item is in list.""" + current = self._cache.get(key, []) + return str(item).strip() in current + + # WebUI sync methods + def _sync_to_astrbot_config(self) -> None: + """Sync local config to AstrBotConfig for WebUI.""" + if self._astrbot_config is None: + return + + try: + updated = False + + if "safety" not in self._astrbot_config: + self._astrbot_config["safety"] = {} + updated = True + + safety_config = self._astrbot_config["safety"] + if not isinstance(safety_config, dict): + safety_config = {} + self._astrbot_config["safety"] = safety_config + updated = True + + for key in self.SAFETY_LIST_KEYS: + if key not in self._cache: + continue + value = self._cache.get(key) + if not isinstance(value, list): + value = [] + if safety_config.get(key) != value: + safety_config[key] = value + updated = True + + if updated and hasattr(self._astrbot_config, "save_config"): + if callable(getattr(self._astrbot_config, "save_config")): + self._astrbot_config.save_config() + + except Exception as e: + logger.debug("Failed to sync to AstrBot config: %s", e) + + def _sync_from_astrbot_config(self) -> bool: + """Sync from AstrBotConfig to local cache.""" + if self._astrbot_config is None: + return False + + try: + imported = False + updated = False + + safety_config = self._astrbot_config.get("safety", {}) + if not isinstance(safety_config, dict): + return False + + for key in self.SAFETY_LIST_KEYS: + if key not in safety_config: + continue + imported = True + value = safety_config.get(key) + if not isinstance(value, list): + value = [] + value = [str(v).strip() for v in value if str(v).strip()] + if self._cache.get(key) != value: + self._cache[key] = value + updated = True + + if updated: + self._data_dir.mkdir(parents=True, exist_ok=True) + with open(self._config_file, "w", encoding="utf-8") as f: + json.dump(self._cache, f, ensure_ascii=False, indent=2) + + return imported + + except Exception as e: + logger.debug("Failed to sync from AstrBot config: %s", e) + return False diff --git a/src/infrastructure/persistence/session_config_json_repository.py b/src/infrastructure/persistence/session_config_json_repository.py new file mode 100644 index 0000000..b36ca25 --- /dev/null +++ b/src/infrastructure/persistence/session_config_json_repository.py @@ -0,0 +1,133 @@ +"""JSON-backed repository for session configuration overrides.""" + +from __future__ import annotations + +import asyncio +import json +from pathlib import Path +from typing import Any + +from astrbot.api import logger + +from ...application.ports import SessionConfigRepository +from ...application.session_config import ( + SessionConfigRecord, + normalize_config_value, + normalize_session_type, +) + +SESSION_CONFIG_VERSION = 1 + + +class JsonSessionConfigRepository(SessionConfigRepository): + """Persist session overrides in `/session_overrides.json`.""" + + def __init__(self, data_dir: Path) -> None: + self._path = data_dir / "session_overrides.json" + self._lock = asyncio.Lock() + self._sessions: dict[str, SessionConfigRecord] = {} + + async def initialize(self) -> None: + """Load existing records or create an empty store.""" + async with self._lock: + self._path.parent.mkdir(parents=True, exist_ok=True) + if not self._path.exists(): + self._sessions = {} + await self._save_unlocked() + return + self._sessions = await asyncio.to_thread(self._load_from_disk) + + async def list_sessions(self) -> list[SessionConfigRecord]: + """List all stored session records.""" + async with self._lock: + return sorted( + self._sessions.values(), + key=lambda record: ( + record.session_type, + record.display_name, + record.session_id, + ), + ) + + async def get_session(self, session_id: str) -> SessionConfigRecord | None: + """Get a session record by ID.""" + async with self._lock: + return self._sessions.get(str(session_id).strip()) + + async def upsert_session(self, record: SessionConfigRecord) -> SessionConfigRecord: + """Create or replace a session record.""" + normalized = _normalize_record(record) + async with self._lock: + self._sessions[normalized.session_id] = normalized + await self._save_unlocked() + return normalized + + async def delete_session(self, session_id: str) -> bool: + """Delete a session record.""" + async with self._lock: + existed = self._sessions.pop(str(session_id).strip(), None) is not None + if existed: + await self._save_unlocked() + return existed + + def _load_from_disk(self) -> dict[str, SessionConfigRecord]: + try: + data = json.loads(self._path.read_text(encoding="utf-8")) + except (OSError, json.JSONDecodeError) as exc: + logger.warning("Failed to load session overrides: %s", exc) + return {} + + sessions: dict[str, SessionConfigRecord] = {} + for item in data.get("sessions", []): + if not isinstance(item, dict): + continue + try: + record = _record_from_dict(item) + except (TypeError, ValueError) as exc: + logger.warning("Ignoring invalid session override record: %s", exc) + continue + sessions[record.session_id] = record + return sessions + + async def _save_unlocked(self) -> None: + data = { + "version": SESSION_CONFIG_VERSION, + "sessions": [record.to_dict() for record in self._sessions.values()], + } + await asyncio.to_thread(self._write_json, data) + + def _write_json(self, data: dict[str, Any]) -> None: + tmp_path = self._path.with_suffix(".tmp") + tmp_path.write_text( + json.dumps(data, ensure_ascii=False, indent=2), encoding="utf-8" + ) + tmp_path.replace(self._path) + + +def _record_from_dict(data: dict[str, Any]) -> SessionConfigRecord: + raw_overrides = ( + data.get("overrides") if isinstance(data.get("overrides"), dict) else {} + ) + overrides = { + str(key).strip(): normalize_config_value(str(key).strip(), value) + for key, value in raw_overrides.items() + } + return SessionConfigRecord( + session_id=str(data.get("session_id", "")).strip(), + session_type=normalize_session_type(str(data.get("session_type", "private"))), + display_name=str(data.get("display_name", "")).strip(), + overrides=overrides, + ) + + +def _normalize_record(record: SessionConfigRecord) -> SessionConfigRecord: + overrides = { + key.strip(): normalize_config_value(key, value) + for key, value in record.overrides.items() + } + return SessionConfigRecord( + session_id=str(record.session_id).strip(), + session_type=normalize_session_type(record.session_type), + display_name=record.display_name.strip(), + overrides=overrides, + ) diff --git a/src/infrastructure/persistence/sqlite_fortune_repository.py b/src/infrastructure/persistence/sqlite_fortune_repository.py new file mode 100644 index 0000000..356eccb --- /dev/null +++ b/src/infrastructure/persistence/sqlite_fortune_repository.py @@ -0,0 +1,320 @@ +"""SQLite implementation for fortune data persistence.""" + +from __future__ import annotations + +import asyncio +import datetime +from pathlib import Path +from typing import Any + +from astrbot.api import logger + +from ...application.ports import FortuneRepository +from ...domain.fortune.entities import FortuneGenerationRequest, FortuneRecord + + +class SQLiteFortuneRepo(FortuneRepository): + """SQLite-backed fortune repository implementation.""" + + def __init__(self, data_dir: Path) -> None: + self._data_dir = data_dir + self._db_path = data_dir / "fortune.db" + self._cache_dir = data_dir / "cache" + self._db_lock = asyncio.Lock() + self._cache_lock = asyncio.Lock() + self._db_inited = False + self._last_cleanup_date: str | None = None + + async def initialize(self) -> None: + """Initialize database and cache directory.""" + self._data_dir.mkdir(parents=True, exist_ok=True) + self._cache_dir.mkdir(parents=True, exist_ok=True) + await self._init_db() + today = datetime.date.today().isoformat() + await self.cleanup_expired_cache(today) + self._db_inited = True + logger.info("[fortune] Database initialized at %s", self._db_path) + + async def _init_db(self) -> None: + """Initialize database tables.""" + import aiosqlite + + async with self._db_lock: + async with aiosqlite.connect(str(self._db_path)) as db: + await db.execute( + """ + CREATE TABLE IF NOT EXISTS fortune_data ( + user_id TEXT NOT NULL, + date_str TEXT NOT NULL, + title TEXT NOT NULL, + stars INTEGER NOT NULL, + desc_text TEXT NOT NULL, + extra TEXT NOT NULL, + theme TEXT NOT NULL, + image_cached INTEGER DEFAULT 0, + img_url TEXT, + last_view_date TEXT, + group_id TEXT, + PRIMARY KEY (user_id, date_str) + ) + """ + ) + await db.commit() + await self._migrate_db(db) + + async def _migrate_db(self, db: Any) -> None: + """Database migration: add missing columns.""" + cursor = await db.execute("PRAGMA table_info(fortune_data)") + columns = await cursor.fetchall() + column_names = [col[1] for col in columns] + + if "img_url" not in column_names: + await db.execute("ALTER TABLE fortune_data ADD COLUMN img_url TEXT") + await db.commit() + + if "last_view_date" not in column_names: + await db.execute("ALTER TABLE fortune_data ADD COLUMN last_view_date TEXT") + await db.commit() + + if "group_id" not in column_names: + await db.execute("ALTER TABLE fortune_data ADD COLUMN group_id TEXT") + await db.commit() + await db.execute( + "CREATE INDEX IF NOT EXISTS idx_fortune_group ON fortune_data(group_id, date_str)" + ) + await db.commit() + + def _row_to_record( + self, row: tuple, user_id: str, username: str, date_str: str + ) -> FortuneRecord: + """Convert a database row to FortuneRecord.""" + return FortuneRecord( + user_id=user_id, + username=username, + date_str=date_str, + title=row[0], + star_count=row[1], + description=row[2], + extra_message=row[3], + theme_color=row[4], + image_cached=bool(row[5]), + img_url=row[6], + last_view_date=row[7] if len(row) > 7 else date_str, + group_id=row[8] if len(row) > 8 else None, + ) + + async def get_today_fortune( + self, request: FortuneGenerationRequest + ) -> FortuneRecord | None: + """Get fortune for today.""" + import aiosqlite + + async with self._db_lock: + async with aiosqlite.connect(str(self._db_path)) as db: + cursor = await db.execute( + "SELECT title, stars, desc_text, extra, theme, image_cached, img_url, last_view_date, group_id " + "FROM fortune_data WHERE user_id = ? AND date_str = ?", + (request.user_id, request.date_str), + ) + row = await cursor.fetchone() + if row: + return self._row_to_record( + row, request.user_id, request.username, request.date_str + ) + return None + + async def save_fortune(self, record: FortuneRecord) -> bool: + """Save or update fortune record.""" + import aiosqlite + + try: + async with self._db_lock: + async with aiosqlite.connect(str(self._db_path)) as db: + await db.execute( + "INSERT OR REPLACE INTO fortune_data " + "(user_id, date_str, title, stars, desc_text, extra, theme, image_cached, img_url, last_view_date, group_id) " + "VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", + ( + record.user_id, + record.date_str, + record.title, + record.star_count, + record.description, + record.extra_message, + record.theme_color, + int(record.image_cached), + record.img_url, + record.last_view_date, + record.group_id, + ), + ) + await db.commit() + return True + except Exception as exc: + logger.warning("[fortune] Failed to save fortune: %s", exc) + return False + + async def delete_fortune(self, user_id: str, date_str: str) -> bool: + """Delete fortune record.""" + import aiosqlite + + try: + async with self._db_lock: + async with aiosqlite.connect(str(self._db_path)) as db: + await db.execute( + "DELETE FROM fortune_data WHERE user_id = ? AND date_str = ?", + (user_id, date_str), + ) + await db.commit() + return True + except Exception as exc: + logger.warning("[fortune] Failed to delete fortune: %s", exc) + return False + + async def delete_group_fortunes(self, group_id: str, date_str: str) -> int: + """Delete all fortune records for a group on a given date.""" + import aiosqlite + + async with self._db_lock: + async with aiosqlite.connect(str(self._db_path)) as db: + cursor = await db.execute( + "SELECT COUNT(*) FROM fortune_data WHERE date_str = ? AND (group_id = ? OR group_id IS NULL)", + (date_str, group_id), + ) + row = await cursor.fetchone() + count = row[0] if row else 0 + + await db.execute( + "DELETE FROM fortune_data WHERE date_str = ? AND (group_id = ? OR group_id IS NULL)", + (date_str, group_id), + ) + await db.commit() + + return count + + async def delete_all_fortunes(self, date_str: str) -> int: + """Delete all fortune records for a given date.""" + import aiosqlite + + async with self._db_lock: + async with aiosqlite.connect(str(self._db_path)) as db: + cursor = await db.execute( + "SELECT COUNT(*) FROM fortune_data WHERE date_str = ?", + (date_str,), + ) + row = await cursor.fetchone() + count = row[0] if row else 0 + + await db.execute( + "DELETE FROM fortune_data WHERE date_str = ?", + (date_str,), + ) + await db.commit() + + return count + + async def get_active_users(self, days: int = 3) -> list[str]: + """Get list of active users (viewed fortune within N days).""" + import aiosqlite + + cutoff = (datetime.date.today() - datetime.timedelta(days=days)).isoformat() + async with self._db_lock: + async with aiosqlite.connect(str(self._db_path)) as db: + cursor = await db.execute( + "SELECT DISTINCT user_id FROM fortune_data WHERE last_view_date >= ?", + (cutoff,), + ) + rows = await cursor.fetchall() + return [row[0] for row in rows] + + async def get_cached_image_path(self, user_id: str, date_str: str) -> Any | None: + """Get cached image path for fortune.""" + cache_path = self._cache_dir / f"{user_id}_{date_str}.jpg" + if cache_path.exists(): + return cache_path + return None + + async def save_cached_image( + self, user_id: str, date_str: str, image_data: bytes, img_url: str | None + ) -> Any: + """Save image to cache.""" + cache_path = self._cache_dir / f"{user_id}_{date_str}.jpg" + + async with self._cache_lock: + await asyncio.to_thread(cache_path.write_bytes, image_data) + + import aiosqlite + + async with self._db_lock: + async with aiosqlite.connect(str(self._db_path)) as db: + await db.execute( + "UPDATE fortune_data SET image_cached = 1, img_url = ? " + "WHERE user_id = ? AND date_str = ?", + (img_url, user_id, date_str), + ) + await db.commit() + + return cache_path + + async def delete_cached_image(self, user_id: str, date_str: str) -> bool: + """Delete cached image.""" + cache_path = self._cache_dir / f"{user_id}_{date_str}.jpg" + try: + async with self._cache_lock: + if cache_path.exists(): + cache_path.unlink() + return True + except OSError: + pass + return False + + async def cleanup_expired_cache(self, date_str: str) -> int: + """Clean up cache files from before given date.""" + if self._last_cleanup_date == date_str: + return 0 + + removed = 0 + removed_size = 0 + + try: + async with self._cache_lock: + for file_path in self._cache_dir.iterdir(): + if not file_path.is_file(): + continue + try: + file_name = file_path.stem + parts = file_name.rsplit("_", 1) + if len(parts) >= 2: + file_date = parts[-1] + if file_date != date_str: + file_size = file_path.stat().st_size + file_path.unlink() + removed += 1 + removed_size += file_size + else: + file_size = file_path.stat().st_size + file_path.unlink() + removed += 1 + removed_size += file_size + except (OSError, ValueError): + try: + file_size = file_path.stat().st_size + file_path.unlink() + removed += 1 + removed_size += file_size + except OSError: + pass + + if removed > 0: + logger.info( + "[fortune] Cleaned up %d expired cache files (%.2f MB)", + removed, + removed_size / 1024 / 1024, + ) + + self._last_cleanup_date = date_str + + except OSError as exc: + logger.warning("[fortune] Failed to cleanup cache: %s", exc) + + return removed diff --git a/src/infrastructure/providers/__init__.py b/src/infrastructure/providers/__init__.py new file mode 100644 index 0000000..f6b50bd --- /dev/null +++ b/src/infrastructure/providers/__init__.py @@ -0,0 +1,223 @@ +"""图片提供商实现,使用策略模式。""" + +from __future__ import annotations + +from typing import Any + +from ...application.ports import SetuImageProvider +from ...shared import get_logger +from .atri import AtriProvider +from .custom import CustomApiProvider +from .lolicon import LoliconProvider +from .multi import MultiApiProvider +from .sexnyan import SexNyanRunProvider + +logger = get_logger() + +# 提供商注册表 +PROVIDERS: dict[str, type[SetuImageProvider]] = { + "lolicon": LoliconProvider, + "atri": AtriProvider, + "sexnyan": SexNyanRunProvider, +} + +# 多API策略下的内置提供商列表 +BUILTIN_PROVIDERS = ["lolicon", "atri", "sexnyan"] + +# ==================== Singleton Pattern ==================== + +_provider: SetuImageProvider | None = None + + +def get_provider() -> SetuImageProvider: + """Get the provider singleton. + + Returns: + The current SetuImageProvider instance. + + Raises: + RuntimeError: If provider not initialized. + """ + if _provider is None: + raise RuntimeError("Provider not initialized. Call init_provider() first.") + return _provider + + +def init_provider( + api_type: str, + custom_config: dict[str, Any] | None = None, + parser_config: dict[str, Any] | None = None, + custom_api_configs: list[dict[str, Any]] | None = None, + multi_api_strategy: str = "round_robin", + lolicon_config: dict[str, Any] | None = None, + atri_config: dict[str, Any] | None = None, +) -> SetuImageProvider: + """Initialize provider singleton. + + Args: + api_type: Provider type ('lolicon', 'atri', 'sexnyan', 'custom', 'all'). + custom_config: Custom API config for 'custom' type. + parser_config: Parser config for 'custom' type. + custom_api_configs: Custom API configs list (template_list format). + multi_api_strategy: Multi-API strategy ('round_robin', 'random', 'failover'). + lolicon_config: Lolicon provider config. + atri_config: Atri provider config. + + Returns: + The initialized provider instance. + """ + global _provider + _provider = _create_provider( + api_type=api_type, + custom_config=custom_config, + parser_config=parser_config, + custom_api_configs=custom_api_configs, + multi_api_strategy=multi_api_strategy, + lolicon_config=lolicon_config, + atri_config=atri_config, + ) + return _provider + + +def init_provider_from_config(config: Any) -> SetuImageProvider: + """Initialize provider singleton from the current plugin config snapshot.""" + provider = init_provider( + api_type=(getattr(config, "api_type", None) or "lolicon"), + custom_api_configs=getattr(config, "custom_api_configs", None) or None, + multi_api_strategy=getattr(config, "multi_api_strategy", "round_robin"), + lolicon_config={ + "image_size": getattr(config, "image_size", None) or "original", + "proxy": getattr(config, "proxy", None) or "", + "aspect_ratio": getattr(config, "aspect_ratio", None) or "", + "uid": getattr(config, "uid", None) or [], + "keyword": getattr(config, "keyword", None) or "", + }, + atri_config={ + "image_size": getattr(config, "atri_image_size", None) or "original", + "proxy": getattr(config, "atri_proxy", None) or "", + "aspect_ratio": getattr(config, "atri_aspect_ratio", None) or "", + "uid": getattr(config, "atri_uid", None) or [], + "keyword": getattr(config, "atri_keyword", None) or "", + }, + ) + logger.info( + "[provider] initialized from config: api_type=%s, lolicon_proxy=%s, atri_proxy=%s", + getattr(config, "api_type", None) or "lolicon", + getattr(config, "proxy", None) or "-", + getattr(config, "atri_proxy", None) or "-", + ) + return provider + + +def clear_provider() -> None: + """Clear provider singleton (for testing).""" + global _provider + _provider = None + + +def _create_provider( + api_type: str, + custom_config: dict[str, Any] | None = None, + parser_config: dict[str, Any] | None = None, + custom_api_configs: list[dict[str, Any]] | None = None, + multi_api_strategy: str = "round_robin", + lolicon_config: dict[str, Any] | None = None, + atri_config: dict[str, Any] | None = None, +) -> SetuImageProvider | MultiApiProvider: + """根据类型名称获取提供商实例。 + + 参数: + api_type: 提供商类型('lolicon'、'atri'、'sexnyan'、'custom' 或 'all')。 + custom_config: 自定义 API 配置(当 api_type 为 custom 时使用)。 + parser_config: API 响应解析配置(当 api_type 为 custom 时使用)。 + custom_api_configs: 自定义 API 配置列表(template_list 格式)。 + multi_api_strategy: 多 API 策略('round_robin'、'random'、'failover')。 + lolicon_config: Lolicon 专属配置参数。 + atri_config: Atri 专属配置参数。 + + 返回: + 提供商实例(如果类型未知则默认返回 lolicon)。 + """ + if api_type == "all": + # 创建多API提供商(内置API) + providers = [] + for name in BUILTIN_PROVIDERS: + if name == "lolicon" and lolicon_config: + provider = LoliconProvider(**lolicon_config) + elif name == "atri" and atri_config: + provider = AtriProvider(**atri_config) + else: + provider = PROVIDERS[name]() + providers.append(provider) + return MultiApiProvider(providers, strategy=multi_api_strategy) + + if api_type == "custom": + # 优先使用新的 template_list 配置格式 + if ( + custom_api_configs + and isinstance(custom_api_configs, list) + and len(custom_api_configs) > 0 + ): + if len(custom_api_configs) == 1: + # 只有一个配置,直接使用 + cfg = custom_api_configs[0] + api_config = { + "url": cfg.get("url", ""), + "method": cfg.get("method", "GET"), + "timeout": cfg.get("timeout", 30), + } + parser_cfg = { + "type": cfg.get("parser_type", "auto"), + "json_path": cfg.get("json_path", ""), + } + return CustomApiProvider(api_config, parser_cfg) + else: + # 多个配置,创建多API提供商 + providers = [] + for cfg in custom_api_configs: + api_config = { + "url": cfg.get("url", ""), + "method": cfg.get("method", "GET"), + "timeout": cfg.get("timeout", 30), + } + parser_cfg = { + "type": cfg.get("parser_type", "auto"), + "json_path": cfg.get("json_path", ""), + } + providers.append(CustomApiProvider(api_config, parser_cfg)) + return MultiApiProvider(providers, strategy=multi_api_strategy) + + # 兼容旧的配置格式 + if custom_config: + return CustomApiProvider(custom_config, parser_config or {}) + + logger.warning("api_type 为 custom 但未提供配置,回退到 lolicon") + if lolicon_config: + return LoliconProvider(**lolicon_config) + return LoliconProvider() + + provider_cls = PROVIDERS.get(api_type) + if provider_cls is None: + logger.warning("未知的 api_type '%s',回退到 lolicon", api_type) + provider_cls = LoliconProvider + + # 创建实例 + if api_type == "lolicon" and lolicon_config: + return provider_cls(**lolicon_config) + if api_type == "atri" and atri_config: + return provider_cls(**atri_config) + return provider_cls() + + +__all__ = [ + "SetuImageProvider", + "MultiApiProvider", + "LoliconProvider", + "AtriProvider", + "SexNyanRunProvider", + "CustomApiProvider", + "get_provider", + "init_provider", + "init_provider_from_config", + "clear_provider", +] diff --git a/src/infrastructure/providers/atri.py b/src/infrastructure/providers/atri.py new file mode 100644 index 0000000..f88c4cd --- /dev/null +++ b/src/infrastructure/providers/atri.py @@ -0,0 +1,122 @@ +"""Atri API 提供商。 + +文档: https://api.atri.rodeo +""" + +from __future__ import annotations + +import asyncio + +import httpx + +from ...application.ports import SetuImageProvider +from ...domain import HTTP_TIMEOUT_SECONDS +from ...shared import get_logger + +logger = get_logger() + + +class AtriProvider(SetuImageProvider): + """Atri API 提供商。 + + 文档: https://api.atri.rodeo + """ + + API_URL = "https://api.atri.rodeo/setu" + + def __init__( + self, + image_size: str = "original", + proxy: str = "i.pixiv.re", + aspect_ratio: str = "", + uid: list[int] | None = None, + keyword: str = "", + ): + """初始化 Atri 提供商。 + + 参数: + image_size: 图片规格 (original, regular, small, thumb, mini) + proxy: 反代服务 + aspect_ratio: 图片长宽比 + uid: 指定作者 UID 列表 + keyword: 关键词搜索 + """ + self.image_size = image_size + self.proxy = proxy + self.aspect_ratio = aspect_ratio + self.uid = uid or [] + self.keyword = keyword + + async def fetch_image_urls( + self, + num: int, + tags: list[str], + r18: bool, + exclude_ai: bool = True, + ) -> list[str]: + logger.info( + "[provider] Atri request: count=%d, r18=%s, tags=%s, size=%s, proxy=%s, exclude_ai=%s", + num, + r18, + ",".join(tags) or "-", + self.image_size, + self.proxy or "-", + exclude_ai, + ) + exclude_ai_flag = self._normalize_bool(exclude_ai, default=True) + query_params: list[tuple[str, str | int]] = [ + ("r18", 1 if r18 else 0), + ("num", num), + ("excludeAI", str(exclude_ai_flag).lower()), + ("size", self.image_size), + ] + + # 添加可选参数 + if self.proxy: + query_params.append(("proxy", self.proxy)) + if self.aspect_ratio: + query_params.append(("aspectRatio", self.aspect_ratio)) + if self.keyword: + query_params.append(("keyword", self.keyword)) + + # 重复参数由 httpx 统一编码处理 + for uid in self.uid: + if uid is not None: + query_params.append(("uid", uid)) + for tag in tags: + if tag: + query_params.append(("tag", tag)) + + try: + async with httpx.AsyncClient(timeout=HTTP_TIMEOUT_SECONDS) as client: + resp = await client.get(self.API_URL, params=query_params) + resp.raise_for_status() + data = resp.json() + except httpx.HTTPStatusError as e: + logger.warning("Atri API 响应错误: %s %s", e, e.request.url) + return [] + except httpx.HTTPError as e: + request_url = getattr(getattr(e, "request", None), "url", self.API_URL) + logger.warning("Atri API 请求失败: %s %s", e, request_url) + return [] + except asyncio.TimeoutError: + logger.warning("Atri API 请求超时: %s", self.API_URL) + return [] + except Exception as e: + logger.exception("Atri API 异常: %s", e) + return [] + + urls: list[str] = [] + for item in data.get("data", []): + # 根据 size 参数返回对应的 URL + urls_obj = item.get("urls", {}) + img_url = urls_obj.get(self.image_size) + if img_url: + urls.append(img_url) + urls = self._apply_proxy_to_urls(urls, self.proxy, "AtriProvider") + logger.info( + "[provider] Atri response: requested=%d, returned=%d", + num, + len(urls), + ) + return urls diff --git a/src/infrastructure/providers/custom.py b/src/infrastructure/providers/custom.py new file mode 100644 index 0000000..149bcf0 --- /dev/null +++ b/src/infrastructure/providers/custom.py @@ -0,0 +1,357 @@ +"""自定义 API 提供商。 + +支持用户配置任意 API 地址,并提供灵活的响应解析方式。 +""" + +from __future__ import annotations + +import asyncio +import ipaddress +from typing import Any +from urllib.parse import quote, urlparse + +import httpx + +from ...application.ports import SetuImageProvider +from ...domain import HTTP_TIMEOUT_SECONDS +from ...shared import get_logger + +logger = get_logger() + +# Blocked private/network IP ranges for SSRF protection +_BLOCKED_NETWORKS = [ + ipaddress.ip_network("0.0.0.0/8"), + ipaddress.ip_network("10.0.0.0/8"), + ipaddress.ip_network("100.64.0.0/10"), + ipaddress.ip_network("127.0.0.0/8"), + ipaddress.ip_network("169.254.0.0/16"), + ipaddress.ip_network("172.16.0.0/12"), + ipaddress.ip_network("192.0.0.0/29"), + ipaddress.ip_network("192.168.0.0/16"), + ipaddress.ip_network("198.18.0.0/15"), + ipaddress.ip_network("224.0.0.0/4"), + ipaddress.ip_network("240.0.0.0/4"), + ipaddress.ip_network("::1/128"), + ipaddress.ip_network("fc00::/7"), + ipaddress.ip_network("fe80::/10"), +] + +_BLOCKED_HEADERS = frozenset( + { + "host", + "authorization", + "cookie", + "proxy-authorization", + "x-forwarded-for", + "x-forwarded-host", + "x-forwarded-proto", + "forwarded", + "proxy-connection", + } +) + + +def _sanitize_headers(headers: dict[str, str]) -> dict[str, str]: + """Remove sensitive headers that could enable SSRF or credential leakage.""" + return {k: v for k, v in headers.items() if k.lower() not in _BLOCKED_HEADERS} + + +async def _validate_url(url: str) -> tuple[str, str | None]: + """Validate URL scheme and block private IPs (SSRF protection). + + Resolves DNS, validates IPs, and pins the URL to the resolved IP + to prevent DNS rebinding attacks. + + Args: + url: URL to validate. + + Returns: + Tuple of (ip_pinned_url, original_hostname). + + Raises: + ValueError: If URL scheme is invalid or points to private IP. + """ + parsed = urlparse(url) + if parsed.scheme not in ("http", "https"): + raise ValueError( + f"Invalid URL scheme: {parsed.scheme}. Only http/https allowed." + ) + if not parsed.hostname: + raise ValueError("URL has no hostname.") + + import socket + + try: + loop = asyncio.get_running_loop() + resolved = await loop.run_in_executor( + None, + lambda: socket.getaddrinfo( + parsed.hostname, None, socket.AF_UNSPEC, socket.SOCK_STREAM + ), + ) + except socket.gaierror as e: + raise ValueError(f"Cannot resolve hostname: {parsed.hostname}") from e + + first_ip: str | None = None + for family, _type, _proto, _canon, addr in resolved: + ip = ipaddress.ip_address(addr[0]) + for network in _BLOCKED_NETWORKS: + if ip in network: + raise ValueError(f"URL resolves to blocked private IP: {ip}") + if first_ip is None: + first_ip = str(addr[0]) + + # Pin hostname to resolved IP to prevent DNS rebinding + if first_ip and parsed.hostname != first_ip: + if parsed.port: + pinned_netloc = ( + f"[{first_ip}]:{parsed.port}" + if ":" in first_ip + else f"{first_ip}:{parsed.port}" + ) + else: + pinned_netloc = f"[{first_ip}]" if ":" in first_ip else first_ip + pinned_url = url.replace( + f"{parsed.scheme}://{parsed.netloc}", + f"{parsed.scheme}://{pinned_netloc}", + 1, + ) + return pinned_url, parsed.hostname + + return url, None + + +class CustomApiProvider(SetuImageProvider): + """自定义 API 提供商。 + + 支持用户配置任意 API 地址,并提供灵活的响应解析方式。 + """ + + def __init__( + self, + api_config: dict[str, Any] | None = None, + parser_config: dict[str, Any] | None = None, + ): + """初始化自定义 API 提供商。 + + 参数: + api_config: API 配置(url, method, timeout, headers)。 + parser_config: 响应解析配置(type, json_path)。 + """ + self.api_config = api_config or {} + self.parser_config = parser_config or {} + + async def _build_url( + self, num: int, tags: list[str], r18: bool, exclude_ai: bool + ) -> tuple[str, dict[str, Any] | None, str | None]: + """构建请求 URL、请求体和原始主机名。""" + url_template = self.api_config.get("url", "") + method = self.api_config.get("method", "GET").upper() + + # 替换 URL 中的占位符 + tags_str = quote(",".join(tags)) if tags else "" + url = url_template.replace("{num}", str(num)) + url = url.replace("{r18}", "1" if r18 else "0") + url = url.replace("{tags}", tags_str) + + pinned_url, original_host = await _validate_url(url) + + if method == "POST": + body = { + "num": num, + "r18": r18, + "tags": tags, + "exclude_ai": exclude_ai, + } + return pinned_url, body, original_host + else: + return pinned_url, None, original_host + + def _parse_response(self, data: Any) -> list[str]: + """解析 API 响应,提取图片 URL 列表。""" + parser_type = self.parser_config.get("type", "auto") + + if parser_type == "json": + return self._parse_json_response(data) + else: + return self._parse_auto_response(data) + + def _parse_json_response(self, data: Any) -> list[str]: + """使用 JSON 路径表达式解析响应。""" + json_path = self.parser_config.get("json_path", "") + + if not json_path or not isinstance(data, (dict, list)): + return [] + + try: + # 简单的 JSON 路径解析 + # 支持 $.data[*].url 或 $.images 等形式 + result = self._get_value_by_path(data, json_path) + + if isinstance(result, str): + return [result] + elif isinstance(result, list): + urls = [] + for item in result: + if isinstance(item, str): + urls.append(item) + elif isinstance(item, dict): + # 尝试从字典中提取 URL + url = item.get("url") or item.get("image") or item.get("link") + if url: + urls.append(url) + return urls + elif isinstance(result, dict): + url = result.get("url") or result.get("image") or result.get("link") + return [url] if url else [] + + except Exception as e: + logger.error("JSON 路径解析失败: %s", e) + + return [] + + def _get_value_by_path(self, data: Any, path: str) -> Any: + """根据路径表达式获取值。 + + 支持: + - $.data.url (单级) + - $.data[*].url (数组遍历) + - $.data[0].url (指定索引) + """ + # 移除开头的 $. + path = path.lstrip("$.").strip() + if not path: + return data + + parts = path.split(".") + current = data + + # 使用索引遍历,避免重复字段名导致的解析错误 + for idx, part in enumerate(parts): + if current is None: + return None + + # 处理数组索引 [*] 或 [n] + if "[" in part and "]" in part: + arr_name = part[: part.index("[")] + idx_str = part[part.index("[") + 1 : part.index("]")] + + if arr_name: + current = ( + current.get(arr_name) if isinstance(current, dict) else None + ) + + if not isinstance(current, list): + return None + + if idx_str == "*": + # 遍历数组,获取下一级 + # 使用 idx+1 代替 parts.index(part) 避免重复字段名问题 + next_part = ".".join(parts[idx + 1 :]) + if next_part: + results = [] + for item in current: + val = self._get_value_by_path(item, next_part) + if val is not None: + if isinstance(val, list): + results.extend(val) + else: + results.append(val) + return results + else: + return current + else: + try: + arr_idx = int(idx_str) + current = ( + current[arr_idx] if 0 <= arr_idx < len(current) else None + ) + except (ValueError, IndexError): + return None + else: + current = current.get(part) if isinstance(current, dict) else None + + return current + + def _parse_auto_response(self, data: Any) -> list[str]: + """自动从响应中提取所有图片 URL。""" + urls: list[str] = [] + + def extract_urls(obj: Any) -> None: + if isinstance(obj, str): + # 检查是否是 URL + if self._is_image_url(obj): + urls.append(obj) + elif isinstance(obj, list): + for item in obj: + extract_urls(item) + elif isinstance(obj, dict): + for key, value in obj.items(): + # 优先检查可能的 URL 键 + if key.lower() in ( + "url", + "link", + "src", + "image", + "img", + "original", + "regular", + ): + if isinstance(value, str) and self._is_image_url(value): + urls.append(value) + else: + extract_urls(value) + + extract_urls(data) + return list(dict.fromkeys(urls)) # 去重保持顺序 + + def _is_image_url(self, url: str) -> bool: + """检查字符串是否是图片 URL。""" + if not isinstance(url, str) or not url.startswith(("http://", "https://")): + return False + + # 检查是否包含图片扩展名或常见图片域名 + image_exts = (".jpg", ".jpeg", ".png", ".gif", ".webp", ".bmp") + image_hosts = ("pixiv", "img", "image", "pic", "photo", "cdn") + + url_lower = url.lower() + has_ext = any(url_lower.endswith(ext) for ext in image_exts) + has_host = any(host in url_lower for host in image_hosts) + + # URL 中包含图片相关特征 + return has_ext or has_host or "/img" in url_lower or "/image" in url_lower + + async def fetch_image_urls( + self, + num: int, + tags: list[str], + r18: bool, + exclude_ai: bool = True, + ) -> list[str]: + """从自定义 API 获取图片 URL 列表。""" + url, body, original_host = await self._build_url(num, tags, r18, exclude_ai) + + if not url: + logger.error("自定义 API URL 未配置") + return [] + + timeout = self.api_config.get("timeout", HTTP_TIMEOUT_SECONDS) + headers = _sanitize_headers(self.api_config.get("headers", {})) + if original_host: + headers["Host"] = original_host + + try: + async with httpx.AsyncClient(timeout=timeout) as client: + if body: + resp = await client.post(url, json=body, headers=headers) + else: + resp = await client.get(url, headers=headers) + resp.raise_for_status() + data = resp.json() + + urls = self._parse_response(data) + return urls[:num] # 限制数量 + + except Exception as e: + logger.error("自定义 API 请求失败: %s", e) + return [] diff --git a/src/infrastructure/providers/lolicon.py b/src/infrastructure/providers/lolicon.py new file mode 100644 index 0000000..2dae0f9 --- /dev/null +++ b/src/infrastructure/providers/lolicon.py @@ -0,0 +1,126 @@ +"""Lolicon API V2 提供商。 + +文档: https://api.lolicon.app +""" + +from __future__ import annotations + +import asyncio +from urllib.parse import quote + +import httpx + +from ...application.ports import SetuImageProvider +from ...domain import HTTP_TIMEOUT_SECONDS +from ...shared import get_logger + +logger = get_logger() + + +class LoliconProvider(SetuImageProvider): + """Lolicon API V2 提供商。 + + 文档: https://api.lolicon.app + """ + + API_URL = "https://api.lolicon.app/setu/v2" + + def __init__( + self, + image_size: str = "original", + proxy: str = "i.pixiv.re", + aspect_ratio: str = "", + uid: list[int] | None = None, + keyword: str = "", + ): + """初始化 Lolicon 提供商。 + + 参数: + image_size: 图片规格 (original, regular, small, thumb, mini) + proxy: 反代服务 + aspect_ratio: 图片长宽比 + uid: 指定作者 UID 列表 + keyword: 关键词搜索 + """ + self.image_size = image_size + self.proxy = proxy + self.aspect_ratio = aspect_ratio + self.uid = uid or [] + self.keyword = keyword + + async def fetch_image_urls( + self, + num: int, + tags: list[str], + r18: bool, + exclude_ai: bool = True, + ) -> list[str]: + logger.info( + "[provider] Lolicon request: count=%d, r18=%s, tags=%s, size=%s, proxy=%s, exclude_ai=%s", + num, + r18, + ",".join(tags) or "-", + self.image_size, + self.proxy or "-", + exclude_ai, + ) + exclude_ai_flag = self._normalize_bool(exclude_ai, default=True) + query_params: list[tuple[str, str | int]] = [ + ("r18", 1 if r18 else 0), + ("num", num), + ("excludeAI", str(exclude_ai_flag).lower()), + ("size", self.image_size), + ] + + # 添加可选参数 + if self.proxy: + query_params.append(("proxy", self.proxy)) + if self.aspect_ratio: + query_params.append(("aspectRatio", self.aspect_ratio)) + if self.keyword: + query_params.append(("keyword", self.keyword)) + + # Handle uid as repeated parameters + for uid in self.uid: + if uid is not None: + query_params.append(("uid", uid)) + + # 构建 URL — handle repeated tag params separately + tag_params = "&".join(f"tag={quote(t, safe='')}" for t in tags) if tags else "" + base_params = "&".join(f"{k}={quote(str(v), safe='')}" for k, v in query_params) + url = f"{self.API_URL}?{base_params}" + if tag_params: + url += f"&{tag_params}" + + try: + async with httpx.AsyncClient(timeout=HTTP_TIMEOUT_SECONDS) as client: + resp = await client.get(url) + resp.raise_for_status() + data = resp.json() + except httpx.HTTPStatusError as e: + logger.warning("Lolicon API 响应错误: %s %s", e, url) + return [] + except httpx.HTTPError as e: + logger.warning("Lolicon API 请求失败: %s %s", e, url) + return [] + except asyncio.TimeoutError: + logger.warning("Lolicon API 请求超时: %s", url) + return [] + except Exception as e: + logger.exception("Lolicon API 异常: %s", e) + return [] + + urls: list[str] = [] + for item in data.get("data", []): + # 根据 size 参数返回对应的 URL + urls_obj = item.get("urls", {}) + img_url = urls_obj.get(self.image_size) + if img_url: + urls.append(img_url) + urls = self._apply_proxy_to_urls(urls, self.proxy, "LoliconProvider") + logger.info( + "[provider] Lolicon response: requested=%d, returned=%d", + num, + len(urls), + ) + return urls diff --git a/src/infrastructure/providers/multi.py b/src/infrastructure/providers/multi.py new file mode 100644 index 0000000..9675511 --- /dev/null +++ b/src/infrastructure/providers/multi.py @@ -0,0 +1,95 @@ +"""多 API 提供商,支持轮询、随机和故障转移策略。""" + +from __future__ import annotations + +import random + +from ...application.ports import SetuImageProvider +from ...shared import get_logger + +logger = get_logger() + + +class MultiApiProvider(SetuImageProvider): + """多 API 提供商,支持轮询、随机和故障转移策略。""" + + def __init__( + self, providers: list[SetuImageProvider], strategy: str = "round_robin" + ): + """初始化多 API 提供商。 + + 参数: + providers: 提供商实例列表。 + strategy: 策略类型('round_robin'、'random'、'failover')。 + """ + self.providers = providers + self.strategy = strategy + self._current_index = 0 + self._last_working_index = 0 + + def _get_next_provider(self) -> SetuImageProvider: + """根据策略获取下一个提供商。""" + if self.strategy == "random": + return random.choice(self.providers) + elif self.strategy == "failover": + # 故障转移:从上次成功的开始 + return self.providers[self._last_working_index] + else: + # 轮询 + provider = self.providers[self._current_index % len(self.providers)] + self._current_index += 1 + return provider + + async def fetch_image_urls( + self, + num: int, + tags: list[str], + r18: bool, + exclude_ai: bool = True, + ) -> list[str]: + """从多个 API 获取图片 URL 列表。""" + if self.strategy == "failover": + # 故障转移模式:逐个尝试直到成功 + for i in range(len(self.providers)): + idx = (self._last_working_index + i) % len(self.providers) + provider = self.providers[idx] + try: + urls = await provider.fetch_image_urls(num, tags, r18, exclude_ai) + if urls: + self._last_working_index = idx + return urls + except Exception as e: + logger.warning("API %d 失败: %s,尝试下一个", idx, e) + continue + return [] + elif self.strategy == "random": + # 随机模式:逐个随机选择,失败时继续尝试其他 + tried_indices = set() + while len(tried_indices) < len(self.providers): + idx = random.randrange(len(self.providers)) + if idx in tried_indices: + continue + tried_indices.add(idx) + provider = self.providers[idx] + try: + urls = await provider.fetch_image_urls(num, tags, r18, exclude_ai) + if urls: + return urls + except Exception as e: + logger.warning("API %d 失败: %s,尝试下一个", idx, e) + continue + return [] + else: + # 轮询模式:逐个尝试,失败时继续尝试其他 + for i in range(len(self.providers)): + idx = (self._current_index + i) % len(self.providers) + provider = self.providers[idx] + try: + urls = await provider.fetch_image_urls(num, tags, r18, exclude_ai) + self._current_index = (idx + 1) % len(self.providers) + if urls: + return urls + except Exception as e: + logger.warning("API %d 失败: %s,尝试下一个", idx, e) + continue + return [] diff --git a/src/infrastructure/providers/sexnyan.py b/src/infrastructure/providers/sexnyan.py new file mode 100644 index 0000000..9260ade --- /dev/null +++ b/src/infrastructure/providers/sexnyan.py @@ -0,0 +1,76 @@ +"""SexNyanRun API 提供商。 + +文档: https://sex.nyan.run +""" + +from __future__ import annotations + +import asyncio +from urllib.parse import quote + +import httpx + +from ...application.ports import SetuImageProvider +from ...domain import HTTP_TIMEOUT_SECONDS +from ...shared import get_logger + +logger = get_logger() + + +class SexNyanRunProvider(SetuImageProvider): + """SexNyanRun API 提供商。 + + 文档: https://sex.nyan.run + """ + + API_URL = "https://sex.nyan.run/api/v2/" + + def __init__(self): + """初始化 SexNyanRun 提供商。""" + pass + + async def fetch_image_urls( + self, + num: int, + tags: list[str], + r18: bool, + exclude_ai: bool = True, + ) -> list[str]: + params: dict[str, str | int] = { + "r18": str(r18).lower(), + "num": num, + } + # 构建带多个 'tag' 参数的 URL(使用 URL 编码防止特殊字符问题) + tag_params = "&".join(f"tag={quote(t, safe='')}" for t in tags) if tags else "" + base_params = "&".join( + f"{k}={quote(str(v), safe='')}" for k, v in params.items() + ) + url = f"{self.API_URL}?{base_params}" + if tag_params: + url += f"&{tag_params}" + + try: + async with httpx.AsyncClient(timeout=HTTP_TIMEOUT_SECONDS) as client: + resp = await client.get(url) + resp.raise_for_status() + data = resp.json() + except httpx.HTTPStatusError as e: + logger.warning("SexNyanRun API 响应错误: %s %s", e, url) + return [] + except httpx.HTTPError as e: + logger.warning("SexNyanRun API 请求失败: %s %s", e, url) + return [] + except asyncio.TimeoutError: + logger.warning("SexNyanRun API 请求超时: %s", url) + return [] + except Exception as e: + logger.exception("SexNyanRun API 异常: %s", e) + return [] + + urls: list[str] = [] + for item in data.get("data", []): + if isinstance(item, dict): + img_url = item.get("url") + if img_url: + urls.append(img_url) + return urls diff --git a/src/infrastructure/sending/__init__.py b/src/infrastructure/sending/__init__.py new file mode 100644 index 0000000..bf2f5c0 --- /dev/null +++ b/src/infrastructure/sending/__init__.py @@ -0,0 +1,36 @@ +"""Sending layer — image sending strategies and implementations.""" + +from __future__ import annotations + +from .dto import SendOptions +from .image_sender import ImageSender +from .send_filters import ( + SendFilter, + SendResult, + direct_send_filter, + forward_send_filter, + html_card_filter, + send_with_filter_chain, +) +from .send_strategies import ( + DirectSendStrategy, + ForwardSendStrategy, + HtmlCardFallbackStrategy, + resolve_send_mode, +) + +__all__ = [ + "ImageSender", + "DirectSendStrategy", + "ForwardSendStrategy", + "HtmlCardFallbackStrategy", + "SendOptions", + "resolve_send_mode", + # Filter chain (new) + "send_with_filter_chain", + "SendResult", + "SendFilter", + "direct_send_filter", + "forward_send_filter", + "html_card_filter", +] diff --git a/src/infrastructure/sending/dto.py b/src/infrastructure/sending/dto.py new file mode 100644 index 0000000..22e9935 --- /dev/null +++ b/src/infrastructure/sending/dto.py @@ -0,0 +1,20 @@ +"""Infrastructure DTOs for sending strategies.""" + +from __future__ import annotations + +from dataclasses import dataclass + + +@dataclass(frozen=True) +class SendOptions: + """Value object for send strategy options.""" + + send_mode: str + use_html_card: bool + auto_revoke: bool + revoke_delay: int + r18_docx_mode: bool + html_padding: int = 6 + html_gap: int = 6 + html_card_strategy: str = "fallback" + napcat_stream_mode: str = "fallback" diff --git a/src/infrastructure/sending/image_sender.py b/src/infrastructure/sending/image_sender.py new file mode 100644 index 0000000..ce444ae --- /dev/null +++ b/src/infrastructure/sending/image_sender.py @@ -0,0 +1,615 @@ +"""Image sender service for adapter-level image delivery.""" + +from __future__ import annotations + +import asyncio +from collections.abc import AsyncGenerator +from pathlib import Path +from typing import Any + +import astrbot.api.message_components as Comp +from astrbot.api.event import AstrMessageEvent + +from ...application.session_config import SessionConfigService +from ...application.setu.dto import ImagePayload +from ...shared import get_logger +from ...shared.send_cache import schedule_send_cache_cleanup +from ..astrbot.config import get_config, get_plugin_context +from ..astrbot.session_identity import get_event_session_identity +from ..persistence import get_session_config_repo +from .dto import SendOptions +from .napcat_stream import upload_file_stream +from .send_strategies import ( + DirectSendStrategy, + ForwardSendStrategy, + HtmlCardFallbackStrategy, + resolve_send_mode, +) + +ImageItem = Path | bytes | Comp.Image +logger = get_logger() + + +class ImageSender: + """Send images with send-mode, stream-upload, and fallback strategies.""" + + def __init__(self, config: Any = None, log: Any = None) -> None: + self._user_config = config + self._log = log or logger + self._html_renderer: Any = None + self._forward_supported_cache: dict[str, bool] = {} + + @property + def _config(self): + return self._user_config or get_config() + + @property + def _context(self): + ctx = get_plugin_context() + if ctx is None: + raise RuntimeError("Plugin context not initialized") + return ctx + + async def _build_options( + self, event: AstrMessageEvent, is_r18: bool = False + ) -> SendOptions: + config = self._config + if not config: + return SendOptions( + send_mode="image", + use_html_card=False, + auto_revoke=False, + revoke_delay=30, + r18_docx_mode=False, + napcat_stream_mode="fallback", + ) + + send_mode = config.send_mode + auto_revoke = config.auto_revoke_r18 if is_r18 else False + r18_docx_mode = config.r18_docx_mode if is_r18 else False + + try: + identity = get_event_session_identity(event) + service = SessionConfigService(get_session_config_repo()) + snapshot = await service.get_snapshot( + identity.session_id, + identity.session_type, + identity.display_name, + ) + send_mode = str(snapshot.effective["setu.send_mode"]) + if is_r18: + auto_revoke = bool(snapshot.effective["setu.auto_revoke"]) + r18_docx_mode = bool(snapshot.effective["setu.r18_docx"]) + except Exception as exc: + self._log.debug( + "[send] failed to apply session overrides: session=%s, error=%s", + getattr(identity, "session_id", "unknown"), + exc, + ) + + html_card_strategy = config.html_card_strategy + return SendOptions( + send_mode=send_mode, + use_html_card=html_card_strategy != "never", + auto_revoke=auto_revoke, + revoke_delay=config.auto_revoke_delay, + r18_docx_mode=r18_docx_mode, + html_padding=config.html_card_padding, + html_gap=config.html_card_gap, + html_card_strategy=html_card_strategy, + napcat_stream_mode=config.napcat_stream_mode, + ) + + def set_html_renderer(self, renderer: Any) -> None: + """Set HTML card renderer.""" + self._html_renderer = renderer + + async def send_images( + self, + payload: ImagePayload, + event: AstrMessageEvent, + ) -> AsyncGenerator[Any, None]: + """Send a fetched image payload to the current AstrBot event.""" + options = await self._build_options(event, payload.r18) + items = self._payload_items(payload) + self._log_send_summary(event, payload, items, options) + if not items: + self._log.warning( + "[send] empty payload: session=%s, tags=%s, urls=%d", + self._session_label(event), + ",".join(payload.tags) or "-", + len(payload.urls), + ) + yield event.plain_result("运气不好,一张图都没拿到...") + return + + if payload.r18 and options.r18_docx_mode: + docx_images = await self._read_image_bytes(items) + docx_yielded = False + if docx_images: + async for result in self._send_r18_docx( + event, docx_images, payload.tags, options + ): + docx_yielded = True + yield result + if docx_yielded: + schedule_send_cache_cleanup() + return + + found_message = self._format_found_message( + payload.count, + options.revoke_delay if options.auto_revoke else None, + ) + chain = self._build_image_chain(items) + + if options.html_card_strategy == "always": + self._log.info( + "[send] html-card-only mode: session=%s, count=%d", + self._session_label(event), + payload.count, + ) + if found_message: + await self._send_plain_text(event, found_message) + success = await self._try_html_card_fallback( + event, chain, options, payload.r18 + ) + if not success: + yield event.plain_result(self._send_failed_message()) + else: + yield {"send_success": True, "image_count": payload.count} + schedule_send_cache_cleanup() + return + + if found_message: + await self._send_plain_text(event, found_message) + + supports_forward = self._is_forward_supported(event) + effective_mode = resolve_send_mode( + options.send_mode, payload.count, supports_forward + ) + self._log.info( + "[send] dispatch start: session=%s, platform=%s, mode=%s, supports_forward=%s, napcat_stream=%s, html_fallback=%s", + self._session_label(event), + self._get_platform_name(event) or "unknown", + effective_mode, + supports_forward, + options.napcat_stream_mode, + options.use_html_card, + ) + send_success = await self._send_chain(event, chain, effective_mode, options) + + if ( + not send_success + and options.napcat_stream_mode == "fallback" + and self._has_local_image_paths(chain) + ): + self._log.warning( + "[send] primary send failed, trying NapCat stream fallback: session=%s, mode=%s", + self._session_label(event), + effective_mode, + ) + stream_chain, changed = await self._stream_upload_chain(event, chain) + if changed: + self._log.info( + "[send] NapCat stream upload rebuilt chain: session=%s, count=%d", + self._session_label(event), + len(stream_chain), + ) + send_success = await self._send_chain( + event, + stream_chain, + effective_mode, + self._without_stream_upload(options), + ) + else: + self._log.warning( + "[send] NapCat stream fallback skipped: session=%s, no files uploaded", + self._session_label(event), + ) + + if not send_success and options.use_html_card: + self._log.warning( + "[send] image send failed, attempting HTML card fallback: session=%s, mode=%s", + self._session_label(event), + effective_mode, + ) + send_success = await self._try_html_card_fallback( + event, chain, options, payload.r18 + ) + + if not send_success: + self._log.error( + "[send] all send strategies failed: session=%s, count=%d, mode=%s, html_strategy=%s, napcat_stream=%s", + self._session_label(event), + payload.count, + effective_mode, + options.html_card_strategy, + options.napcat_stream_mode, + ) + yield event.plain_result(self._send_failed_message()) + else: + self._log.info( + "[send] completed: session=%s, count=%d, mode=%s", + self._session_label(event), + payload.count, + effective_mode, + ) + yield {"send_success": True, "image_count": payload.count} + + schedule_send_cache_cleanup() + + async def _send_chain( + self, + event: AstrMessageEvent, + chain: list[Comp.Image], + effective_mode: str, + options: SendOptions, + ) -> bool: + """Send an already-built image chain.""" + if options.napcat_stream_mode == "always": + self._log.info( + "[send] pre-upload via NapCat stream: session=%s, count=%d", + self._session_label(event), + len(chain), + ) + streamed_chain, changed = await self._stream_upload_chain(event, chain) + if changed: + chain = streamed_chain + + if effective_mode == "forward": + return await ForwardSendStrategy(self._context).send( + event, chain, options.auto_revoke + ) + chain = await self._materialize_local_chain(chain) + return await DirectSendStrategy(self._context).send( + event, chain, options.auto_revoke + ) + + async def _materialize_local_chain( + self, chain: list[Comp.Image] + ) -> list[Comp.Image]: + """Convert readable local-file images to in-memory payloads before send.""" + materialized: list[Comp.Image] = [] + for comp in chain: + file_path = self._local_file_path(comp) + if file_path is None: + materialized.append(comp) + continue + try: + data = await asyncio.to_thread(file_path.read_bytes) + except OSError as exc: + self._log.warning( + "[send] failed to read image before send: path=%s, error=%s", + file_path, + exc, + ) + materialized.append(comp) + continue + self._log.debug("[send] materialized local image: path=%s", file_path) + materialized.append(Comp.Image.fromBytes(data)) + return materialized + + def _without_stream_upload(self, options: SendOptions) -> SendOptions: + """Return options for a retry after stream upload has already run.""" + return SendOptions( + send_mode=options.send_mode, + use_html_card=options.use_html_card, + auto_revoke=options.auto_revoke, + revoke_delay=options.revoke_delay, + r18_docx_mode=options.r18_docx_mode, + html_padding=options.html_padding, + html_gap=options.html_gap, + html_card_strategy=options.html_card_strategy, + napcat_stream_mode="disabled", + ) + + async def _send_r18_docx( + self, + event: AstrMessageEvent, + images: tuple[bytes, ...], + tags: tuple[str, ...], + options: SendOptions, + ) -> AsyncGenerator[Any, None]: + """Send R18 images packaged as DOCX when a docx service is available.""" + docx_service = getattr(self, "_docx_service", None) + if not docx_service: + self._log.debug("[send] docx service unavailable, fallback to image send") + return + + docx_path = docx_service.create_docx_with_images(list(images), tags=list(tags)) + if docx_path: + if options.auto_revoke: + message_id = await self._send_file_with_revoke( + event, str(docx_path), docx_path.name + ) + if message_id: + await self._schedule_revoke(event, message_id, options.revoke_delay) + found_msg = self._format_found_message( + len(images), options.revoke_delay + ) + if found_msg: + yield event.plain_result(found_msg) + return + + found_msg = self._format_found_message(len(images)) + if found_msg: + yield event.plain_result(found_msg) + yield event.chain_result( + [Comp.File(file=str(docx_path), name=docx_path.name)] + ) + else: + yield event.plain_result("R18 Docx 封装失败,请稍后再试或联系管理员。") + + async def _try_html_card_fallback( + self, + event: AstrMessageEvent, + chain: list[Comp.Image], + options: SendOptions, + is_r18: bool, + ) -> bool: + """Try HTML card fallback.""" + if not self._html_renderer: + return False + + strategy = HtmlCardFallbackStrategy( + self._context, + self._html_renderer, + { + "card_padding": options.html_padding, + "card_gap": options.html_gap, + }, + ) + return await strategy.send(event, chain, is_r18 and options.auto_revoke) + + def _payload_items(self, payload: ImagePayload) -> tuple[ImageItem, ...]: + if payload.items: + return tuple(payload.items) + items: list[ImageItem] = [] + items.extend(payload.file_paths) + items.extend(payload.raw_bytes) + return tuple(items) + + def _build_image_chain(self, images: tuple[ImageItem, ...]) -> list[Comp.Image]: + """Build image components from local paths or in-memory bytes.""" + chain: list[Comp.Image] = [] + for item in images: + if isinstance(item, Comp.Image): + chain.append(item) + elif isinstance(item, bytes): + chain.append(Comp.Image.fromBytes(item)) + elif isinstance(item, Path): + chain.append(Comp.Image.fromFileSystem(str(item))) + return chain + + async def _read_image_bytes(self, images: tuple[ImageItem, ...]) -> tuple[bytes, ...]: + """Materialize image items as bytes for DOCX/HTML-only paths.""" + result: list[bytes] = [] + for item in images: + if isinstance(item, bytes): + result.append(item) + elif isinstance(item, Path): + try: + result.append(await asyncio.to_thread(item.read_bytes)) + except OSError as exc: + self._log.warning( + "[send] failed to read cached image: path=%s, error=%s", + item, + exc, + ) + elif isinstance(item, Comp.Image): + try: + file_path = await item.convert_to_file_path() + result.append(await asyncio.to_thread(Path(file_path).read_bytes)) + except Exception as exc: + self._log.warning( + "[send] failed to read image component: file=%s, error=%s", + getattr(item, "file", None), + exc, + ) + return tuple(result) + + async def _stream_upload_chain( + self, event: AstrMessageEvent, chain: list[Comp.Image] + ) -> tuple[list[Comp.Image], bool]: + """Upload local image files through NapCat Stream API and rebuild the chain.""" + changed = False + streamed: list[Comp.Image] = [] + for comp in chain: + file_path = self._local_file_path(comp) + if file_path is None: + streamed.append(comp) + continue + + uploaded_path = await upload_file_stream(event, file_path) + if uploaded_path: + self._log.debug( + "[send] stream upload success: local=%s, remote=%s", + file_path, + uploaded_path, + ) + streamed.append(self._image_from_ref(uploaded_path)) + changed = True + else: + self._log.warning( + "[send] stream upload failed, keep original image: local=%s", + file_path, + ) + streamed.append(comp) + return streamed, changed + + def _has_local_image_paths(self, chain: list[Comp.Image]) -> bool: + return any(self._local_file_path(comp) is not None for comp in chain) + + def _local_file_path(self, comp: Comp.Image) -> Path | None: + path_value = getattr(comp, "path", None) + if path_value: + path = Path(str(path_value)) + if path.exists(): + return path + + file_value = getattr(comp, "file", None) + if not isinstance(file_value, str) or not file_value: + return None + if file_value.startswith("file:///"): + path = Path(file_value[8:]) + else: + path = Path(file_value) + return path if path.exists() else None + + def _image_from_ref(self, ref: str | Path) -> Comp.Image: + text = str(ref) + if text.startswith("file:///"): + return Comp.Image(file=text) + path = Path(text) + if path.exists(): + return Comp.Image.fromFileSystem(str(path)) + return Comp.Image(file=text) + + async def _send_plain_text(self, event: AstrMessageEvent, text: str) -> bool: + """Send plain text message.""" + try: + result = event.plain_result(text) + await self._context.send_message(event.unified_msg_origin, result) + return True + except Exception as exc: + self._log.warning("[send] failed to send plain text: error=%s", exc) + return False + + def _is_forward_supported(self, event: AstrMessageEvent) -> bool: + """Check if platform supports forward messages (cached per platform).""" + platform_name = self._get_platform_name(event) + if platform_name in self._forward_supported_cache: + return self._forward_supported_cache[platform_name] + + supported = self._check_forward_support(platform_name, event) + self._forward_supported_cache[platform_name or ""] = supported + return supported + + def _get_platform_name(self, event: AstrMessageEvent) -> str | None: + """Extract platform name from event.""" + if hasattr(event, "platform") and event.platform: + if hasattr(event.platform, "name"): + return event.platform.name + + if hasattr(event, "get_platform_name"): + try: + return event.get_platform_name() + except Exception: + pass + + return None + + def _check_forward_support( + self, platform_name: str | None, event: AstrMessageEvent + ) -> bool: + """Check forward support from platform info.""" + if not platform_name and hasattr(event, "bot") and event.bot: + if hasattr(event.bot, "call_action"): + return True + + if platform_name: + supported = ( + "aiocqhttp", + "onebot11", + "onebot", + "go-cqhttp", + "napcat", + "llonebot", + ) + return any(p in platform_name.lower() for p in supported) + + return False + + async def _send_with_revoke_support( + self, + event: AstrMessageEvent, + chain: list[Any], + is_group: bool, + target_id: str, + ) -> str | None: + """Send message with revoke support.""" + try: + result = event.chain_result(chain) + send_result = await self._context.send_message( + event.unified_msg_origin, result + ) + if isinstance(send_result, dict): + return send_result.get("message_id") + if isinstance(send_result, str): + return send_result + return None + except Exception as exc: + self._log.warning("[send] revoke-capable send failed: error=%s", exc) + return None + + async def _send_file_with_revoke( + self, event: AstrMessageEvent, file_path: str, file_name: str + ) -> str | None: + """Send a file and return its message id when available.""" + return await self._send_with_revoke_support( + event, + [Comp.File(file=file_path, name=file_name)], + bool(event.get_group_id()), + event.get_group_id() or event.get_sender_id(), + ) + + async def _schedule_revoke( + self, event: AstrMessageEvent, message_id: str, delay: int + ) -> None: + """Schedule message revocation.""" + try: + scheduler = getattr(self, "_revoke_scheduler", None) + if scheduler: + await scheduler.schedule_revoke(event, message_id, delay) + except AttributeError: + self._log.debug("[send] revoke scheduler missing schedule_revoke") + + def _format_found_message( + self, count: int, revoke_delay: int | None = None + ) -> str | None: + """Format found message with optional revoke delay.""" + config = self._config + if config and hasattr(config, "format_found_message"): + return config.format_found_message(count, revoke_delay) + if revoke_delay and revoke_delay > 0: + return f"找到 {count} 张图,将在 {revoke_delay} 秒后撤回" + return f"找到 {count} 张图" + + def _send_failed_message(self) -> str: + config = self._config + if config and getattr(config, "msg_send_failed_text", None): + return str(config.msg_send_failed_text) + return "图片发送失败,请稍后再试。" + + def _log_send_summary( + self, + event: AstrMessageEvent, + payload: ImagePayload, + items: tuple[ImageItem, ...], + options: SendOptions, + ) -> None: + local_paths = sum(isinstance(item, Path) for item in items) + raw_bytes = sum(isinstance(item, bytes) for item in items) + image_components = sum(isinstance(item, Comp.Image) for item in items) + self._log.info( + "[send] payload ready: session=%s, platform=%s, count=%d, r18=%s, tags=%s, items=%d(paths=%d,bytes=%d,components=%d), config_mode=%s, html_strategy=%s, napcat_stream=%s", + self._session_label(event), + self._get_platform_name(event) or "unknown", + payload.count, + payload.r18, + ",".join(payload.tags) or "-", + len(items), + local_paths, + raw_bytes, + image_components, + options.send_mode, + options.html_card_strategy, + options.napcat_stream_mode, + ) + + def _session_label(self, event: AstrMessageEvent) -> str: + group_id = event.get_group_id() + sender_id = event.get_sender_id() + if group_id: + return f"group:{group_id}/user:{sender_id}" + return f"user:{sender_id}" diff --git a/src/infrastructure/sending/napcat_stream.py b/src/infrastructure/sending/napcat_stream.py new file mode 100644 index 0000000..a901b5a --- /dev/null +++ b/src/infrastructure/sending/napcat_stream.py @@ -0,0 +1,161 @@ +"""NapCat stream upload helpers for local image files.""" + +from __future__ import annotations + +import asyncio +import base64 +import hashlib +import math +import uuid +from pathlib import Path +from typing import Any + +from ...shared import get_logger + +logger = get_logger() + +DEFAULT_STREAM_CHUNK_SIZE = 64 * 1024 +DEFAULT_FILE_RETENTION_MS = 30 * 1000 + + +def _get_bot_client(event: Any) -> Any | None: + return getattr(event, "bot", None) or getattr(event, "_bot", None) + + +def _supports_call_action(bot_client: Any) -> bool: + return ( + hasattr(bot_client, "api") and hasattr(bot_client.api, "call_action") + ) or hasattr(bot_client, "call_action") + + +async def _call_action(bot_client: Any, action: str, params: dict[str, Any]) -> Any: + if hasattr(bot_client, "api") and hasattr(bot_client.api, "call_action"): + return await bot_client.api.call_action(action, **params) + if hasattr(bot_client, "call_action"): + return await bot_client.call_action(action, **params) + return None + + +def _extract_response_data(response: Any) -> dict[str, Any]: + if response is None: + raise RuntimeError("NapCat Stream API 未返回响应") + if not isinstance(response, dict): + raise RuntimeError(f"NapCat Stream API 返回格式异常: {type(response).__name__}") + + status = response.get("status") + if status == "failed": + message = response.get("message") or response.get("wording") or response + raise RuntimeError(f"NapCat Stream API 返回失败: {message}") + retcode = response.get("retcode") + if retcode not in (None, 0): + message = response.get("message") or response.get("wording") or response + raise RuntimeError(f"NapCat Stream API 返回错误: retcode={retcode}, {message}") + + data = response.get("data") + if isinstance(data, dict): + return data + return response + + +def _extract_uploaded_path(response: Any) -> str | None: + data = _extract_response_data(response) + for key in ("file_path", "file", "path"): + value = data.get(key) + if isinstance(value, str) and value.strip(): + return value.strip() + return None + + +def _calculate_sha256(file_path: Path) -> str: + hasher = hashlib.sha256() + with file_path.open("rb") as file: + while True: + chunk = file.read(DEFAULT_STREAM_CHUNK_SIZE) + if not chunk: + break + hasher.update(chunk) + return hasher.hexdigest() + + +async def upload_file_stream( + event: Any, + file_path: str | Path, + *, + chunk_size: int = DEFAULT_STREAM_CHUNK_SIZE, + file_retention_ms: int = DEFAULT_FILE_RETENTION_MS, +) -> str | None: + """Upload one local file through NapCat's stream action.""" + bot_client = _get_bot_client(event) + if not bot_client or not _supports_call_action(bot_client): + logger.debug("[send] NapCat stream unavailable: missing bot call_action support") + return None + + path = Path(file_path) + if not path.exists() or not path.is_file(): + logger.warning("[send] NapCat stream skipped: invalid file path=%s", path) + return None + + file_size = path.stat().st_size + if file_size <= 0: + logger.warning("[send] NapCat stream skipped: empty file path=%s", path) + return None + + chunk_size = max(1, int(chunk_size or DEFAULT_STREAM_CHUNK_SIZE)) + total_chunks = max(1, math.ceil(file_size / chunk_size)) + stream_id = str(uuid.uuid4()) + + try: + expected_sha256 = await asyncio.to_thread(_calculate_sha256, path) + current_size = path.stat().st_size + if current_size != file_size: + raise RuntimeError("文件在上传前大小发生变化") + + logger.info( + "[send] NapCat stream upload start: file=%s, size=%d, chunks=%d", + path, + file_size, + total_chunks, + ) + + with path.open("rb") as file: + for chunk_index in range(total_chunks): + chunk = file.read(chunk_size) + if not chunk: + raise RuntimeError("文件在上传过程中提前结束") + response = await _call_action( + bot_client, + "upload_file_stream", + { + "stream_id": stream_id, + "chunk_data": base64.b64encode(chunk).decode("utf-8"), + "chunk_index": chunk_index, + "total_chunks": total_chunks, + "file_size": file_size, + "expected_sha256": expected_sha256, + "filename": path.name, + "file_retention": file_retention_ms, + }, + ) + _extract_response_data(response) + + complete_response = await _call_action( + bot_client, + "upload_file_stream", + {"stream_id": stream_id, "is_complete": True}, + ) + uploaded = _extract_uploaded_path(complete_response) + logger.info( + "[send] NapCat stream upload completed: file=%s, remote=%s", + path, + uploaded, + ) + return uploaded + except asyncio.CancelledError: + raise + except Exception as exc: + logger.exception( + "[send] NapCat stream upload failed: file=%s, error=%s", + path, + exc, + ) + return None diff --git a/src/infrastructure/sending/send_filters.py b/src/infrastructure/sending/send_filters.py new file mode 100644 index 0000000..774dda9 --- /dev/null +++ b/src/infrastructure/sending/send_filters.py @@ -0,0 +1,194 @@ +"""Send filter chain for image sending. + +A simpler alternative to the strategy pattern - each filter tries to send +images and returns a result. The chain is configured based on send_mode. +""" + +from __future__ import annotations + +from collections.abc import Awaitable, Callable +from dataclasses import dataclass +from pathlib import Path +from typing import Any + +import astrbot.api.message_components as Comp +from astrbot.api.event import AstrMessageEvent + +from ...shared import get_logger + +logger = get_logger() + +SendFilter = Callable[[list[Path], AstrMessageEvent, Any], Awaitable["SendResult"]] + + +@dataclass +class SendResult: + """Result of a send filter attempt.""" + + success: bool + message: str | None = None + images_sent: int = 0 + error: str | None = None + + +async def direct_send_filter( + images: list[Path], event: AstrMessageEvent, config: Any +) -> SendResult: + """Direct send filter - send images directly in message chain. + + Args: + images: List of image file paths + event: Message event + config: Plugin config + + Returns: + SendResult indicating success or failure + """ + try: + for img in images: + chain = [Comp.Image.fromFileSystem(str(img))] + result = event.chain_result(chain) + await event.ctx.send_message(event.unified_msg_origin, result) + + logger.debug("[direct] Sent %d images", len(images)) + return SendResult(success=True, images_sent=len(images)) + except Exception as e: + logger.warning("[direct] Direct send failed: %s", e) + return SendResult(success=False, error=str(e)) + + +async def forward_send_filter( + images: list[Path], event: AstrMessageEvent, config: Any +) -> SendResult: + """Forward send filter - merge images into a single forward message. + + Args: + images: List of image file paths + event: Message event + config: Plugin config + + Returns: + SendResult indicating success or failure + """ + try: + nodes = [] + for img in images: + node = Comp.Node( + uin=event.get_self_id(), + name="色图", + content=[Comp.Image.fromFileSystem(str(img))], + ) + nodes.append(node) + + forward_chain = [Comp.Forward(node) for node in nodes] + result = event.chain_result(forward_chain) + await event.ctx.send_message(event.unified_msg_origin, result) + + logger.debug("[forward] Sent %d images as forward", len(images)) + return SendResult(success=True, images_sent=len(images)) + except Exception as e: + logger.warning("[forward] Forward send failed: %s", e) + return SendResult(success=False, error=str(e)) + + +async def html_card_filter( + images: list[Path], event: AstrMessageEvent, config: Any +) -> SendResult: + """HTML card filter - wrap images in HTML card to bypass censorship. + + Args: + images: List of image file paths + event: Message event + config: Plugin config + + Returns: + SendResult indicating success or failure + """ + try: + html_content = _build_html_card(images, config) + await event.send(html_content) + logger.debug("[html] Sent %d images as HTML card", len(images)) + return SendResult( + success=True, images_sent=len(images), message="HTML卡片发送成功" + ) + except Exception as e: + logger.warning("[html] HTML card send failed: %s", e) + return SendResult(success=False, error=str(e)) + + +def _build_html_card(images: list[Path], config: Any) -> str: + """Build HTML card with images. + + Args: + images: List of image file paths + config: Plugin config + + Returns: + HTML content as string + """ + opts = config.html_card if config else None + padding = opts.card_padding if opts else 10 + + img_tags = [] + for img in images: + uri = img.resolve().as_uri() + img_tags.append( + f'' + ) + + gap_img = '' + + content = gap_img.join(img_tags) + return f'{content}' + + +async def send_with_filter_chain( + images: list[Path], + event: AstrMessageEvent, + config: Any, +) -> str: + """Send images using filter chain based on config. + + Args: + images: List of image file paths + event: Message event + config: Plugin config + + Returns: + Result message string + """ + send_mode = config.delivery.send_mode + if send_mode: + send_mode_str = ( + send_mode.value if hasattr(send_mode, "value") else str(send_mode) + ) + else: + send_mode_str = "auto" + + # Build filter chain based on send mode + if send_mode_str == "forward": + chain = [forward_send_filter, direct_send_filter, html_card_filter] + elif send_mode_str == "image": + chain = [direct_send_filter, html_card_filter] + else: # auto or unknown + chain = [direct_send_filter, html_card_filter] + + # Try filters in order + for filter_func in chain: + result = await filter_func(images, event, config) + if result.success: + return result.message or "发送成功" + + # All filters failed + fail_msg = config.msg_send_failed_text if config else None + return fail_msg or "图片发送失败" + + +__all__ = [ + "SendResult", + "SendFilter", + "direct_send_filter", + "forward_send_filter", + "html_card_filter", + "send_with_filter_chain", +] diff --git a/src/infrastructure/sending/send_strategies.py b/src/infrastructure/sending/send_strategies.py new file mode 100644 index 0000000..1490462 --- /dev/null +++ b/src/infrastructure/sending/send_strategies.py @@ -0,0 +1,357 @@ +"""Send strategy pattern for image delivery. + +Defines the strategy interface and implementations for different send modes: +- Direct send: send images directly in message chain +- Forward send: use merge forward (OneBot v11 feature) +- HTML card fallback: wrap images in HTML cards to bypass censorship +""" + +from __future__ import annotations + +from abc import ABC, abstractmethod +from pathlib import Path +from typing import Any + +import astrbot.api.message_components as Comp +from astrbot.api.event import AstrMessageEvent + +from ...shared import get_logger + +logger = get_logger() + + +class SendStrategy(ABC): + """Abstract base class for send strategies.""" + + @abstractmethod + async def send( + self, + event: AstrMessageEvent, + chain: list[Any], + auto_revoke: bool = False, + ) -> bool: + """Send message chain using this strategy. + + Args: + event: Message event + chain: Message chain (list of components) + auto_revoke: Whether to schedule auto-revoke after send + + Returns: + True if send succeeded, False otherwise + """ + ... + + +class DirectSendStrategy(SendStrategy): + """Direct send strategy — sends images in a single message chain.""" + + def __init__(self, plugin_context: Any) -> None: + """Initialize direct send strategy. + + Args: + plugin_context: Plugin context for sending messages + """ + self._context = plugin_context + + async def send( + self, + event: AstrMessageEvent, + chain: list[Any], + auto_revoke: bool = False, + ) -> bool: + """Send images directly in message chain. + + Args: + event: Message event + chain: Message chain + auto_revoke: Not supported for direct send (ignored) + + Returns: + True if send succeeded + """ + try: + send_result = await self._send_message(event, chain) + + platform_name = getattr(event.platform, "name", "unknown") + + # Only strict-check return value for OneBot platforms + if send_result is None and platform_name == "aiocqhttp": + logger.warning( + "[send] direct send returned None: platform=%s, chain=%d", + platform_name, + len(chain), + ) + return False + + logger.info( + "[send] direct send completed: platform=%s, chain=%d", + platform_name, + len(chain), + ) + return True + except TimeoutError: + logger.warning( + "[send] direct send timed out: platform=%s, chain=%d", + getattr(event.platform, "name", "unknown"), + len(chain), + ) + return False + except Exception as exc: + logger.exception( + "[send] direct send failed: platform=%s, chain=%d, error=%s", + getattr(event.platform, "name", "unknown"), + len(chain), + exc, + ) + return False + + async def _send_message(self, event: AstrMessageEvent, chain: list[Any]) -> Any: + if self._requires_onebot_passthrough(event, chain): + send_result = await self._send_onebot_image_chain(event, chain) + if send_result is not None: + return send_result + result = event.chain_result(chain) + return await self._context.send_message(event.unified_msg_origin, result) + + def _requires_onebot_passthrough( + self, event: AstrMessageEvent, chain: list[Any] + ) -> bool: + platform_name = getattr(getattr(event, "platform", None), "name", "") or "" + return "aiocqhttp" in platform_name.lower() and any( + self._is_onebot_image_ref(comp) for comp in chain if isinstance(comp, Comp.Image) + ) + + def _is_onebot_image_ref(self, comp: Comp.Image) -> bool: + file_value = getattr(comp, "file", None) + return isinstance(file_value, str) and "://" in file_value and not ( + file_value.startswith("file:///") + or file_value.startswith("http://") + or file_value.startswith("https://") + or file_value.startswith("base64://") + ) + + async def _send_onebot_image_chain( + self, event: AstrMessageEvent, chain: list[Any] + ) -> Any | None: + bot = getattr(event, "bot", None) + if bot is None: + return None + + message: list[dict[str, Any]] = [] + for comp in chain: + if isinstance(comp, Comp.Image): + message.append( + { + "type": "image", + "data": {"file": str(getattr(comp, "file", ""))}, + } + ) + else: + message.append(comp.toDict()) + + is_group = bool(event.get_group_id()) + session_id = event.get_group_id() if is_group else event.get_sender_id() + if not session_id or not str(session_id).isdigit(): + logger.debug( + "[send] skip OneBot passthrough: invalid session_id=%s", + session_id, + ) + return None + + if is_group: + return await bot.send_group_msg(group_id=int(session_id), message=message) + return await bot.send_private_msg(user_id=int(session_id), message=message) + + +class ForwardSendStrategy(SendStrategy): + """Forward send strategy — uses merge forward (OneBot v11).""" + + def __init__(self, plugin_context: Any) -> None: + """Initialize forward send strategy. + + Args: + plugin_context: Plugin context for sending messages + """ + self._context = plugin_context + + async def send( + self, + event: AstrMessageEvent, + chain: list[Any], + auto_revoke: bool = False, + ) -> bool: + """Send images using merge forward. + + Args: + event: Message event + chain: Message chain (list of image components) + auto_revoke: Not supported (handled by caller) + + Returns: + True if send succeeded + """ + import time + + build_start = time.monotonic() + nodes = [] + for comp in chain: + if isinstance(comp, Comp.Image): + node = Comp.Node( + uin=event.get_self_id(), + name="色图", + content=[comp], + ) + nodes.append(node) + + build_end = time.monotonic() + logger.debug( + "[forward] built nodes: count=%d, elapsed=%.3fs", + len(nodes), + build_end - build_start, + ) + + return await self._send_nodes_direct(event, nodes) + + async def _send_nodes_direct( + self, event: AstrMessageEvent, nodes: list[Comp.Node] + ) -> bool: + """Send forward nodes directly. + + Args: + event: Message event + nodes: Forward nodes + + Returns: + True if send succeeded + """ + try: + forward_chain = [Comp.Forward(node) for node in nodes] + result = event.chain_result(forward_chain) + await self._context.send_message(event.unified_msg_origin, result) + + logger.info("[forward] send completed: nodes=%d", len(nodes)) + return True + except Exception as exc: + logger.exception( + "[forward] send failed: nodes=%d, error=%s", + len(nodes), + exc, + ) + return False + + +class HtmlCardFallbackStrategy(SendStrategy): + """HTML card fallback strategy — wraps images in HTML cards.""" + + def __init__( + self, + plugin_context: Any, + html_renderer: Any, + style_options: dict[str, int] | None = None, + ) -> None: + """Initialize HTML card fallback strategy. + + Args: + plugin_context: Plugin context + html_renderer: HtmlCardRenderer instance + style_options: Style options (card_padding, card_gap) + """ + self._context = plugin_context + self._renderer = html_renderer + self._style_options = style_options or {} + + async def send( + self, + event: AstrMessageEvent, + chain: list[Any], + auto_revoke: bool = False, + ) -> bool: + """Send images wrapped in HTML cards. + + Args: + event: Message event + chain: Message chain (list of image components) + auto_revoke: Not supported (ignored) + + Returns: + True if send succeeded + """ + if not self._renderer: + logger.warning("[html_fallback] renderer unavailable") + return False + + images: list[bytes] = [] + for comp in chain: + if not isinstance(comp, Comp.Image): + continue + if isinstance(comp.file, bytes): + images.append(comp.file) + continue + + path_value = getattr(comp, "path", None) or getattr(comp, "file", None) + if isinstance(path_value, str): + candidate = ( + Path(path_value[8:]) + if path_value.startswith("file:///") + else Path(path_value) + ) + if candidate.exists(): + try: + import asyncio + + data = await asyncio.to_thread(candidate.read_bytes) + images.append(data) + except OSError: + logger.warning( + "[html_fallback] failed to read image path=%s", + candidate, + ) + + if not images: + logger.warning("[html_fallback] no images available after materialization") + return False + + rendered_images = [] + for i, img_data in enumerate(images): + logger.debug("[html_fallback] Rendering image %d/%d", i + 1, len(images)) + rendered = await self._renderer.render_single_image( + context=self._context, + image=img_data, + style_options=self._style_options, + ) + if rendered: + rendered_images.append(rendered) + else: + logger.warning("[html_fallback] failed to render image index=%d", i + 1) + + if not rendered_images: + logger.warning("[html_fallback] renderer produced no images") + return False + + # Send rendered images + chain = [Comp.Image.fromBytes(img) for img in rendered_images] + logger.info("[html_fallback] rendered images: count=%d", len(rendered_images)) + return await DirectSendStrategy(self._context).send(event, chain, False) + + +def resolve_send_mode( + send_mode: str, + image_count: int, + supports_forward: bool = True, +) -> str: + """Resolve effective send mode. + + Args: + send_mode: Configured send mode (image/forward/auto) + image_count: Number of images to send + supports_forward: Whether platform supports forward + + Returns: + Effective send mode (image or forward) + """ + if send_mode == "auto": + return "forward" if image_count > 1 else "image" + if send_mode == "forward" and not supports_forward: + return "image" + return send_mode diff --git a/src/shared/__init__.py b/src/shared/__init__.py new file mode 100644 index 0000000..f4036e3 --- /dev/null +++ b/src/shared/__init__.py @@ -0,0 +1,7 @@ +"""Shared low-level helpers and configuration models.""" + +from __future__ import annotations + +from .logging import PrefixedLogger, clear_logger, get_logger + +__all__ = ["PrefixedLogger", "clear_logger", "get_logger"] diff --git a/src/shared/config/__init__.py b/src/shared/config/__init__.py new file mode 100644 index 0000000..a13b1b6 --- /dev/null +++ b/src/shared/config/__init__.py @@ -0,0 +1,49 @@ +"""Shared configuration models.""" + +from __future__ import annotations + +from .models import ( + AccessControlModeStr, + ApiSectionConfig, + ApiTypeStr, + AtriConfig, + CacheConfig, + ContentModeStr, + CustomApiConfig, + DeliveryConfig, + FortuneConfig, + HtmlCardConfig, + HtmlCardStrategyStr, + LoliconConfig, + MessagesConfig, + MultiApiStrategyStr, + NapcatStreamModeStr, + PerformanceConfig, + ProviderConfig, + SendModeStr, + SetuGeneralConfig, + SetuPluginConfig, +) + +__all__ = [ + "AccessControlModeStr", + "ApiSectionConfig", + "ApiTypeStr", + "AtriConfig", + "CacheConfig", + "ContentModeStr", + "CustomApiConfig", + "DeliveryConfig", + "FortuneConfig", + "HtmlCardConfig", + "HtmlCardStrategyStr", + "LoliconConfig", + "MessagesConfig", + "MultiApiStrategyStr", + "NapcatStreamModeStr", + "PerformanceConfig", + "ProviderConfig", + "SendModeStr", + "SetuGeneralConfig", + "SetuPluginConfig", +] diff --git a/src/shared/config/models.py b/src/shared/config/models.py new file mode 100644 index 0000000..66b48b0 --- /dev/null +++ b/src/shared/config/models.py @@ -0,0 +1,595 @@ +"""Pydantic v2 configuration models for Setu plugin. + +Replaces the ConfigBase + mixin chain with type-safe, validated models. +Each section mirrors the _conf_schema.json structure for WebUI compatibility. +""" + +from __future__ import annotations + +from enum import Enum +from typing import Any + +from pydantic import BaseModel, Field, field_validator + + +class ImageSize(str, Enum): + """Valid image sizes for Lolicon/Atri APIs.""" + + ORIGINAL = "original" + REGULAR = "regular" + SMALL = "small" + THUMB = "thumb" + MINI = "mini" + + +class AspectRatio(str, Enum): + """Valid aspect ratios for filtering.""" + + HORIZONTAL = "horizontal" + VERTICAL = "vertical" + SQUARE = "square" + + +class ContentModeStr(str, Enum): + """Content rating modes.""" + + SFW = "sfw" + R18 = "r18" + MIX = "mix" + + +class ApiTypeStr(str, Enum): + """API provider types.""" + + LOLICON = "lolicon" + ATRI = "atri" + SEXNYAN = "sexnyan" + CUSTOM = "custom" + ALL = "all" + + +class MultiApiStrategyStr(str, Enum): + """Multi-API strategy types.""" + + ROUND_ROBIN = "round_robin" + RANDOM = "random" + FAILOVER = "failover" + + +class SendModeStr(str, Enum): + """Image send modes.""" + + IMAGE = "image" + FORWARD = "forward" + AUTO = "auto" + + +class NapcatStreamModeStr(str, Enum): + """NapCat stream upload modes.""" + + DISABLED = "disabled" + FALLBACK = "fallback" + ALWAYS = "always" + + +class HtmlCardStrategyStr(str, Enum): + """HTML card strategies.""" + + NEVER = "never" + FALLBACK = "fallback" + ALWAYS = "always" + + +class AccessControlModeStr(str, Enum): + """Access control modes.""" + + NONE = "none" + BLACKLIST = "blacklist" + WHITELIST = "whitelist" + + +class ProviderConfig(BaseModel): + """Configuration for a single API provider (Lolicon or Atri).""" + + image_size: ImageSize = ImageSize.ORIGINAL + proxy: str = "i.pixiv.re" + aspect_ratio: AspectRatio | None = None + uid: list[int] = Field(default_factory=list) + keyword: str = "" + exclude_ai: bool = True + + @field_validator("aspect_ratio", mode="before") + @classmethod + def normalize_empty_aspect_ratio(cls, value: Any) -> Any: + """Treat empty-string aspect ratio from schema/config files as None.""" + if value == "": + return None + return value + + +class LoliconConfig(ProviderConfig): + """Lolicon API specific configuration.""" + + pass + + +class AtriConfig(ProviderConfig): + """Atri API specific configuration.""" + + pass + + +class CustomApiConfig(BaseModel): + """Custom API configuration.""" + + name: str = "My custom API" + url: str = "" + method: str = "GET" + timeout: int = 30 + parser_type: str = "auto" + json_path: str = "" + + +class SetuGeneralConfig(BaseModel): + """Setu general configuration.""" + + api_type: ApiTypeStr = ApiTypeStr.LOLICON + multi_api_strategy: MultiApiStrategyStr = MultiApiStrategyStr.ROUND_ROBIN + content_mode: ContentModeStr = ContentModeStr.SFW + max_count: int = Field(default=10, ge=1, le=10) + max_replenish_rounds: int = Field(default=3, ge=1, le=3) + tag_alias: str = "" + + +class DeliveryConfig(BaseModel): + """Image delivery configuration.""" + + send_mode: SendModeStr = SendModeStr.IMAGE + r18_docx_mode: bool = True + auto_handle_send_failure: bool = True + auto_revoke_r18: bool = False + auto_revoke_delay: int = Field(default=30, ge=5, le=300) + napcat_stream_mode: NapcatStreamModeStr = NapcatStreamModeStr.FALLBACK + + +class HtmlCardConfig(BaseModel): + """HTML card wrapping configuration.""" + + strategy: HtmlCardStrategyStr = HtmlCardStrategyStr.FALLBACK + mode: str = "single" + card_padding: int = Field(default=6, ge=0, le=30) + card_gap: int = Field(default=6, ge=0, le=30) + + +class FortuneConfig(BaseModel): + """Fortune (Today's Luck) configuration.""" + + enabled: bool = True + api_type: str = "inherit" + tags: str = "" + content_mode: ContentModeStr = ContentModeStr.SFW + allow_user_refresh: bool = False + auto_refresh: bool = True + + +class CacheConfig(BaseModel): + """Disk cache used before adapter-level image sending.""" + + enabled: bool = True + ttl_hours: int = Field(default=2, ge=1, le=168) + max_items: int = Field(default=200, ge=1, le=1000) + cleanup_on_start: bool = True + + +class PerformanceConfig(BaseModel): + """Performance tuning configuration.""" + + enable_range_download: bool = False + range_segments: int = Field(default=3, ge=2, le=6) + range_download_threshold: int = Field(default=512, ge=256, le=2048) + download_concurrent_limit: int = Field(default=10, ge=1, le=50) + download_timeout_seconds: int = Field(default=30, ge=5, le=120) + + +class MessagesFetchingConfig(BaseModel): + """Fetching message configuration.""" + + enabled: bool = True + text: str = "正在获取图片,请稍候..." + + +class MessagesFoundConfig(BaseModel): + """Found message configuration.""" + + enabled: bool = True + text: str = "找到 {count} 张符合要求的图片~" + + +class MessagesSendFailedConfig(BaseModel): + """Send failed message configuration.""" + + text: str = "图片发送失败,请稍后再试。" + + +class MessagesConfig(BaseModel): + """User-facing message configuration.""" + + fetching: MessagesFetchingConfig = Field(default_factory=MessagesFetchingConfig) + found: MessagesFoundConfig = Field(default_factory=MessagesFoundConfig) + send_failed: MessagesSendFailedConfig = Field( + default_factory=MessagesSendFailedConfig + ) + + +class SafetyConfig(BaseModel): + """Safety and access control configuration.""" + + setu_user_access_control_mode: AccessControlModeStr = AccessControlModeStr.NONE + setu_group_access_control_mode: AccessControlModeStr = AccessControlModeStr.NONE + setu_blocked_users: list[str] = Field(default_factory=list) + setu_whitelist_users: list[str] = Field(default_factory=list) + setu_blocked_groups: list[str] = Field(default_factory=list) + setu_whitelist_groups: list[str] = Field(default_factory=list) + fortune_user_access_control_mode: AccessControlModeStr = AccessControlModeStr.NONE + fortune_group_access_control_mode: AccessControlModeStr = AccessControlModeStr.NONE + fortune_blocked_users: list[str] = Field(default_factory=list) + fortune_whitelist_users: list[str] = Field(default_factory=list) + fortune_blocked_groups: list[str] = Field(default_factory=list) + fortune_whitelist_groups: list[str] = Field(default_factory=list) + + +class SessionTemplateItem(BaseModel): + """Session configuration template item.""" + + session_id: str = "" + session_type: str = "group" + content_mode: str = "" + r18_docx_mode: str = "" + auto_revoke_r18: str = "" + send_mode: str = "" + + +class FortuneSessionTemplateItem(BaseModel): + """Fortune session configuration template item.""" + + session_id: str = "" + session_type: str = "group" + tags: str = "" + content_mode: str = "" + + +class ApiSectionConfig(BaseModel): + """API section configuration.""" + + lolicon: LoliconConfig = Field(default_factory=LoliconConfig) + atri: AtriConfig = Field(default_factory=AtriConfig) + custom_api_configs: list[CustomApiConfig] = Field(default_factory=list) + + +class SetuPluginConfig(BaseModel): + """Root Pydantic model for Setu plugin configuration. + + This replaces the ConfigBase + mixin chain with a single validated model. + The structure mirrors _conf_schema.json for WebUI compatibility. + + The model can be instantiated directly from AstrBotConfig dict: + config = SetuPluginConfig(**astrbot_config) + """ + + setu_general: SetuGeneralConfig = Field(default_factory=SetuGeneralConfig) + delivery: DeliveryConfig = Field(default_factory=DeliveryConfig) + html_card: HtmlCardConfig = Field(default_factory=HtmlCardConfig) + fortune: FortuneConfig = Field(default_factory=FortuneConfig) + cache: CacheConfig = Field(default_factory=CacheConfig) + api: ApiSectionConfig = Field(default_factory=ApiSectionConfig) + messages: MessagesConfig = Field(default_factory=MessagesConfig) + safety: SafetyConfig = Field(default_factory=SafetyConfig) + performance: PerformanceConfig = Field(default_factory=PerformanceConfig) + session_configs: list[SessionTemplateItem] = Field(default_factory=list) + fortune_session_configs: list[FortuneSessionTemplateItem] = Field( + default_factory=list + ) + + @field_validator("session_configs") + @classmethod + def validate_session_configs( + cls, v: list[SessionTemplateItem] + ) -> list[SessionTemplateItem]: + """Validate session configurations.""" + for item in v: + if item.session_type not in ("group", "private"): + raise ValueError(f"Invalid session_type: {item.session_type}") + return v + + @field_validator("fortune_session_configs") + @classmethod + def validate_fortune_session_configs( + cls, v: list[FortuneSessionTemplateItem] + ) -> list[FortuneSessionTemplateItem]: + """Validate fortune session configurations.""" + for item in v: + if item.session_type not in ("group", "private"): + raise ValueError(f"Invalid session_type: {item.session_type}") + return v + + # Convenience properties for backward compatibility + @property + def api_type(self) -> str: + """Get API type.""" + return self.setu_general.api_type.value + + @property + def multi_api_strategy(self) -> str: + """Get multi-API strategy.""" + return self.setu_general.multi_api_strategy.value + + @property + def content_mode(self) -> str: + """Get content mode.""" + return self.setu_general.content_mode.value + + @property + def max_count(self) -> int: + """Get max count.""" + return self.setu_general.max_count + + @property + def max_replenish_rounds(self) -> int: + """Get max replenish rounds.""" + return self.setu_general.max_replenish_rounds + + @property + def tag_alias(self) -> str: + """Get tag alias string.""" + return self.setu_general.tag_alias + + @property + def send_mode(self) -> str: + """Get send mode.""" + return self.delivery.send_mode.value + + @property + def r18_docx_mode(self) -> bool: + """Get R18 DOCX mode.""" + return self.delivery.r18_docx_mode + + @property + def auto_revoke_r18(self) -> bool: + """Get auto-revoke R18.""" + return self.delivery.auto_revoke_r18 + + @property + def auto_revoke_delay(self) -> int: + """Get auto-revoke delay.""" + return self.delivery.auto_revoke_delay + + @property + def napcat_stream_mode(self) -> str: + """Get NapCat stream upload mode.""" + return self.delivery.napcat_stream_mode.value + + @property + def html_card_strategy(self) -> str: + """Get HTML card strategy.""" + return self.html_card.strategy.value + + @property + def html_card_padding(self) -> int: + """Get HTML card padding.""" + return self.html_card.card_padding + + @property + def html_card_gap(self) -> int: + """Get HTML card gap.""" + return self.html_card.card_gap + + @property + def cache_enabled(self) -> bool: + """Get cache enabled.""" + return self.cache.enabled + + @property + def cache_ttl_hours(self) -> int: + """Get cache TTL hours.""" + return self.cache.ttl_hours + + @property + def cache_max_items(self) -> int: + """Get cache max items.""" + return self.cache.max_items + + @property + def cache_cleanup_on_start(self) -> bool: + """Get cache cleanup on start.""" + return self.cache.cleanup_on_start + + @property + def download_concurrent_limit(self) -> int: + """Get download concurrent limit.""" + return self.performance.download_concurrent_limit + + @property + def download_timeout_seconds(self) -> int: + """Get download timeout seconds.""" + return self.performance.download_timeout_seconds + + @property + def enable_range_download(self) -> bool: + """Get enable range download.""" + return self.performance.enable_range_download + + @property + def range_segments(self) -> int: + """Get range segments.""" + return self.performance.range_segments + + @property + def range_threshold(self) -> int: + """Get range threshold.""" + return self.performance.range_download_threshold + + @property + def exclude_ai(self) -> bool: + """Get exclude AI.""" + return self.api.lolicon.exclude_ai + + @property + def image_size(self) -> str: + """Get image size.""" + return self.api.lolicon.image_size.value + + @property + def proxy(self) -> str: + """Get proxy.""" + return self.api.lolicon.proxy + + @property + def aspect_ratio(self) -> str: + """Get aspect ratio.""" + return ( + self.api.lolicon.aspect_ratio.value if self.api.lolicon.aspect_ratio else "" + ) + + @property + def uid(self) -> list[int]: + """Get UID list.""" + return self.api.lolicon.uid + + @property + def keyword(self) -> str: + """Get keyword.""" + return self.api.lolicon.keyword + + @property + def atri_image_size(self) -> str: + """Get Atri image size.""" + return self.api.atri.image_size.value + + @property + def atri_proxy(self) -> str: + """Get Atri proxy.""" + return self.api.atri.proxy + + @property + def atri_aspect_ratio(self) -> str: + """Get Atri aspect ratio.""" + return self.api.atri.aspect_ratio.value if self.api.atri.aspect_ratio else "" + + @property + def atri_uid(self) -> list[int]: + """Get Atri UID list.""" + return self.api.atri.uid + + @property + def atri_keyword(self) -> str: + """Get Atri keyword.""" + return self.api.atri.keyword + + @property + def atri_exclude_ai(self) -> bool: + """Get Atri exclude AI.""" + return self.api.atri.exclude_ai + + @property + def fortune_api_type(self) -> str: + """Get fortune API type.""" + return self.fortune.api_type + + @property + def custom_api(self) -> dict[str, Any]: + """Get custom API config.""" + if self.api.custom_api_configs: + cfg = self.api.custom_api_configs[0] + return { + "url": cfg.url, + "method": cfg.method, + "timeout": cfg.timeout, + } + return {"url": "", "method": "GET", "timeout": 30} + + @property + def api_response_parser(self) -> dict[str, Any]: + """Get API response parser config.""" + if self.api.custom_api_configs: + cfg = self.api.custom_api_configs[0] + return { + "type": cfg.parser_type, + "json_path": cfg.json_path, + } + return {"type": "auto", "json_path": ""} + + @property + def custom_api_configs(self) -> list[dict[str, Any]]: + """Get custom API configs.""" + return [cfg.model_dump() for cfg in self.api.custom_api_configs] + + def get_custom_api_config(self, name: str | None = None) -> dict[str, Any] | None: + """Get custom API config by name.""" + configs = self.api.custom_api_configs + if not configs: + return None + if name: + for cfg in configs: + if cfg.name == name: + return cfg.model_dump() + return None + return configs[0].model_dump() + + @property + def msg_fetching_enabled(self) -> bool: + """Get fetching message enabled.""" + return self.messages.fetching.enabled + + @property + def msg_fetching_text(self) -> str: + """Get fetching message text.""" + return self.messages.fetching.text + + @property + def msg_found_enabled(self) -> bool: + """Get found message enabled.""" + return self.messages.found.enabled + + @property + def msg_found_text(self) -> str: + """Get found message text.""" + return self.messages.found.text + + @property + def msg_send_failed_text(self) -> str: + """Get send failed message text.""" + return self.messages.send_failed.text + + @property + def setu_user_access_control_mode(self) -> str: + """Get Setu user access control mode.""" + return self.safety.setu_user_access_control_mode.value + + @property + def setu_group_access_control_mode(self) -> str: + """Get Setu group access control mode.""" + return self.safety.setu_group_access_control_mode.value + + @property + def fortune_user_access_control_mode(self) -> str: + """Get Fortune user access control mode.""" + return self.safety.fortune_user_access_control_mode.value + + @property + def fortune_group_access_control_mode(self) -> str: + """Get Fortune group access control mode.""" + return self.safety.fortune_group_access_control_mode.value + + def format_found_message(self, count: int, revoke_delay: int | None = None) -> str: + """Format found message with placeholders.""" + result = self.msg_found_text.replace("{count}", str(count)) + if revoke_delay is not None: + result = result.replace("{revoke_delay}", str(revoke_delay)) + return result + + def get_effective_fortune_api_type(self) -> str: + """Get effective fortune API type.""" + fortune_api = self.fortune.api_type + if fortune_api == "inherit": + return self.api_type + return fortune_api diff --git a/src/shared/logging.py b/src/shared/logging.py new file mode 100644 index 0000000..43cf582 --- /dev/null +++ b/src/shared/logging.py @@ -0,0 +1,86 @@ +"""AstrBot Setu Plugin 日志包装器 + +提供带插件前缀的日志记录器,避免直接导出单例实例。 + +使用示例: + from .logger import get_logger + + logger = get_logger() + logger.info("消息") +""" + +from __future__ import annotations + +from typing import Any + +from astrbot.api import logger as _astrbot_logger + + +class PrefixedLogger: + """AstrBot 日志包装器,添加插件前缀并正确显示调用位置。""" + + PREFIX = "[setu] " + CALLER_STACKLEVEL = 2 + + def _add_prefix(self, msg: object) -> str: + """为消息添加前缀。""" + return self.PREFIX + str(msg) + + def _with_stacklevel(self, kwargs: dict[str, Any]) -> dict[str, Any]: + """确保 stacklevel 参数正确传递以显示真实调用位置。""" + copied = dict(kwargs) + if "stacklevel" not in copied: + copied["stacklevel"] = self.CALLER_STACKLEVEL + return copied + + def debug(self, msg: object, *args: Any, **kwargs: Any) -> None: + _astrbot_logger.debug( + self._add_prefix(msg), *args, **self._with_stacklevel(kwargs) + ) + + def info(self, msg: object, *args: Any, **kwargs: Any) -> None: + _astrbot_logger.info( + self._add_prefix(msg), *args, **self._with_stacklevel(kwargs) + ) + + def warning(self, msg: object, *args: Any, **kwargs: Any) -> None: + _astrbot_logger.warning( + self._add_prefix(msg), *args, **self._with_stacklevel(kwargs) + ) + + def error(self, msg: object, *args: Any, **kwargs: Any) -> None: + _astrbot_logger.error( + self._add_prefix(msg), *args, **self._with_stacklevel(kwargs) + ) + + def exception(self, msg: object, *args: Any, **kwargs: Any) -> None: + _astrbot_logger.exception( + self._add_prefix(msg), *args, **self._with_stacklevel(kwargs) + ) + + def critical(self, msg: object, *args: Any, **kwargs: Any) -> None: + _astrbot_logger.critical( + self._add_prefix(msg), *args, **self._with_stacklevel(kwargs) + ) + + +# 内部缓存,禁止直接导出 +_logger_instance: PrefixedLogger | None = None + + +def get_logger() -> PrefixedLogger: + """获取插件日志记录器单例。 + + Returns: + PrefixedLogger 实例 + """ + global _logger_instance + if _logger_instance is None: + _logger_instance = PrefixedLogger() + return _logger_instance + + +def clear_logger() -> None: + """清除日志记录器单例(用于测试)。""" + global _logger_instance + _logger_instance = None diff --git a/src/shared/send_cache.py b/src/shared/send_cache.py new file mode 100644 index 0000000..64da45f --- /dev/null +++ b/src/shared/send_cache.py @@ -0,0 +1,210 @@ +"""Disk-backed send cache for image delivery.""" + +from __future__ import annotations + +import asyncio +import hashlib +import mimetypes +import time +from dataclasses import dataclass +from pathlib import Path +from urllib.parse import urlparse + +from .logging import get_logger + +logger = get_logger() + +_IMAGE_SUFFIXES = { + "image/jpeg": ".jpg", + "image/jpg": ".jpg", + "image/png": ".png", + "image/gif": ".gif", + "image/webp": ".webp", + "image/bmp": ".bmp", +} + + +def guess_file_suffix(source: str, content_type: str | None = None) -> str: + """Guess a file suffix for an image source.""" + normalized_type = (content_type or "").split(";", 1)[0].strip().lower() + if normalized_type in _IMAGE_SUFFIXES: + return _IMAGE_SUFFIXES[normalized_type] + + parsed = urlparse(source) + guessed = Path(parsed.path).suffix.lower() + if guessed in {".jpg", ".jpeg", ".png", ".gif", ".webp", ".bmp"}: + return ".jpg" if guessed == ".jpeg" else guessed + + fallback = mimetypes.guess_extension(normalized_type) if normalized_type else "" + return fallback or ".img" + + +@dataclass(frozen=True) +class SendCacheWrite: + """Reserved file paths for one cache write.""" + + temp_path: Path + final_path: Path + + +class DiskSendCache: + """Small URL-addressed disk cache used before platform image sending.""" + + def __init__( + self, + root: Path, + *, + enabled: bool = True, + ttl_hours: int = 2, + max_items: int = 200, + ) -> None: + self.root = root + self.enabled = enabled + self.ttl_seconds = max(1, int(ttl_hours)) * 60 * 60 + self.max_items = max(1, int(max_items)) + self._lock = asyncio.Lock() + + def _key(self, source: str) -> str: + return hashlib.sha256(source.encode("utf-8")).hexdigest() + + async def get(self, source: str) -> Path | None: + """Return a fresh cached file for the source URL, if present.""" + if not self.enabled: + return None + + key = self._key(source) + now = time.time() + + def find() -> Path | None: + if not self.root.exists(): + return None + for path in self.root.glob(f"{key}.*"): + if path.suffix == ".part" or not path.is_file(): + continue + if now - path.stat().st_mtime > self.ttl_seconds: + continue + return path + return None + + return await asyncio.to_thread(find) + + async def reserve( + self, source: str, content_type: str | None = None + ) -> SendCacheWrite: + """Reserve a temp path and final path for a source URL.""" + suffix = guess_file_suffix(source, content_type) + key = self._key(source) + final_path = self.root / f"{key}{suffix}" + temp_path = self.root / f"{key}.{time.monotonic_ns()}{suffix}.part" + + await asyncio.to_thread(self.root.mkdir, parents=True, exist_ok=True) + return SendCacheWrite(temp_path=temp_path, final_path=final_path) + + async def commit(self, write: SendCacheWrite) -> Path: + """Atomically promote a temp cache file to its final path.""" + + def replace() -> None: + write.temp_path.replace(write.final_path) + write.final_path.touch() + + async with self._lock: + await asyncio.to_thread(replace) + return write.final_path + + async def discard(self, write: SendCacheWrite) -> None: + """Delete a failed temp cache file.""" + + def unlink() -> None: + if write.temp_path.exists(): + write.temp_path.unlink() + + await asyncio.to_thread(unlink) + + async def cleanup(self) -> int: + """Delete expired and overflow cache files.""" + now = time.time() + + def clean() -> int: + if not self.root.exists(): + return 0 + + removed = 0 + files: list[Path] = [] + for path in self.root.iterdir(): + if not path.is_file(): + continue + try: + age = now - path.stat().st_mtime + except OSError: + continue + if path.suffix == ".part" and age > 3600: + path.unlink(missing_ok=True) + removed += 1 + continue + if age > self.ttl_seconds: + path.unlink(missing_ok=True) + removed += 1 + continue + files.append(path) + + files.sort(key=lambda p: p.stat().st_mtime, reverse=True) + for path in files[self.max_items :]: + path.unlink(missing_ok=True) + removed += 1 + return removed + + removed = await asyncio.to_thread(clean) + if removed: + logger.debug("[send_cache] cleaned %d cached files", removed) + return removed + + +_send_cache: DiskSendCache | None = None + + +async def init_send_cache( + data_dir: Path, + *, + enabled: bool, + ttl_hours: int, + max_items: int, + cleanup_on_start: bool, +) -> DiskSendCache: + """Initialize the process-wide send cache.""" + global _send_cache + _send_cache = DiskSendCache( + data_dir / "send_cache", + enabled=enabled, + ttl_hours=ttl_hours, + max_items=max_items, + ) + if cleanup_on_start: + await _send_cache.cleanup() + return _send_cache + + +def get_send_cache() -> DiskSendCache | None: + """Return the configured send cache, if initialized.""" + return _send_cache + + +def clear_send_cache() -> None: + """Clear the process-wide send cache reference.""" + global _send_cache + _send_cache = None + + +def schedule_send_cache_cleanup(delay_seconds: float = 300.0) -> None: + """Schedule a best-effort cache cleanup after current sends settle.""" + cache = _send_cache + if cache is None: + return + + async def cleanup_later() -> None: + await asyncio.sleep(max(0.0, delay_seconds)) + await cache.cleanup() + + try: + asyncio.create_task(cleanup_later()) + except RuntimeError: + logger.debug("[send_cache] no running loop for delayed cleanup") diff --git a/templates/fortune.html b/templates/fortune.html deleted file mode 100644 index 1023ee3..0000000 --- a/templates/fortune.html +++ /dev/null @@ -1,219 +0,0 @@ - - - - - - Fortune Card - - - -
- -
-
{{ username }} 的运势
-
{{ date_str }}
-
- - -
- {% if image_base64 %} - Fortune Image - {% else %} -
今日运势
- {% endif %} -
- - -
-
{{ title }}
-
{{ stars_display }}
-
-
{{ description }}
- {% if extra_message %}
{{ extra_message }}
{% endif %} -
-
- - - -
- - diff --git a/templates/res/fonts/NotoSansSC-Bold.woff2 b/templates/res/fonts/NotoSansSC-Bold.woff2 deleted file mode 100644 index 29dceb2cb36ee6132f524c561fef9ad7b4d249ad..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 668492 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 $gFPqMIhH9Gxb{tIk7JMO*5k!rOPY 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

`s3p<=8+EKdXsB#k91PA3{PawNtMg*R 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

_$1vt+eU5{ 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

4yS* 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⁡@))Qv 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

8FnRml;QLV>hicZ)DGM*HOHXg4VIH^Ru& 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

5zHO(-~ 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 %?+6!JUjw%>*!F)2u`k5RUP-Z(qR%#Sd2$x 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%0A>wV*G&4D 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 z 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�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 z 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Νr##M?WoKdWVOdEaXJ(O({`X+a>)rc6%Zdcnw_5BUWS*))G})pc_X z>6m|QrZmTR)0U!R-ZQ`U_4dP1XPu^%?F|35_q?QhodWV+lM)1v9%Np2-cyFmfc&2O z$UMuFanX3dzTjQ2GZAgT6wX=x93ka4AZjbrvGFkI{}8io-b5eBNI5I4I}GY9J7S{G>n!J_kts{;uzG2DkI4N zNOP0OI`YxCloiZ*d#)rm$<8}#{(h`mh z)juZcyv^t3J(2cQ|I<@*_CW@C)yJUtP?lwaGy8QYU(@&bZUkmJ?$fXqSD92_AL zw0S1LlK?7MZ1aXfnKVF?%rkaOaiNN|FF+PXD{G!)3k0SBl&Sx&`f>5N;uyil_&ALa9Hm(0zJ7BheMie#XFvae&)BfH!YRqL#cW`GFWXiw(Di4SXR2AOb7 z;_9Gq_xlQyUG$Cj<5W7eIh;<$Z>Eh(5CUp^{FNK8IR6$uG`|+#b(fu9pS{!IpSJeK z{Xq*&C0KIG%^hf-pv~phm2^oYnxe%4ZKCwXTOWiVco#V`=1eFT$OC;X3#!W+iWcu; z254Z>i(2u`a^)wMRu53ZfSUdOCB0F%ATrZK@c@gAt=bCQq9(l*E`(C`CsRkz{k`w8Df0QD!X{heF}hs?)PGrN`%VMy$dW+(d*61lx zhyI~d)u%BOR2I5?=PR(i0G*88maX{Ys(a%r{>EuS-HQE%NGCt0pYVMcly?wLzcAf^ z{eh7amw;%yl>sN--Sz#SzX9*uT7VAoZ>mYZ_P!x5_Q?!p@`p%8`BWt%V3-7$&rZ2~ z89wx{2!G)N?}h3|MWsS91Hopj*iM(U2f%CRy@+?g18BMA)wI`A*(Rbw^1dmLH;vZPVoo?ivv{)F^fl7 zu_zsuZN?$A=~feZ(c*RT7sf>tkmwE`q+>?sYXVdLtwE%M5;8tW>d^fKUjNlr;FVf| zpx-a-fh2-u+8x{|xp^F8d<405RtO)KhZJW1szh@bEgk(X=yoOokTCp?pZv~r0q8vh zlBkScaHDsci0q5#6?<;dy~SFaK>ZUfuF}i<(bUdCN#K01rS>!8AU@vGQF?*L;)#O+ zFMxP-ak%3L@I z>$C;DwA!`UG}&6ersQp(J04PyxT&fNQa}bUDFA!vz?R;dOMB_z;ZGXNj>!bovM??JCkCz zx4SZK>XPFw+Po_i)mH0hG=-O`gi^ny3A?+av(spIUeCO|3Z1Tpe(H=O?9DUY^)Y#%V!yHdksL-eDsXHxXllq+RKpfXM6>hwtK5y^&wC4 zX&jP`_mxFIDb}she^ZFh)@04Fl3Pc_cEax=;K_%l&FV}wQ7282Ah+IAb3bAPtg(W< zRc|Sj8dROc7wWCXBXp_Et5il^6K)vo9A?sBY@dFSG) zqWM=t63NHT;8CtLoi?Ay&K6AzbF*ZKG=c7R4}#DbwUo(1n1L9z^tym`;)Mb?0(PB* zjE)K0C)VtWUPJG(Ze8cabb)oH0pX292;4E08i zGkm+oj(rcwX30)yHgkIXIWO@?#PI#fs#?~7$@=K79H?&A&dvv7P@9{}s=!gwe&PKK zg(&6}!{zK)wOqeN*&b)8_vB6K89wF60~*wxPyJN$=eh&7gX$O9blc5+7N0jzdaaOU zWAcFh{9DM=*wYZoqwN;<9M9x=qr*?^-+kfIr2!Y+psMI1nAD)r(h|Nc?Wqc!1E&-;1XeU(yx#A){Jb3y0(*YMSP z4Z6+Jz{@p`BGdl$sW!?lNYI!Den+f?NBOZ=g5bqYZnu59Tu=URQos`yX}jKHYi|0c zE^EIXPs|?$ajq)l@Jg{DtVv6-IY!bw6hgMro%YR~h*wlnWxTvkf&!3off=>2s+WG6@^O`-qe53bJo-u$Jnp0 z!vr+W%u^ZiyS3z@so=2N1&<>~R6WY87RV`^@iW)dHje^6r7*fXjNF52Wi0bARAi2l zJ|yMpQgtFGUW86U(Zb~^_k{&?8udJUi^a+wa~e2Yr(*|goF>$~*6m*liTpLQ;T;^< zZSLms^jwN{9Cp-JA>h`}!ul8Lzw_KZ`LF{sGr{5KGag*=tAIO<<0Yvr4vQZ4(8r7K zGSYvsc5eNn1mPJyhAb;w6cM8{{`6F$lBj`59?mBmret=&V35lo36{B#y=^Jp^pobQWs;R9oPIzryFC16KWKsh3&X&9vlG9R5we;6s4SCJswz2RfvZSgZP)9!OtxvGd z?1*w$0B-uzxCz|6k%{_=-yPJ}LPrw!ORy_OpO z+*>gAnpgZC@CP^Fqrw<`49b#KmNKQ`&Gb;Q#3)9XhE%0aFhx&wdF1? z#pGyFFW8pXf6~5HugjMb9YZ6A^CzuU&vGhn<76wy-3y|HwHVV+e3q75lUDs;pLSpC^Fqd+O zT0{($*1y>?OKpfS4|$mH>@#1D$uWAQ5h!b^r<-^Sa4u~=E}%$~_Fwbm1AynqqTGVX zPGTrdf13f~?As0PFlR?7@KaU*Kk^)|*u)tJ1byr$`^sC#tR=We!|F?Dr84G%=fYH$ z7{trT5{g4WAkkpEOL$wkw{(V5o;o@ZRM{oh@GbY8SACtA+DOGh+FZyS)RJsOHjUb#LVC1c4La7G*SF&)pJzNkJ1IM%CcH_&F|Bx51809e zwMy_=9cA!6;A9AL60;uA4Uh*BD5jB8oXChs=0mHFkmM9kJcd7$%5yGui-hR)JazOE zZyTRb&t(Ye^#po)kMHbPMSw5AmA}UsqzzCzE2_I%DYk%m^y|Rq3l=6jyXjB*vyMF5&xG6uuaW`?JO zs8#8E-T?iOHd5E8?v=gfzD`=04X$Id2dJmfBu2EpzHO{*!kv=>$8}x$Q@{(Xi1{W- z2N%$k)E!RFei7D@zFMSDqk65Vj!0{rB}+)jIE`OM;``{5CB3(611{c<)5&uhdehaK z40#>MgG$!(VrFlu!BY+zuS{w$l4|IM~3?N;#h`y%55L`d481{p} z53U-l$>7ixbxn+cM*DgCWNQZ`y%ASU)=>elHVO+)=o$8m09v#7w-^HP6DHs~zbsSI zGLw1IoU`s60TN^Of`v3%FFgCl)phSXtZimusYvZ-&mR1CZW_t1x87y7bxf2=OXCcp z4%h(D`6`@~Kx#X+yVZ)0xX()qEIdQZ0dUvMHz|H&%&gZ-2 zWX#I1RAn*-U;An4_b06h&MN1wQ+f$Pmdi!X9tS9t(R{@~1~JKe3}qOG3i@!4LCGz~ zBt%0_G1TP7DW;8`I(h1BK)vx4@nXl`UH98+X-+8)3Q56)QfEExS*f|0DE$U!qoua4 zf0FZ1jH6#qx~8xd^suRR4xf?dJTyABZz}tig~5Q5w)tH8KKD-+a3&j(?muYW%K{!KU7~pwm}g_}{CSD%|FR{js$b zxkzOKQ^sHVVyXX=`VAcCHq8mHz!EF30yw#sS9k# z=8L7+Xp3!%XKo7c|0#aCHM^Y|n;l(OmUmcU^Q_`R3S6OWtIhN z#hmk#DMU%1x)+Gst9Nbwd@}+oJ2{Lm9gXnNf~9d3?u@{xsc6NiaPcaW{du7La0Yu_ z^*0|zJ>ZzmkJKs%$Wkp%ytVPz(Z5d)(gmNZ{*##@QZaQHP?hZ>h^>S=TH>O$?cH_(;TUd zAx<=L)o$*?1cgpg0}o9kl;0*bpx)Xo!}pg*kgu6@Z-sPE-Q;@Z_&JC_#?B2HmW2!x1%CLm+v^TFydjYAgtCy(4cuFNKmBbSqd5fqc>YThFDh%lZ- z9O(JC_Xe`SaVe2e5+(n@BX;BtD3t^##*Xztip30;=e{=*BJ&T z*&@)HBM;QS(Tp=JKQzhJL*bW*EUK5e>x>fBE^jrZoLfVWN4`v-{2j0}?sn2jv&jav zFwgGb_P5-7W^LDh0AxMim0R@z+KX8^)(7Dh^kA%nRsUdySGhmXG)!hE$ywFwzh=e% z`VO0CF1yI9XBQRT*N;vehNrsEPEEp}?%_YV9}(Hy@Fkw$r7znZHe#@RmHSq!x2jVu zRNpSDBH19Z%5MgVAGb2U7A=Ja8)ji%V_jGTRyYG9{EMO+x`WRLikx67C3j9rO zPx+>dHoMs_B^AD*>Tl4e8d$`8*W!4;`JLxx)@-7)+TL5O<`f9se-!!` z|L~h>w%&-cCwRr{d)#)gh5w#pq3epr)CB|6+0|3P4mAe<9ccuR5#>ba6&Nu&v$)H# z@qh4@nUAN**aO8{Xha-xA@^@*8+O->y=tFP>bdrR z5hgbMIby#$f(4 ztoim#KiLw)nILaYb5t0)s`EMT!SEq}&A*!)E*shw_96JIwhtB27Io-q5PG$Pi$ZVR zAbkD?0q-X#-})C<=Ga$0GIK`Ysp>Cg*b@JT;2%C~{lB3#YGQnSmQg1dD`|l~ zC7<{qB+;9-^BOirv**C^wR`9T7$5K7&j0`4`QSfz^4Sef3Ru+l)xy%^?oV0&7q+;^ zm3v~V9qDTG@AP}C=m$%H+`^e=-Nx28_;z%K`2LmvOhB{0XpYc-^m*Ig4+=9zz50dY zpWa>3%liN{Bp?WH|UIiQ&-=O#!f3rD0Cs4*+e0tetG6h@AM{LWxkUs{)fdsooJNg z?{7FI5Sn2fPGAu~ulOYE2$c_-DIo*E0uVz#TC6wz`FhzqokiSOAuS2t(F>gEBZ!PQ z@Cn4|BYyV?NYGpS*+q~Vj}LcyZakhov1huyFwry_d;dj`+3@Hh#&-6^mHO=q)OU$2 zG>9K&3@vNUij)~L?JlmQ06ZWAGjIeS2!|v{=kJXf7zIGgOF5IQPg|}(1>oB^`yD(O zXgHb7oza&rhI~ZWF{OrIW@{haJQUg#6l7FK;Aa_GN)|_P@e2Ktq~0A3WPk$=#Vr_R zhUehGrKI!)&M&P5Y<$E6u7+yMWmuQQifM)_tt^MQ9UtU@V%Jm*yS#DA<(nX5+q|0TdQp2@b<2p{8SG%axY^p(4dgmGfGE_^HvL zO}VogwCOc$(wrr$nsn+lY|@f1enMo2zzm!~12zaj4r|MiAqlde5K5s2 z8eldQ!5OHBR_K9Yn1Xp&g$k&H7U+Nh_zvSR59_dt5CYPX6}ga&0+gZ}4QPq>=z`uD zfMFPishElRSb|kpkIh(wN}&cCp%eOG3}#>fR^S`_h7BNz zHsY&Lu_GS}=~2p|GHRm{T4OLqVrZJCYY@z|37{pIZ zVhQ>eCMP69P4I+FXoR`26RyHl$c4X%5D7wz`2U*^rJ_odh)Pi>T11x^5MyFW%!);E zNmPnD(JFexSMgJfi#gaI*nc8<(j*?qNK01aK(6FWatfdbil;QnrUELb8Y-hIs;5@! zqCuLVSz4lXs-`CDq<$KqQJSXT2su_}Ity6AdbVL__F_*C;0TW6G|uBvuI5s%;(Bi7 zZtmwXp5Y6;%xhfDjoijvJjg$IoaYcf5ipQAlDyM0$}yWH=c^CX-oY5m`kxk=^7F`IDR>iR2!v1jS16P@5@HYA3aaI!q~0s+0${ zhdM&}QK3`>6-mWYsYor-fGk8x$Z}*gvH{tSyo9`tyn{;AqZ0%8h6yaCOd+(3{-g{J z9*3L`1szH{RCcJz8nITa1MANEuz_qO3$Q6H$mX&oY&F}$_OOHO1YMvT^nhMa3Vo*U z=zr&70XeyOQ2_X)U zk%_gVn?4<5rY%^t?ZAaQ&jP{{(()>DHmj%dcDWCRK-Y8u<} z=M*Vfu3DW&&D(Sg2#JhIOly^uUtCce6dDzul9^XjURy0VLrG*J)kf9A;KfB(s*K2_ z%*nEB%D$Y+mE23@W2Uf1)*j6L{S%lHG%xSw^DF=W1oVMFs0ZudAJRj8m<}6SK!JmX zgb7^4D6qg55C}{mVGaX6QtUAU2_8BC3iMcsnXo=8N9ULyyW>uTfIKw@EVw2_k{oBW z=rdu%BMAyL=rd=>MX`i5$&(rh$&f6`fjkKjCPu1E1ZVBDAs%qcJuUFaCzSS6{FCnZuN-3^^EclmZB$4=gQ z!SWqOOq{i7_09|BhEFMLGLl2Nmghl+9(g9?O+M=ZhZuh5W6ySq8HOBr+zF?id85sD zrx;406w0JLY7Dywg>*>;OAxBB{9Y;S1cLX}mZMk-ckH;tOG;E7$w zF1$8m(wsG0-n#Z+%&ZkV4qbXWaC}PRHC=PGM60#=n%6t>#M92Z?3On^;<(dpb?(Ji z-EhQ-XI*slxu9gJbxn8lRB!byaIi2@V<*WX`@o^XM~faWamw^TLPv@jKUvziM&(ro zXQ&1+0wXtCV`;N!@p4sbHfY{ufnudAby2IErfqsGUao4LMlCxwJes-rp@%>B&EE$v zc(pS%zrK;}My@;HKiAyg;LB`q`<6_i!hN38JsTFFW z3EDt==mOoKH!}=FY&nT?r*KX&2M)R65gS1glxZ<#ON=5NrW|-fq2iNL<3tJzN3PxV z%zHm{3zL>?J8^5=f=zYl$+xJSy1s>dFp+7{qB`!n*X#w0SFGKzb+K|avQ?LUF=_dg zVQ7XV6s$uXFepf%1wClM0A^qXb|7#84=@bHnrEkWL=YH!xurFkuSH#8p+q8Dq9+<+ zDCWevI1s1eE^=DD?2Ogm@a|N(Gub9WFJcxp(vtkv4Y{YT2#L}asMMA`MgR_va-&?m zF!3@3l&aATgdwR_O}UCIUuCMTdQ6nv@DF<_=3K+2@*WAKRCqz#`qU3pDZjZhRuy&`3*x9l@jyJ=sfTH|h?eHo+JkGFsL>c_u-_SFx5 z|IE8zzP~&V@i7AN8dMvj+p1q}Ry);A^`7Z0V~p@*GKn>7&OG_#AKx6w|dx_)a{&xZ7P@Ai4a8`ta>x1nUUMqQ3AjV2sFv?OTT-X>vUeGx8z3N#{6&EOI~8u(KF{ia8s6%&EpLuB@us zuZv>6)}Xl3Dy(^(cDmxu*4bpc#aCK)^Id}|x#J#>7`!J;f*du5ob$vK6$_u3hI5fL ze6n0pI##Ka=Cz@TE|hu{EKIB{O|=t~Rns)J6_L|0w00@6^0Ie*>RUe;Hg3^|BhP&- zRjKRx&Ds~QSi4C(F*N+|=U4PvkG|;Y=SG`qrR`38b?^~KpL*s+SKZmsryjWC*6#~# zK}XOH)X+OLgg9sdSx^iupl3vLlkH(zHiKeS4iKP78Z;0wn2CFo(Z&!<9O48wcman+ zMaL(h;T#$nhlCcMWOADs^OmpQiFq~{T=0;myy5G}37gGYv~t6UiL(~1rV}!=R?{)H zbyGo24Ybse&U7#ARN1w@se2JwHG#P+oC!#zB-sj8Y0`tlr65fi$yzS*EJD2Ivb9yE zqew}z6|2!=>>G2|?K*SkT_c*&s`hlQ2fa69+KP1t&fFO`mFK#j%oAn*ZhX`Gc;N5- zU!nfcpZq`fp>eV&<~aQMZ~ceh=fC>ry!9*JM?;Cw%adRK55oWdc(@S$`LBL+<;C|A zC+~b*d4G818IR6U(rz?g&!%r?<`B~#`_=aB|9Jm|yD0d+%;X!ByI9_3>VuZ`)r|+) zZs>BK<}Ey@m(@H4kHa|tL*RoCImh!peebZBoVhmk%xV{>c7+?bkC*s+OZH;mlkC&q z6E9tR|D|%lBlIO8D-ditNO~_j#T0)IO50yKXJd}I89RAb)^)Z6t!PU}`d``)RSie( z%yq-Ia3}n7&NcV*m9M`3?hhjp$wwX^{G*i|BN&R9O9){KOZcVW2Pc*)3%gjt1|IQQ zNyo%Hu2a=2yQQ1d!XD;-^UckVxzA5KA68yh^rYP9W4z`&C^Q+*NW9HQ?poEAUd0s5 zeW>Pj``+p)C-Nl!x@%Xu^;%=a%6&3ihsW@7{%)<=3P+)_h%cASX)(Cg*hOr`>3Lie&)kJ@AmHZ)t`O1a=~dq!2|<*5q!me5^sDoTYI+y&iV2|hQu6Anm-m;MW z{A7@;$qUwS^~7jGdOn36e4vdfe#yPjtFEka#zS5+$06TUT}Hdu(5JMmH^o%YiS9Ei zR0b*`byUqcQkxV`OWE!fGE-uBbraWhu#+Wd9LuQ=tbOYgBvmxJ^je?&%DqE#3?&h)j_FwRl&$_DrRG9%<1lbnr4*U3+K;IpirgRH>x zJ6C0$YN@vCzJ3yO>qE0^`B!9@nrG^4c_B}qbKZ>R z<_6~|d8SU6EuW0J<_oZSho-ep*4&8SPQCV}FwUIUD&=a_M^$j}huKokLlS!MBu{G? zXGqu}QHYuH0;aH!Yj7M^PF>jX;5RGI{EP^Rgs6$RS%==mgpZ#&ShSQmN~a9UoE*v5 z=&2G~6t(GV#YR0+fGV`8)UexAXJ38W^>1|ME$(@aaDz9eT{*OL=U41u)a)6-!h~^wa_y3`S{QNipC84 zB%CE>$17R6AHRuzC+P4tdNMX4vFNkOutLoSeO8*WRI^Z|1HwH8s?U z-jq>KSNhR4w(GcUenTI0!}PTyuKC0-sf7*Vjxmx8`#op|!}`2Pq9ppVm3u(|i4=ZKqcoD*=^zB$02;0CVi~fZ=L)xO!;u=Jh8p+&1G` z%~{?jFJ8G-leT%KEe(qAbg#0#!%n;Ao_GFbRy6!>WK?!|v^+tgk#VFg0{L_WfdQb) zVXA;6nbV6HFH6p|@R0ZTE?UxTZ+yjBm)~~7Q!c!XlXlqYJ2U6_=(DftUh)6VV>Ip3 zex>?dNlEH5ls&nt*0kH*ykge!Z5vKmu(g)8p>sVMGiSB?8cj1-yYf2Dea6%Vwr!UR z0$ZL~j_Dp~?UehZ#-O|ZByRLmd{^;o9ljq*?wZC>AeEyx#DzQO|InMYPkyNI_ zc9WyQ2-)%ApQ32YVpu+-T3fx2%~$&mIdJC5-|FJAm(8;S7(MErFpYvEJfH}}5IeXM zygFwDahkZ~9Y0CxOgU3xz=jtL7CBod+_>@7XWd3EJ9KZ(jtg%RYDVt0R~=Sl6gTu- zta4^k$e{z_iceyoW_y!6Gk?wQH@5uL`8&i0XFT#TcJ_+x+++(WZHATj_Y7^h#i{_idp(*=2Q^m8!~7bGA%&`5S%q)5OfNNA-@v;x*!^NQo?Ki zYS6<7G)4WQ$f&EQ67`_gnQY{>hL85t;UBkZMY{RC~zNFE;G9 zqBeMr#-dp)OX{xK(KO!*x9)!7_XC^b?C73F=%X z3X~ad$gx6ETj{R%zl{0lVMq$dJ^uWxnzo>oZ;rFWj$M@ntDZY$CHnBHXlH}=Bwp1c z)8i5x6#Xt_2Oj#ysxTR4P580KBZwQ~XNH<7s3wNI@}EK5pnA?7-94z3h_Y3%w`V6_ zoFXHceB@s}5!C?3ENRs+Ii{auI9_rcl19)W2;ud zdGsjgFSL*CH|*f!Zq0(j<4pHigPS`tKu?Zl1N}J1%uMa_NsAl?UZRZ&LW|6iD$F20 zXmNI{dXryJL;1w$QjIGBcZz8qu0led)9WQlD_bG^*tzznL4lpNjc*CwJf~BP83WV6 z<16oY^dV|bf-eAh#Tk@xOm=o(sev*HmtHX0Em%=U=#)WS$o60T#?UkvtS!vmrqs?6)=X_69qu zFbDAI&_Tz6mdxZY!NAf%3Pyq->){%dXalEwg9!0u8Nbu^#kulelB9Lsr|qgvBH=|2 za^MQ!1mWfMNXwCXKnq%8V2)vZVTI`2@a6wIC>l1j(H;kMOchMn8~p-?%$syKx(=jj z&Hk_Z6@vWJ3_{s**$%EOMU}$8Ui$*oL*u>grJtVqZp18HNYL^9?)H#4Rqt?)Q=LmQD&-nEREOf@RCAWumBpJ zfTP?a4y_O}ev-nPZq!I36z;Ps0>YyPsj`zqE(SQGf*U+&)xKad&0u^WAP|0QN13|b zhZ^-s=WxKIO(KbzY$DIsU&8K(5FyuJc>=IAWJ#?xd%O~^L2o{W1q)K|!ZpswHi8(ve!LD?Sd z>qmibBZOnZhFu-8G?WM|w(2`*?YyD%(=7d`g4PivpCDUj4B89?;AF(fjyOnA;;p0D zH=iVNdz>9DTCwx0h%tiU-i~mva0sIux_^tv z0|xY06K@D%U**Ro49LSa7`(Z18hn#|Eoxc zaAh87K(F?ysH|z&OQEP_Y9^*8w>K zOeAY4e1UcqRNC;pzj5JoJ6tIi5~bNrKq|KEHt_lyt4hMmZ0`YnXR{$}z%-#cZ7Hfd zfX-Rt>rZ_U)a6tdC1(bH_Rog%>(qOnG;xurwI5KbnPDcH)V<19Vnu4H^ z5={>^U#p81!r4&h`~o=>g!em?Csjw3Xac@LcoojS9c_T)4JOte?o(X&ck=O!fM-a2 zO@%mh5GYAs;@K2kVTPiUA&p0J0L|?(!JSwD5%Av%P-hGxNi3i!c&ZZ+lK9wasg|B> ziLV%QhfWcfc7yH8P~O;Rpx}iyU(Zk5`3CEEB5HJ?QQJX_12v5AutbvLXq0cFjsXa6 zq=LC+I%BX9bcCSHxQV=KWq&K6^RK`x0qXRtCy>8`7rd?lsxtp8j}j+rh0p~AK-4qZ zKms-=Ba*lOB+Ry0_9GM+>=4O6=fP(Vk$^Z2qAuk5cbIUvDtv?}-KM;SX?p-%>6(&g z97qC%Hx(?9Gb8#C17BgFL_PPNCkyDv{7uv(GB4X+4((jd_idFi4dRFr$JDQADtLO(kb{wmQoRO4T_kHJfgS z`$tQm-C3%eQkPgx?luJbMTec1MFIu2+PBe5nFWkQr-AHUAdpkHZTC7HqRf`;RQ~j(z4Hk`x5jQ<5=N9l_|Cu>Bbww zSo5N++lzZUEeyM8<)RxGodR=IS&9RF85Gcuzcig%`$$nS;T}agW2(KZVJ{*j4_;w;OtaeElTm+nMnV~iWgl=wb zuoHRBqU#~SR#D~Rz{WMt-gKXp1LiVC!HNax()3V#WB6TxOrQwQ!r!!{`#N9kAqI%g zq=fO+hK)}NKPbL)mjhv57cOF2^iW z5#_ z(GDtSp8}3{^ZdqxN=WftRRgS}Yq-B|5W=mhIKyc6gr=y8YxY5+Cv0anJ$6HQS%wQy zGZyWk%b!XO=A_m@q1^FCJF0j3N+Tl+N+Bk7a8iPy8d*zhgF0#Y`=!o*yI9_!%IVuW zrmu*A@nZ+|Wohp) z!umy4mO?@5KMI;GBAg0(cjIj;tfvYFBGn%y>(yumf`p6^^g&1q|3jq%pp*bDW8rwn zmfZ&G=Cay^=! z*1y8zC20!H)qX_-;9?KY)r_2>26BXoJoh4_(zwz{Pd~{aqta!7g>Zc0`W{G6=pcLN z!I{El0n1*UCjo3P>`_YIZq%p3sp^S|bTdb)q>y0aGQLsh-(=Fv2@cV!3?#!3k(>yp zehmvoyXF|lx%{ys(R(6OeLxhb<~|~Zz_CGS%(_>C3T8tS+Bw>R`c(8=RL6n!; zIRzjD#sQhiNWIl4cR}hCKo`aW_f4M3XvIKV0StL|&|S0wJOsg8l>! zL?z1V`ZgMyBop~{$<|TLAE>$p4@FSoI%o?uUn#uCq^mVrHL<5Xw z<`b%#_RUyp`8Aj#Bz3PTX+bUp?&7O>Mga!(G0G1!U-%)|tR8}+(oHS_>MACBl}KkZ zDF<$l!%Kl+4p>WY%vCtzfM3z40L*f+?Q8WY96BI!NPi2TZo@Vrs^OP(_-JxCaR`~5 z8mLH2fb>}H#ZsxxNJjEBgL~+)`wR)FJ|spUjilmAkL{qo2dbzXdH;8zfD@-mkFV64 zg9LSeZYV7db^%}x({SDaSE#8`^(5jdnXPc87d0e>(m`aF5F!qRwSN}?3M~>L-o@gY$9mcTo3AzIO5GA zUE%%uM8sJ0OI!L@bS?{6WtKp?k$D&Hz6N|(dtk}6a@lQv)vr87IAkht@L#_yMb#|C z$2!*s`!G=_J(SHK;C&|l6W)OfWt6xoat$Ds8I;$+qX+>5!H#=buAa3y@*A{Q)%-g-50ly|@x(C0iUzoV!Fm59qc-lr@oVRY{KA zO3!atj#R4Z-(Y|_i%1xt5;KvOQdL-5TltR5^{ts&`iSbmWW1a|}3E+y!buM|xAa@+b@EJ7XX zY~8TvZ$bn$@H?JF6+A znEf%Z{LcUvI;2yvr<-?{cG z0`$s(($QFx6rjt3a+G9*kkz;fR=S1_0Y{&dLWTb0Glch)oF@Ln^I-HFn&SC}xZ!pj zZ(WN_)JUX~tVGao!jZixQk0Ie5ZQ70d34sJin%t0>vxtIWX9WGr(;<3ywpLVxjvt! zNpME$%)+>*VsXM!K8RN9R7@RV9zlpspv|(-)s*()%fuGB?N03?@GJ7ClW!@V;ta7bHp=@2l1n1EHb^)TFlg|JF9>Hx0 zc${VVK9ou$E7>I&acz+kF#wUPbUuSHMZL+u=(ZC1kqTdd#%p=SF6Uc-x9!RKLSTG?s11DDa0SBsZC-GqlQ|wMhWjnb}`hsY#;{b zJP<;`eFiYgK&%+}LbUHhIDRpSa^8z0ld1Xjf|3F+fLi*2Vpm;`52sX$R3if+0ju z0VGRw+`@F39cq}gp|YmB^^75p30nQ(5fe^9sw zAeJ>am8or698L6=H3_Q5-gtS4OUlaP-@g z(18BcR9}I#SPn_4%cwCD!O{2M1^2lQHfJlQ5gv+E=LPc?Zq)X@^-`Evo)M2Jh=v@F zwNklp!OBf;Wq~rZ#-Ho(r%?HI!Bim8!Gvh?el)rYia6A^1JvwyUtUIvbZGEyhP7xi zDm2~ysECnP96WQOvzo?oEtfRIrv`+MD(b6PO!xbhur`5*%XzQ*W~Z?b>^;Gpvlywu z4&E?v-$C*-SVKC~Lj{n%*szG$xxokwlgPMSEsz+y#7BIbvGM;8iFn;xFa<@`MIRAz zmXffU>z$x*R~4#lZP}4ZcRxhFvpgtrHG$qBft6Bhp|L@HZUlaTgsE#?6t4@Dcr4qF z=5dVSJeH8^-2J&vmCeet=e&-hMBj1TCUFQsMyA4u>L0}0KyGJ*E2BqRG}V>-+6px; zawz7g3W3ptqF`5E1QdYBF)QRsweHxfqE^_cuQU<6QSFs8jb7;B$x&ZapKV`;s>Oo! zpIo`ZQzh#Z@#QotkS#=DOkp1})CuYpqJmZ+R1VK(l>83DM6iWIDuL*gB}^dxju7VP zaT-cs@tVVVfobtcb&|+U@jXvTS()Erd||{d@4O9%8?h3%#8^=fJomzY&0Q-IwlBNv zojAcFYRkWB!QL;^A39b4 z1^thevMuVn!hS?zO7TjpsPM^>m18x&m{u(FiK0|}r$NE)jUB|Aa#o z7BMZbDV@zm1yMzInLSYu+hlBqeSU~%z!S;G?fWuY>V0ufXR%QFHSpptjsOYm2ZhSD z#4|7+PhLzjCMN;Y`}s-HYML@{?Z6n`8_A+#ShC{Jzq_XfI z{Rg^NrMsge4Ekm2-6WopIy_UDBMsGsuaUOtL|SmnKPxiYDyr-1#op|wlN3r{JA>d( z>zhJscL2Zx2^09E76c(wJ>M;4RR^e)(~3V9tWV*Cz6YV)WQOg`dQ!e_a<{WC7?_`GyuJawR5LZpm69ND13 z`vVwh60t&hC^;ztG|^^O>Rv=2P@)p#D7PG8J#>hkH3^sbBiVLC>Yb5(rLWznCY97+ zUmpSa4%bOW9GxZESS&Cn?oP}82ku8F{H9WlStu5+b?qU0Dj~D0X|I{ra2v> zYx%UhuBDApNwF%|?d^b>&!R%-x!Q07t;EOm@*u2;scaBav+CrlZk{ zv69_Q#e~3vjGN1lr9}ryHD2>NYLZ&N^|Z@NAw8F^POo_H@?}sa6%E%LA7|6z{|bvq zM;z_9!i6xTcU^%b3WMQA&z;|=E*P#=L((tXG|V6&;jX`E-L~va2a-!-3x); z{SQ|lKbsLzCLkO-6K+NYSu67X&+B!*1#+2Swe9eb52^~-K#8sP{&*OFTr|kgEL{Co z_)z&~@k8Qomqm?mQ@)1+vZ2`2=s`M=LjqT_J01vCt4i(VPA&zP{~OUUtNTJOe+&D3 zR46Qf7l2VWpY& z0Yy@P>}`O1RKN%+R7??XDz5o0>M8`MiHxtbm9Q~)Q@oM+0Lcb#@ffvw*bpaJByh3} zuJzCgzYvR%Kf=65Ssg1H?Mp&k$uT9@wR{;L&!{cdpZhdOK7Su+@-~1-nj1+tANSb< z!IsP2eMM;HaC(NsdBfjk`i`4671WRgIr13VsNF}fVGpKM4Z!2BQpW@ihwHl-S-kmJ zzF#Qe#IR90ByjWfp*o6Y4#8>PdYIo$WB~`=SKO!^MfKLw)t-MchFZA=#=wniY6v_? zdIpHz}RLL6HtGaj3oYIoc{nvs1iuJ z4KQ315v@a6A`K14SVr!}VQU=;f;AW>-NrjcQlAxW3AM}ACdpjE#E}r-qB8imM6j~> zoUVHWWMJbxm%@#eM=*ie+j5lyZ;y$-R7ebB55F!Y-b~CQ&us-r^4!+c7wJH^!@Yb8 zMf+E!{ftovNU97kf>>2>6(8JjY2CDN_4%Ag2RRSt|;Gel!!~X z+eZ~Z8n#2a#apa!f_3$m4t3Eqntoa89(g!3v1F}%-lh{z{9*m7!5fWJYgJST}J@D8G!xV4kY%bdp+?G}t zQ}t*vlR~lKRFX6$*sQwbl8+C( zg?xfsVP&MO820EVo<+`*kWWP}fn!rx(sGUJF)6<(=YcjE&Vwe6N4&9@o9@`yZ_qhwI%vb91MT8Gd& zsp{vTQ$!KmmFPP=BYu>cT4vH1^5+vc1x*4;JBeb`LbJQFqyx^`&S>As2c4ZMcp)y? zoJWAQv{{Ol1(j%jkhdF7gLg@as3=&`CyyRGjunCb<2QG&RSFR5vh&6E1J&>%D60=y5?i<%W! zgkF~o3ki7MO+Q95vR9(*uP7-|eO}hj7?pxrj&g9mPZzZ?GL4M%0nS+8$yl9S9X@4>j-800lOtHS^P$+KwHeen z0k0NXPi)T*eev`!9C}7edb-|@E--=l*aS&1F*gAdhHh5^w4-NO=5}BWAWoHSsH|ut zI+>{2ow0V; z2MxqXH&fL)K@%!lSy1Kjh?Z6slG%m&1-JFbn3x^LwsVbgVr6F4n+_m_Zz`E>p)#}( zNHL}f2vPw6Jdgaunb2YYo8$f739mJSM06)6Z@>hBU?c990du20pGYyl!Vu~Fb_o0Z z<$=z_NcI`n!2Tqfs!B8p5xm{FOy9zV5n7&PM|5D>5L}%1wKCf;YR78~tKc7i($Fyr zUPWF|5XUIRs{ZS1(HR}kuy<5g_wGRFIc@xI@D8Tl`Y#v7{l83Bs!9ATK;bK|_g7>X zvQ%%LE%TWPnS!p3GVh4Q_Xj@}#Dc@9<%Dj`S-|XZmpPY7FNr=5{@Az@#N7B1J)6HA ziP;UVUJC*X{eUC)g1iUetAOFc@D<>@r$BspGW116m!RRi_J&)5cJaZiZl~Amj+Sk-s$Z#DL8A`y}h#AzQ6FGfX00M zAE)o6CF>68Fygh@D6rY51l^>1%4Jmm|SqxGA6KbbZXdNZ|Jbm52t8r z%~A$E24Q?=eJ;I7oq6vJBpm5WVIpzMq%X7G7E}`}Z!QC%gPQ81QE+Q7NC_ESD>VmD z-6QdW8j{SigO;zC(*_xi;7vJXfE=luVAK<1cuH`0rFviFMK-m znE?R+aVU5NVFEnS6%_vLN{ZpQ?tB!S!<_JNUSWWo&$JX#&X%mk=B!{`7!#WcSvO#v zaC7)BUy^E9Gw^*b=rR)C{tOeF0C3GcX<%?hdjGY_E}FwZdx_zmvBk42h_okpb@BUO zfR%+U2JTMn?*Y+NZn2TA;3X)EYHrnR4`MiREleoq@;xwMN!{f>$=hgHAsNWe{k?$L zb~~pfEC0ROKFeGEYrPVw9zH@=M{U1WB*6= z7^irqL)l!+sLa0bc3RU{?zUuEQ$-|_4Z|`gp8!zQDAfaM)3|%6ayh*k|6efd3Gj); z^|-r`u(DK+Cb`!bDDR=XkE*9fj-Bvtw@*bjTVpN8z8ec~c?yRMPWlRHkm2^WzT3}_ zP@6zQg%?XUDaCFdiZ*9?y~0Z^+CMjMzhSCZ8`J(&>l0#=v{v*j5ws#jW&*SRj zNg29*CrHglsSYInLgepIrV9!1g76Wa=5A5w6lBg_G8iB^^Rz)5T@5y>efSZ0%+u0# zBD0*ct!_RuaQBZFGjq+``)jE8x_vQqk%N+x_PQTN%{oS8ui!zxq+6}lwU$7Yaz z=n<7-bJK6!X#pv=AB>P|E!hh@5YzY_y+(4zlb~4HMK*%fO9QB6-^{i`X1X|=(z6Yp zyN$ta2%z}3zaJzi5 zh}F#K)m(tJ3^IJ8pvHuB&NZ`m!slHpHO40gma%}rNuno)-C+m{9S~jXXux9VMZ+N* z?n0z?k|~}pQDNv$ycirKlTL1mKl(CZhDB(?p@VqU?6}$4_Ann8qrF|ZUHhfmoV5&R zwZSdCQo&@@TbpDbn}LYBpz%wfq4;N%Vr6{_7Y_0C_Bs=yJ+>JF7J5-D_Hx}GIWCB{ zn{x@bU^r2v=gqeQZo>$g^=xVMKl+A~;$P=%nKqx{G-K!V9ejD_-GyF#t&s8sj@QLU z^>vW5PMbWr1;^n#<77TeflGhlca{H!os#S39bU&t5$I}(jnnvNC&6S8fu0*gmWHh+ zMyy(U5hds4LD4?DMy=#vi<19S0NOsZ>T&k=aW9$Q+y|x?pQj_5qq?!Z-{B+WJVYoNLa zN#gEpVP%|tG)Kh91R0Uh_=L0XKp-Hcp4duyFqVwrAw`hj#kY-44Ac5u(AQkCy5HH)hNlznnk?ttdI zz+H$^Wgm!H&~2h>?8)S|%)PRoX-X1d6EHqFPIwpn=e^h#1#cd91eXWKc_`IF$X{Tm z-QylwL~7LSk>;-AN26K>ZoyMV7e&lII1a0p0WGbcds*(IaP%j~)81#$?n9-W;s~JK z3=|W`xKaj^UT>&gA4dm3zXy2yWJmcq&FIOrd>{332*gyTDGH&X>FT?oP=FuYqNS z(KXoJzj4B|yQeLEh3Z4=NVLML8$%i+2wJ`eA7bcj$}bn>YgQho{hf5k7}(SXBZ(Se zMwa38&v1|evB9$q3_H>a+a9p-d5{OsWHCxMn~+E}7m+sN!N}pxeLD_>hmr+Jevs!u z5x93p#I%$P4_T61`sy%nl3Drb05G z;OL%I1toU~N_TT5+vtf+2XTU725Y-eO?{=PFt)Qf{dp5|gUUkI}Nprh;W zr$CgWQb{MmE2+$G@$B`E$l^W4)Vo3OHV%0CG6-<;6%8`1#K~|HZw`3Iat2BVu?|EE zh&@=~C+&6qL#em6F@qZs=KYv&~|LVZr1qNlV_! z&K~d?bYNzhT9=!x#I16dRdhf@-(q!99MRu1(qEZRdMbz4l)WgMRH58RSs-L!r1#qR z%<@p9YhXiiBt6o;!M@C<&N9kY&HsH@%O~1H|12FS8!Y zMpXKV%I#o6ngxoMU7;hmh?4%2PcGBo8#*6LDgO~pw9$RqYN!)%s&*{(unAnX8ONhX zqufdup;%C&(WAa|y7q0(Hce;O)NVK3Re+_RsP+OqxqvFXiHkk6L#n#~9L8s*dI%5l zdBCABK`}q!^&$NZs%wz=fT*M;&Gv=Y9(pOY9Iv)dS~+dqUpd6&Rk<-;sxCI! zXL>4snZFkxw9+vv00;fE+y5<~XEQju!h=xSo}_}l+09`W?BhCA$WJCf zM=#9v%GdtykRZ~8Lf z(pAMFl$#3{En6vOunjfh!*L=Ue+OeB?pKGni(qbXU#w99&H<{jmszBsnzpKX%z;_K z?ss~Kj&PbS!HDIzmK=5r7quo&qupT`Z(6eSu#c$_)hY1WJLMJC#FE*?YGDI_R``Bj zL12Zq^+kn-CS)SX5T#}-ztb6_G%4mexICenejl(>O=fn`FgC=zA52yR z3I00SG2xVAl;VTZhP-~}jpMUWhuHa|GqI-M)-(9F2lL~bpTJG(XMQ9#=3XL1dY{%_ zI1~9~v091p61UkcE+=iHJjz{j1s%1H;#L`kxGPBmIvTjA>D8ioJka!OUeyfyZ+wn! z?N9|r9vm*Czm`B3gwIggGF|L@$O?^+vD!7(bpj-c#}72ELT!P$o&=k|x%E*g5^ge!oPH!Kyf>0w-| zSesdF@}WUXi;NK}05w3$zo(5xv5h1Mt9Sx2N<61KuN`!OS|J1x>l+Z7ESyN-T*h;x zc)s91!s3%kqQo*=D{Hu&9U2O400`2ML)>5O@5+7*3ocFb`bi~JMXmu?Ag}a6g^fqq zvRh1M9#&~!xfvkA5}^(Ma)>45tLGWLkMsOkfLh?ScziZQicMsi-2&vL^7QC17Xozu zp&88>F>KI4F}M=@2$S@~36jWS?q5wy%fdD`7r6FEIb+`ApDJ55L%;^wZjA}+LUMeg zPYmB%`T<~&Crj)%2c%Pa8Z#ogiqmHoU6|Rhp5SM?0J4Sm0STvxiK)h6nSF@-8sy!8 zeYX9~sVo_+Wcp`EQYk`8%EtNE5y)n4oktDB1cm2(FAG(ewy7Ghf{0xvY1jBcO^bM^ z4s>=;CG@c%#_iG(FWVUkw{j5Wz@#ub8bNB}1BZ0aU~G?1sAnw&nm`p(jJHXVx&s^U zUmCdkO3*wX&Amw?O_qh|H`J|6W-&#fVZL^>7sP~}Dqz`ggVWr!QG{J5)l#dGriX*4 zxxLYC;hwA(LbZXG@zpt{te3GXC@M)kFBFvva>rR>W^1=kQQ+_urB~mGeOm?0s}Umv_l8*ir3YHSP!(;D@F)Tip%LyE ztq{ayulc6tl>K)PI|FM&5gVz~rsQW3EMacan$&MHw`~Vq*9K@m15}Z{#_8PfgcV8o zQ&wphw!HVcy0|W{MW^naEQMvj z4&589P=ls~S=9>1tRtUjCHvvJ)`KSg(M~m1E&nYpX8=ApFc5d(-GBjFNmE?#*dYLi zn8E1L4EEOYnNkT}>Sm7e*qOX~!O8o!oY<9%--^yA3v*+77kG*Y#}W1Pl2A;mWSVE5 zhV5UQRIAwa&K^&(3FB5iswrAk4IO(wxM^5 z+p5v@V_Pu$NSn9|=Z5$hQ**80KIK7$7y{n8U|Dsubty>~k(nFZavN>Lz{o z+Y>%&+M}Fq@vu^QOz&~2xTA1coL^m?OB)GQEt=aHvmjywl!|t=$9R0S-pHJ&@JguG zuS_2%2&6MhKglEmU2lEVfBYhOu3@C9Nzw?l2+)A$`}l(h(s-cu5SE`4wa|!!VsMZj z8&W<%k}}T{^HP#@lY~fOa5-i82FoA}Ui{b~HVdM1@8-dK-yOup=5F5|>M;v=%r*)1 zdN;AOAs3{UZk;#i%ku9_V}mI(Ta?dNoWC7CUSvJTi>=EpO;j}ts9(jGF+hKAC-)<@ zN@}s`)o1HDy%skr&HF6rO^M}P5m@H77a!~tt?(K#7Twl0jYz?wZ#OPY?0cW36v&ILUNz-Wc+I8gr<{)+NpfB~MpSLJDfa)tJrM! z;Q_POyf$Rm@kPe|8(?sukAEs{q?FUM$Ja9XY=T6cG4}L)h&^f-#EG=)Od2FpW1N85Yqg zF;JicA;CHLD^}Ne`QOjeVE@#g6C*U?xAW|4o$nIUpaXP*wm(ktTJ`uWN?tUPaBlBu zgLB@f27Jja*>Eml>Snj``0neiC!rsse$rhb_{Pl2**%^!htEhejWg4Ca}A7%5+S+rpj@i zv!_qH*i?te@k%_OH>&mf6G%RFza_mcQO>5|&L$m-0egI^bgkWGs#i>4EKlY^qE`)3 znWN4COnE}fJpr#+>2A@wk`tw{tdMio7ZUD)g!$=Yf31;_ix-|HWk}$C0>H zKI_ECb{LN^JFmg>EAjd09PW`B<{=e_U-;a@`{ZoY7J=F2$i+2Us{#s<&gVk9`4fgr zILA-l#Kl?HS(<5^J%U(U!!g+B9QUaodM9C+Wk<4FBn}z|y;y@ntbuy9xIxSJm7+N# z)$6|sU`GV9ho)o(wf{=4I#u&Gq^^zMvoM)(v90{0nJr}%_{EiW$HuG;i}x)Y(Z`uq z@eyM~+<@~4ktfrwy{uSK$J5Uioy6xa`vCI%%kszSK@)xd60s>pps3C(I)1q>`tx9N zpA63olW>;6ZCb0SjnqpAb$cVpWA#t zF!JGVdjS39yUNGYXxxckPuVz6po;vJe15SZ`qN-?r_ZY*ru5q4{AK~0Q9NJMcN4$7 z@YR^MX(>)2Ube+8p0iMBU#GfKC#-*Pr7xOp-)~93H@-EYx_lNh>2D*W|K{dJDzJ>KwECJPn(yih1-&+N%QaX&^$E?-eaqD&zW`_ znRXqE?|orTRs#>`{Mr1(O9;n0ah6=xHGKve; zDnX08f|l<+3(^fHe>xU4VHXE{aGg+;LRR)iNcgp8FO949LHC>0DC+y+n9wzoXyyU& z)}&M0_UD#c>#LV9y#dMRX69#p8#Vh~dav&ClPq{cFkB}cF>nmj;N3%?IdFp6d|}_xGgaM&BzN6^ z0X>X4A0SW`=8e;%GrWXfz)SGOiOTR3zO`Py@COv=L;g8y%dLHxj+Q8La{mASew(o^ zxKmt0lB1W~OnWWAE;Igp$h=2@O59f)DQMZ{j5H!I#g&Yb1&_jiHe8CYE-h!g&)k-^ z*d~RX6J{p5>TfBzZQds&q(!OJ1hX3Ur@GS*w$huD3O_!vjuIZdkyHB~+<@ijC9boe zq73rZUNexV?D}WK4h#A;@X4UT@HG&%b5ZKmLLq5|r_w0t2Dsfuuu~!+lRoNoVHS@n z6#0QNQF&q^YU>p!AwcH5nXzsfoN=Pn3#tXHT9r6K@Pr1om?=?GsogMWgEXC*?As9F zjofdSiAh}&8J(`G>e15`b-h9vPfc)-)4xbeXXCjIu;r=yk!y2M*Bvl9Iq?gMD^dtX zB?vofh+j9eMGC4(E0*>7+eADlOzx5pF!SrKnsNm>YFSkd4I0ggh%> z44(|(rJ)A8dASKWwC{Mz{Astwbhit$owce>`86^cu>k_H+$*wRV2mXhHISN&uuD}LitJ~K6A_Y^)Hv1acN8A8Wf4w?mxoVx`X@o+ z*A7JF|6lJEV*t15|1qG|YdqJ68rA*x1J!z|KFYN+2dMU@%o#Y6{Y*rUkBLJEIx~d@FG^gR zxy)gfTn;%Vs2m}UKQa9V-1#BZ_}hzkaRr7U837${toisEp$|R7wYSj67c% zg|uPl{Z(I_NUmG2j_K5s6gXpdY&%xXwY6UrLJ?c@!jw_N@VoobAh9JMWhm_W0F-{| z8pm#P(@|0q)Qh#@yg}nJRN+*A_!>-vM_H(uIf}@4l3tC${;aVvau|%=bX}{unQ|x* z^z1ApL{gAcoqSfJr}?czX%n)hnFD@LTDfSot$1WaJWgph*e2|PlrxKZ1D4F!S9V_L#J8x?Hg^;L*|$qv+!j{u z{`m0TfpTKYfUw!%Y!|aqR)NXWxJNc5-*rh`%Wb{&;yV!lIHuPkZj6XsP~XBcuYXqE zPE2Fp9pkQ5jaI}Pj(;@);Y$PhH6KL5e(>@Ryz~JSr6rQL_=Rbh+(vwNfue(x!T;mI z!5|5`Ch4Mgx;!no;3y(@*qsCLtQpcq0gP>MA*^jbgmh0##}DEw779%ox#NqjvT!E3tw9FnQ?UHsRkEgQUwFK;D{ z^d?wV)`wETQg41B<8M$X1<#LcqeGl`NO4w8bFjO zjq;5G#yog0U_M5CNtI|`lU0(ez0%n~7@@~tL&GmiR``7atMb&-u%>UK?;483XSA6L zm{oGz)D}wOO}jzE+CtawV>tqS{RWKv==cN$mO4#M%IjlqMgiAL(1CT_WI&iTF>x2t zzr%!tBKOv>sl6b;1k1hk$Bh9RM~X5FTZWom6_9qAyNmqIPEd?JMTJENKP-%)4>tpo zr)|z8RQ%4T8*V`8Z-6 zYi5u=)>7&lVs0)eEi&Xz;C`k&IRs zZKp>i$l`ULtKF)G2?g)oEX|=?hZ{5TKL_KNPi@tw-V5aO+&Z4y9vpfXd$>#bNuFMr7AJWj|Oc!PEz&7@&<_uC^y|;}qsh>T;dratCjYwmZuzHqLUG4`G)|xio^_O=KMB-@U3{#)oN4Bd)Yy+i9rrQ z<;OiNdkvRuG?$&#=|3Kzyizp{$U-E)VZr9_)Y^GwX5S|dzDr5?9s|@Zyg_I#sz+N> zg&e3Cd){}r%nN~r#rf7W&{aZrk(^^V%y;s7-`bt}9AN~bL5blc*mHwKI+AASQO7rP zD3R;++XFaZYWIryuw2zR6BB4lf#GbxmLv0h(RbKNmpk?;UTWqUekmmcr#rhY#Dm$pSys+G7<8^Eo4|8k%pj-XkMxD+W0pB(b8R$1(zEcKF(4cC%9Gtahx~WUPW*bXOk3E6IPtFK;!d~pU)j^ zxy_YmOi6__yvpp6a&pZ|OZk>_wEg1xeW`F$x<7e5mEYm+9O$yY1%SZ2ZFe|RKGh!G zeT%#;jS-w9YwKb{!ff9bbwe0~73ROIo8rCujTm~Ok?nN|+;ULxDAvOZ-8=yh7< ze&yN}3ybcSG3|EQ2m}xf7sA@4(56Wv!z|b(++kT0$#BfN`c`!@y90R82AqOVd%Ba- zEDz(tw!tA#n+iu;mMT~ScW==7 zGZ5>S@AR(+6cXmuBVhBm*ak6j;xV{TSep5+g9V~q$8^oC2#z3Vt=CNH55uh`{=6+7 zJ${Vv8~5`4-@n;1b$0G}iM@%o%5q&DnEw2L&gFp4-@l@Uw_$?_IUeM=@U&zuBElYY;9!jQMX$a&ZTx`EPdT6T$7K zVac14R|+4e=tH}FI!Rn|1muVkivJ76_#kHeoSpDz6qK;XQiKz~8QsLjxExT{+FV+F z;0LAISg1%lBlo4>z$Io)oUw_%iRXMRD47tuma$?%Sp)AwlixBEb`7|~QOCa2 znbNzDfYBGZQ1w_WyJ0?FT@|E-&et)}`TL;Dc(+yqkGsB*BUw>~%M(y~9hAbU>1D(! z`}D*?6QNOH*QqWFhJ+jMOCh2F#=c}m9XclF?GL~>iS-V=~YWWM6 zmloeLoaw@5nADBDhoOPU&}IJ!fN`yd|EA)IZ00G59!cmFL}m}wDp*B#f+=Ik3KhFG zai~Y-TF$A%<8{51PgU#pw>2FX?zg1XB`Tw-*}aNPXBtl{{D;6rhvh8YV=)v_?rP;) zvtp_kRlKjj&dFb%&u4^^{xt33(}qMT{HH?nSOiZxD?S>5OT)Tc3V99EkaU@$m-!7; zj*q|rws~K#3Mp%{ZcH*My(%XtRF5*d(ei@1D{eQnBK@PZ3w*A#t;A8R{Lc`&dB8kU2 z#5DsM)D=-|I5Vy4-y+iEsPo$(-@Y-XSN<&k4@mK6`S{aq!9!`wB;7s|fVNx>l|T}H zk3CMX4qDRZ5q=DhE3U1mjGjpBGX02MWLU$gT!`~~R0F~@n)E688R@P8dMHJCUPiQ% z&ak*S#QNqx;mL&XKL9tD#gFS~>hkA@4vi2G0aIqK&n7de^i8$wit-P$7bY^@?n~$i zz_dx>?egshaK}&d9#QzuySO}`RNaev4+lEGyDxdt1i8fvWiU->2$)EqHMVxK3tpxG z*htZ{oYBr$W{O;!F}8ALZp0G9v~ZeZdW@ogyWICU%;EATeZn z{t9ju6x&oJfGk+e332S{9Acc5kFE?EuqiEqv}dA?jjQxP< z5E&T>6&V*-Ul(tN;by`5F|qZ81+p=&Fmh&d>j$8*_fn}aI9&pn2-w8$8hm8JgZ2Cn zWI3w_OgCqvH^w1g9!gulO!RO>W`{{|KSSjE{8KLttWJGJ3Yu2v%W7ljrdtal+K9le-viHu)0G*uje;micJicdHuRyUL6BJK;SO7w{XmnyBtL3(7!1svZ+Hnap%(9?slzc6RUl z^r&UYv!zzWff#9&%3QbprDxuqS)PonTi|@3@N@>(n-e2zktO6&&6%AW>zr}cpc|B8T+^te968bDu9EWcmNRm(i1)_BzOUQ^y~90oX%WlSe)UCQ!MDfe2fnPV zO$=D$CJtovQq)%Owk5rd8YsLPEDu7LZG)`dSF1GB_h)CxE}?ET(0l<5(iekWN<)N# z@OA9R;}Bo~7kpPC@c2~iIpnZsorU%*8--1PcM>@Ma$bJ`uftLB>yO|y^)BvN=C_hE z0$=j8+E4MFH^>C>HZ9BH$Dz1R&K55^_XJ=KC;FoA{Rpvs?y^=EznbM-6P)hLZt*2d5Tm7kPnhZX9GnCWdG|kRWc^IS5sEI$?w$}9fY^6#a0Pq0b z8=aHkbSiA~E)kVCs?lRG^CuO;v?-bM5<)ZZ7L5Lhg^u3R4MY1M{Z9D&Xn~PrH%H>X zF0hp+GhamTQD9={Lh-vgoh}w;IMFnF<)^R8oKY$~QRIoDkmiU#ER*u~}PIQpFD<3SD0J1hI-zi;EC&=5b|6$JVg^Bn$Hx|29Daz&Z z$?7u@SQdtNr4%&&z|1%+Nh%ZyU>$+!{yz18w=i98CRE7&*l3^Lch68;ihC%82@E&mCsLRtsjrtjf z29Sr`&Xs0!m&oBslW7%p6qA(-aotbQB+%D=Pr6~YN=kU7>i~_&?>&vug@lrZaZso? zM##6d$A6i{!n{YuqHJmgHSM#0h8~C8qTS;Calt^*OvcCFB8X|<0~dGI98dDe{}tE# zmktKkamVckc*pqp^!vV=uAy+0tZc_-!pS}sSo#5B!ci|HQf{bZbF>6;)P@ZYIp?!m zselU6gwxMPZ3rMDAoD)OFz5&9Z}!)fr(MhDj@)KC1N_=ya#g#Df|4yrIcQr7VoJ?& zP{&e3q>)mqJZK!`TnA~kbqZ0Qu~QA*sr8tc8819zp6jYi?Q`4tMLH@6#3NMC%w)qs zLq4)Ebe!IX&Ts1Zk@|C=C33jj#t^*Jb&lCgDUaLSu@=EA0d#O)Df;+%E9XW#OpM&X zLjN{!2)f{gDqc`JFr55IF__jR8e8Xxzaz0>hL$2e(Zx1U&SpLd8hum(b`6cu(Zi97 z|J?*FCT1$#si823ft%1VF;Vt#F7PzczNG28vo$9IZ9Lu4>^U54ui{s>tv#9T z7f`AYvq5kH@H&PBu?r@^X3WM&f#AYgTdXtx?78jYjD<;?z0LgQ&o%Jctp8~AD#nIB zsyXakws{!?R#gtz6N10v{-*?Z>)mhBP>W8d54j3MQ-E`XULNopvSDDMHWl{i>lCO@ zD-r6qH6z_MrnY6x?lKdI&}FTwOEd}Ll1h0ar*pLmF%6*6t%-2*YmOk{2^^JJdquw( zU=zqL#H5h)Y)~`yNqEy7X&+0rH_wkmj6CA;jP9htkwFcc-}$Fa6eiX-(RVgt!5P|U z%69b$-QgPdf`{F=sqe!GGWsU^I=GLFFc&K0@YmGS8RC6D;~(aREfhhdRhhERa8pB8 zNmjkH-l(mBDUj3Lniy5+b>y(~kn2B^tmOQ7v#aQ&9vWY(e(s$>J8FzYPZt7Q$tS(i z#kP*Wu`#7`R7qa(Z7cdGt(pa+e)z~q`YL25+E@HJfL@A{8ROmO_VdzAGEWy44_OG% zirYeqH7mH9?{yYz@w=rOhzX~V#cXB#Ob8_V{|ugwk!M4=yPC^BuQn(~{Yvn1FN-?t z?Zs7;Wp4ZBX((*N9WWd2UMaV;;}vnb6N6t3*|Sa2FwPpJcyHFjo>SW=cYudo{-Jld z=*(7oYAS6HI(FhzuiOQL`T4v%Dw2NkT(z-RICLOT7#()MyZ?h8hv~aS#H2MY7|MF>npcb1`fF(sjt zyAWg7Etlqce`l~4VX}3WYSjjGZYG57e^aa=_1r%6RfMPMDCRg1aNdcA{2TaG(=JWM zSPF1q5^z;kSggk5GPZ2pnna37-+P3=MJ^h8=4L&YNu{nVqP*yeRfCO6nXs#>r&-9T zqUP<66q~6rg7>!+Sh)z5RSKHF>Ms}3%d8xNs8r(0+%39?VRQwbG6efPBx`*hDjo0c z#I`o%BT2fxCC4RgeKW#=Hn34)5!z#3%uj;PO~5(gf@n#4lYt&1Taok?o)w<)0vlKe zg*j>_JoRjc=fpE`KiY&0>?@{d3ChoOiI+s%62eZLeo&ZI+-(aj5s9cG>`yL)pE%`4 z1cMvuD7Ekh>Fl38NOabu;;i?H{TEvaZ1-aXz=0m7l7>3Fd_?vXY4zT*1*mg_jIkDn6cMP)`h#XtAJ>=s zZ8eBw14+$feQ_T_gVfnoBlv~d!$9IMNQ@|WxOi)?_P_A>M}&Im*Ov7QzQd1%pA4^} ztbIzyh*l>AS>~ZuRR)${_v*d=8vs7$@dB3pEXEA(g=QG)6bMdf|21TpYWNSE?Y;$c zZrG|MTZgleLH7-y)-bs!n1C*{@46atAcmtgXbc62=eNN$Y2!Cf0l zo>`>b`(W4p&l&vSMlcvDSWb;&Gs?v1Gi*ImcyoQeNz@tzZukJU&{190EM-v*nG~+N7Fr3d9S)(s%yAxj_tC6Wl-%FJxmwo59RF0SPk(N!Ub`Kkm_Q|`=i}qdnJNOt zEsPc@v-669hqTBg!*{=keypKPzEGK0HL1$#IxY~~cMX~S1Lw~7LAxwCX(bmEVwzuw zMvO=T3_4OsJ1h{A*yX=hsbk!Oy7wCGMk@FP?e63}to8)X)O2( zH+ac=V231EFAWLj$i|YDlNUr{2RxQw$D}alZ=%@h%+$0vQ~PnmSXUz{L(~8mG+YQ9 zF(y3$w0N-Fak3x;`m}Uu4>GhG>ub1LD0queh#kbg0?h2m$6%j5@(E&delj7G$8T0d zKOcNsbOP8nTs8Z}DiVS#biu006A!hZq8C5zugThfHbp>8~lJ=#b4 z3~%4K##8SGMN_y-PiC;aU29QwN&JH&E85<@RW(hqBm)+wk+_cbZ+%a*AZWcZ`UF)+ zJpM(OkRn?(+T?xaa~oQvm;s5t@7|-R*@o-_w&35rpK%zjv}y6t*VC@*Z#*ZC7l&;ekMeNCrYS}E< zrP&c17w-_yN4H`G2T1@NL-~?c80f~j+ye+wHV_{=Q%J~AW88b&fTv$fLQ%XsSUgjc zFI9Tz$AYNQHHpI_Q!IhWN63#@jr2!Kd5*_C$JP?ZQ4~PA74C<=otZ|AFIfmP^MHn@JwPVQ=7`20exg{8j@-{+uZoGJF5|;rZEC zWPEk)G=Jllso5W1ezgM6mMvw! zp8UL3-i@R&jB0vYZEORLeq5Lo6eE4#`}KT?xB^pb-osv1wUfJdWeRJI<25|^x|vH> zk<)}WK7lWS@hPVxrbc$E+k3|JfnzHLP4ft5YK$v7|1TI&tn!KaDGlMEpwqWAcG!f1 z=MI6nH#wnm4tTCCEs27TW}~Y7nRTpuKJq}`0?}L^AccO$xu6_c601agEDX`xHKU~e zY_HY~NE4Ar@hMwB;w=@F^R%dz@Y|m!N0G1gZh^N)n^Yfa2?;+FfaL7_(B~hHj3xFo z7M8mvnOFTf;q%4q{V2VA$ekr?M$H7`XS|!2rzRX_u@S*7M-~71AV*i2>cIOAHKlwC zl&&=ABL?BadKz&d`q2gdl`-qI!8^6>&|Hy_Ot-)1+>A*@LJ9p4B04SMenT2WwFN6r8p&v7< z4Bqzwlt7D@B!f8Ll$-&fICMY25B&Gr{+G3g*ukr!UBs}Nx;$k-B zX!p~yD`QV(=OZt|ToiZvN8j6nohzA5U<{=zo$sI67uqVdT|E5~__p~iY-{gAna#On z=-raKspC?4Cpq4K7HvL}>1T_82#vUu>(zF_2nK^U;+R)Nus*R^n;ZVixd^28s-J?N zqsM#f@hO?!W77&s9x_e5_A2V!Ss<@bf#0T-t4j83pF{C}^8;Xj#ouokr;|9|o^B6d z;)~k8jK<=d;nGr z=>*$!9D0m$d;=o|D(~a?#^+`e9fqZG4m~JC19VW1T9N-$&OYTC8T`!toQ<%#nR7Gd zC!wTOQ`dwybS7%)RXSqw-<#}pa*0x`uq*<>L*23m+GUAh&cs+U`l!=>TeV-G%v7Ns-5bXpoekBk0q6T(J-s#7 zm1U4C<(=L2h+uuE2pkK=Hp+*y)f6wo<-%p_a=QQf9YA0HCFEt+?J0T^X?KA;*Hp59 zxcK5|zbBS*-TE;Gb#6FticlQ6qukV%1Gdv?sr16Ujqgxr)l8#l&Myz&w7A60FGB#s z&w$k4hq->{jKUZ>ag+b##W0=I0)9g`ddGxB@t%AuwF+OdG!x@TL+8uyZa^<|PPPcP zLN0{@2+y9nW3(gE@E>NyrKR@mvtW@UCdzL!KYQ_r<)hYHEB;!U!9cFeN@ixQV`MSu+ds_to#{64 z!z8}LoBI6E-wph4J^#~nW^(gU1#j-4%}h-HCQqz9Ak@C`_W2lr=rhG+<9Gw#1=cxT zj2-Isi>*dsQ-6&;+6@)bvH7q!9jtV(q+nrPcPho|G!ZBdq2V?=p8Vzc*q)8Y$IJ%| zvGD9eR%ec@a`4#YzC^lKNVRXGpUyk=ZyEND!5sQ!Gx^kwy0!qWb9TGknV#cfG}jBL z^Fh$vJ5nBf3dQykSGD|bLcD#F>&QTOD-b)3bFr~fV6;zE&)0=g2e_-q_(|P%u z70Pfbzidj>1Bbop&V{(`wm|4V-5LpWwgxt-|fm$bWXwpS(ca#2t)5?4n0@bqi9 z^#j}}*hW$tRBhMO&NpckL|crUI60JF>bLB!De5I-stYyf++w zN;EKC*ai&(Z}s|oRPRqDlU(+Zmial!L^DYH%FU6Ch_>DedjLF6jR4EuUP1I1xFUDkC z(=mrDSL{Shq|*%E)d8LN51K7t5 z`A+D7{l#qes@HA$bDDfIHZB3*vJyW6?CwXqnY=nN5s2ZwaJve==sUA7gG56tnh1FX zD^`TOoVh*7C6Lq@E@fu){XhmVXwMV@6)9h_#99PT7xsN+mG~-cr5{f1Ff#PEhGK?c(R}$S%iNy7Uk;4|OH(Az9By;(B<;8ma~wfb z!4&Ur9}qgf3|QK;0$r1CDF72Pb}!1sZ^Y*&x=El>-f4}&%7-68c5xD%f10EfeamWa;v!tQod!G1CAK>5J!@siR22K<>ED(p(n z(~+5h+t9fvX@q|S>RF_qPt_}bL$Mtq!FGz|o+XaM7K;&)@*gp24e{AKGGgDo$8xA` z85QaNmTm&L+J2yH$_l=1Cy?omnK@7)keB}tv;Xhl-lxQ`@??s_i9aZb|F%Mq(=6ic zO!%d?cwH6u3kka#&w|d6g#C^&%qQSXTG)tLkTvl}0wei{waeW*+-Hwlhwv6%igIYpo>R1%cPqDQmRNO+qyLh?hZ)}`1uU~++JoU3bPnDo74I|4B zLnTQUTq>aFHekAJCX~n^H3$>b9tV)+3dV#SWZj#8?4NZKNpCXgmHyeg5z6P5DC9+` zW?eg{STg-OjRjQ3D^>w=u@4Vxrv$-<@;ut5xG-Cpj!`G9Gd=--9>?aiy@1B90QC_aqd1z$~WTbVP{@4KwtotU!iFImcC93JbTS@YAikl|2SSLe0CnxlSKUn|+vJa1RD>yCbndBpb%W%m`ZH>wR zqS4d|n-I-66a|z&(wN#6i|34N7+k;N=3iGMfcqLXiYIf{FAE<(A$809YlT*@y zz2sUrlCD6>tn((VZM93apcT*?*CfYQ}A)a1oI<3PG=t4xS|k@8;a9fMnt z%$c~@`3OP1*M#$7@!!MuM-v!2KNPmMAsq!gQfg1WPSyIxLtd;k<B=D@bqOw}8Kl)BAQF(MlMor8z!#@_SXLl* zBx_-6k8ibC%maKu;Z(GL8@o2JX1P_b3B-6*Hd}#L&RV?%eqL0qpMHo{)~~lXyUy;U z#{g8T_0CFh?*Pi~&TP+(09<$pYC5Ur%+cy_qCpPjO_vkvYWw=!O?IdsNVHBkX<%n# z-JQ<8ZRpz(Ak~?|0xyGG$q5;WQax098YI^wBd5IzxbGe*3P2tdX*^&qW`wW~BNyj% z?#wO3_*8&E6f{SX3QpARKOTKVA*nuQ|l3gHnEEZRTD#aHRAJm=?J``G~skWTD{ zWSsw3hMqKwFBPyHbQs(th^HyG8af#iI$av`4Pj)66pj^9$}CV+H^(X?)<*qCyKSA=Tx0n!>U~@(F_BeTCyiFd(Ht^ znYfSAlidff)D0);4M22+e0)zepw-K7u*J?3fv%N3IUWm29#Lh?zD2Cu*{C!ac)Py>>Q>%upVIlP25WbX>r zC5R=;E4^8Ie2swwvvn9-ij#~8p5U&}B{f^V`q*(?({2*3)gO3Fry0i0v0RJ;0s#Xy zNzFI_u;3WZCJ*lRwBz8T)Lm=Z&PurnTV=jCZaB^g0&Nfhd&QJJCVHp{hP>5L&<)01n_=W@Y{ey_GUfu{!WN% z>y`9QcRf*cmgpj;5^gbJmb>5KK(Ycw5iLEF_pIH{)N7b1wgsMZ$qtepp&`V!g8Dw} z7%0wHcz@irs@1yEOpdeo50R>uTa3LPvxxS(xI*VZYGLV@t_4ah1J<0X=nSE3jMwoy zoRCr4syS;T_d+OT9Zhg4Q%1xD(U=>fAobo325uB1Np+a5rCPi@1a-za5|b(s>(4)< z^Fv_g@u}62*D7Pz0?|c$0|o;KpZ%XDN+)TUa|jU? z-c_82Zs`W`z$7;%*qe_jOB>^VYA~jS;rB+M0I4ngK-hrs<^{02u_?vFXw{T!eoV{z z{s^M+6!ad7$IyjnxZplZS&JCHx%1Bp0AvvHG0gqjPGJYs5x_yeeXVCMN6y5-nkd;=ue9oOq$5iAYUY zgoEat{?}@lVtWTwhXtozIRu7vY*9IS8Dcds|yo(|O*WNOJ^`|(#3AVj8Fb}=p z1zNQVZAvBeQg)L%FIkzoTX z?#9BbT@ zl0rmmBJ@FBaLgkV4wd<4Bw%jXyRl&))mOVCsk039X8&CKD`4PQTe1Af)X`@=>Fajh z1iKhJax~eNy{~R7YAHK;vMarDn@b12y$Ov_R4a5o)e9$|H$(}byd7(OMuY{Dv z*l|}ftRR6pp9(~Y@x6(9JYe37o4F)z9?vs?dd_bV7%+XYfOawUY1^x9MGy!UAlR$M zSS2zWT}&y7_=SS&Eynt5@fS5oaAiIZQ9ae7*!*h*B)t%v`GaDH0hc!lfTry%DSei) z+1PJ+vrH}AO(1~(2liZ=e#TYM5VilY{bACS0gdFG_A+2ju^2V`fWjf;a3@+m5=44@ z=o9yRIjEBovTL;+fp^R}xX-#8_UPh1F*aJYZZKk&oV^Y0jw{2t^JCx7$+GepUfs0Y z#^yZ>52z~-SrR+@wx%!u3sUq}8E3We#y4C~VY)B{Za9E(ndP76PQ(!6I#M$4u0U?k zw(^zGU8libe@qZ;sV(=YyNG$8qZ*6;r*_2L}uG$$Sw>h+vkHDf_>{ zdNYkVRCN5+>A9Z8(>>VU`{W!-3pDE&_+aCxRMDu#GE<(XIkz)v8UT zk8`Y#c;d%PCN84OJM3aIaKm8%I`py7*!u^5W}pDB?rhH0r|2X{(-~_ivy5-58ah3} z<(0Rq5axjvSb7TszC>9&f8yvSyf<{32rcHaq>sOkeFvy)doAg#qvHX9TtC5CT-+1< zgeMgEe5bYpK!A(ZM*|Ew%1Vs*(9Qflw zqCAP*P(p*NU0r4hhKi%e3FN>MhGG>YVpNgAS(`-I3j=PHd(haF=5upI%~+*$0>e_` z&kN?6(KH(2?KJ@)JWdi_xfbFIOLQ329gK++%nu)EOv($vt8! zNZN;G%wtAhjWE^IAYZSE4bnyS^-98|ikz$*4hrMR_BA2vSs5fNJxfVuN|$jDlZ|SN z5e`HzMH6ZUAX1USP?vJI!uS|!W@61a%$xe+ZM6kZx6grw_o_kOR12UMa`11?NxAN? zsl78KnBn1i#8$~yHI$3O3(qttw_V+pWj8TzQD6(T(JvGz*xcIi35D!wL~6E|7G}cv z&vob1XLfV3~P9H?e_= zw1(YBSaMq&2}uP$GiZEO_C#-mtw}j9 zDRmz3OY5VY>bXleS)q@A2E8NB?#}UKFZG+5OUT(}bGF=vy?2Ak;xOqF46ew`UC`b9 zb!y|yI9E>&z=N(0RN)L}|mf1UfHH^-8zn-Di{leBA>H z!6h%IF>hie_U{x_U*EsoMv}#-Nnr27gpI4eU5G?cy zW;>&Zj4SE=FN0yjw5?%^hQkG7HUcrvp5&HpWj^MwIhrkw)&X;gT5Y!Go`*Qqj-wqI zKNo?t7PxFxo>=c9I7`u?Ev_f$Az2wma}Xp7Ght*}mLRp9YS2F!(rOrt#RKYS;^i<2 zY4Dxy;C-e)q`n1aA0b1?(oQV8Y|eAO6GKkqqWwq@z*|v}ArqlMn>q zEy6I3BZ4ECeO@AgoHks?SnLPE_Ak5@3(WYx4haXB#VzKFGkt!y)18as@`wi{*Bi4W zpp(q!ElLiceYMhCGUoG6>@?}l*rh4L)Ndo4@1}k(vOFxR9OK5~H%GH_2D;|m4N_{} z>nK+Gjt}lnps=PmF?J;I_)*mdOM}7DcgL zzSe}Aa#(eFlnA72Ei4F zc|#qPPMV?RNd>1uusf(L3;R zeUKXa_;r32EVk5ZX53JgHtgj#OTU|d#Cy3%de8L%8#~dG-k~R=)4<}-!*|0JK^f|9 zvLhe>yIld;8Ek50TJF&(ljQp~!td}}RO?iPHUsksi&p@h^!@9&0%~tw4b-G?7T?Rg z#i_}Km!Z*z8$&K_GPE>G88D%bKF8>)64gZ%&3fnZHT*POOVA5c6Y!-}{Va@)4R(c` zLCjkB?@iTep-l9b2vh)(T%OAQ?(^?P&=C2*J<0<{9QIC_rM#6wPKF0JO& zWAVY&f#ya)a!cQoqjS)TYFgu2mZe*_Y{a922x?y%ApH(9_@_P~i#ph7D6DOu3TfDO zkR7jx8I96V=NC+0I?j6u*YR?js8lH@PE9%O1yf4K3an@@y&PAX`h8<>4yttR#X(f* zP1Fdm`FZix#CqS`fGX3Zodx$Gl=kWHPHrnguoZ+%WyLBOB%p3UoY9G{fzrFGD_9G9~voCo7-1;NzVN`G$k{T8e6k!6%Sb{Yv;{dBK*~zDogcLZU zxUZ)X1iIo4Iz@@(ZK+}cePmwW2|L@wFuj+FkN3vA9}%TSk+mPCedWJFg?4KLzYoXF zV8U&(dAFAv7u)$y$=H!<7;Ydn^m7BOkL|N`Zd5AM1xmFzZE$6-n)VK;X}DltaqxcO zjK1W}==h1fFi!ziFb1P|E{SKF@o#lbV0NjPNZI4t1BQO_IX3&+_0Qj!cxwNchq*w& zd31TTI?(e=ZsChEs&XKX3fO`u)g9k_pqBlPI$X5RCRj)39uHr|IJt|#+?&42;?ZKq zGE$fjRJ~uTj2uJWIvMbAN+2LK{>twViL0ip8NYANSJhBZf++&~R3aIr`PK4un8E`W z%IQvrCN_HH0=;>q-(YFQH2*?wiI!4#v8y9p$?-LGfe$DY?lC=eM>Z>&z>=Iux_&o_ zWulSjP&42W`VPy2CML#erVJ5gbpy&7;$vJokdebIV<3Rx+6h;CM|zkQSLn{JGwuA- znDMJ>Ss$aO(gd;~k2EMZ#9cAV?X0vCQJO>9Suj$9?%I%FwWq0vwoYL-EyTQa4*M@$ zs-+Hl5L=l;=tR+V*tj}2L7YOjb#|?8T{(E~WE`t&vn*!*Qs&MKYRqHQ1P|>*w!_Dc z*K;;m$l4Cg7EKLK1KsMGBXb!th+`2dOT*40vB_t`unZ6w(NVh{=+msGoh*>~{}V&J z?b}qaHj|$U&%ot77u&mcqOO|KDD5bXGCi{!;p!U>?#gM*U;fhQ`}7)gm~WOFN+tHL zji4uR?k+bk#0BzY?zg$ol>=}$!UeE*b=8@6+eS30eLt=kPo|Ixh?UK^k{K2w^0E2x29N>eB0C0XY^-iCGru7E0_?~I;Mn}~({5|A z3fNhcKhB||;OR)0n+|)=8tpL=x7A9DT0aPmAn3RD&oGd}c%SoYN1TRuL(C0$ui17(>w;I1@lDCQb zp~M&Xc|Fst=vDgsHMbYQbZ^U+pohH01CZM(`#5W$q#=52TjQm%h4urDw=lwdSGr!; z1h_qE=r_i*d5{P>@4Va2CX5n!hzhMzX#3WXT#Pp+S2tc;_xHgnF;@Tco~Tw?1+RKb z=jq>EUXX1_If(>S#cB(TXdq0GSJFeF3-r75gSbIUCh<-eetRqqyLol{O{V)zKj7{= z&+mp?tlK!1Q1qC`Gc4IuK_psM4gwStBOQTCuLj zEN%weK%X~B-3&bEOEQ`wXoIuR470EeUC3Hxh=?r6iyRcA3Jqv87m`tJ#0gyF zI#7c==)eN};1Rrn4CsXcn1Fxj3y9{5RA*BcRF|HUNTGpU^B#v}f2eI_BV@B>$M&o4Y1nAC1A0boo8}L0*?^D1eeF7hVJJgU`V?;O+2X_!xYVf)AnS z$bY7d{9oAbo=nYQz6+Mgjy6b4Gy4_Q3SGrCrbZFY`K`NWea|gBd!JVa2Ic(W4jKzD zj;$ew*TMg>t$d$?aPwju{8l-#nb!7j&Kd3?|Nb^w8874|MH9Sm(NPx}e0*(D4XqkEr$$r8d}6wckU(@bRPwzt@f89*EZ<>+?+>F5hvajO{RCw zih9B^ztz-$57UnsohAl*gR+C^tznSkV=6wrnOss&Qkec2i9ISc&08S)6bz$m&q5(L zjhg@~4<)5V+MbX2EjqCN5f7tQafXX25ixld*#CZ)B*rtD22TF@*4+AfAP?nRac#i~ znm5N&CX+G1BM;^>s0u{9eT`4A`L=11uWf>mGsd;as>uf^r{0nD5<3+Py6>6*G!59V z1f!Vlr965^TI%FddJ5s>FO3Wjar*G6?|ob8frzKiJd9{~gOcP5k4THr%Bp`ztz2c8 zw;%b@$LQhghB`kg>@2&}b@=MA`@~E}XJa1%6X@?#(UkZhhHfJ7ZbVutrjuJI%O9U2 z(I8+0*ewXA)jL~a>AZm)@}*U+kKOU9Ig$ioI4XoKvjtEU*ttF>V_IfpgqMN*$-+1& z4{LP2`t43d^2D^ikeMyOTp9NvV74b*1K^A5y>xoBbLn3`il0-t%RBwipfwN95NrG@ zPgzc(0ypDtyV~)I4Yjq;)Bp*&G{QMYKNBkQz?-W1b9e+w0jVsKj`5mqn5@u&G z3%%TxHF`n$i{k~Ul?A^p-M$h^ABDy$pj4RF-c6~h+7)jr-g>UXkzgh5ySyY8Ogl`+ zkcVVbJ*9bL-$J{~@Rx#mL}5d_6#Ybg2XSpU#eaDZ}s=*AE*ov3%v4u-THblrI5kRTN6dNIRPjS z4Yhi-S?ImaQ6^(bJ9_)@$+qp=_HvBz(mf{EDpxehbfi5OEMGa(BA?sh;?ks{I5}#D zILjK~hlpxOC*L39S!k#;xG7$mwRJOvRIk$G*rl-`#2wYrPl!bO6cKw<=|U3PT=z91 z%Q_@HD~qSIos0kSLEHiR@~v`C$sC+1R-CO2s|fp?+1+V^y|5m(7*h*qY7&h;>sLgj zJx;_nCp0Ttwj;T_2-xz#?6eX%&c2^)WBu~?x8G`K|2y2^+2FDezFzbFTKX2_B!A_i zZ`X=5woCzMMKUT`@P`FC8m9s`!eTl6y}au3N=cyLr{%;S{+b5C6N9WL6TjZh;dmR_ z9&1xywcXlz_Z~^?QRfCSdG~XJwR2OlhI#aTAQc$`B&bjvicr77c&QzWSZr0ZYxrac zs>V-43u(-j57d^&hs)g^EGVvO#Zk&L_?M187kICIIKbuMwR3^&eYcqJAFRmtB#(DpV|A5 zG>=VpIgkD2^5^NJ5LwuC`@MQ96jTA}wF%DBiMW}hXoi_O_^?=!< z|MFm`)>vzPz()if4ZElI+g+xJ#iH;&2a!ww#tbvGoC6x!f|&ieE?X?-Mp`A@M>Vf` zzv@3}_UKO#<-O7*IcnV|CIH6i#lxpHe|4A)@G@w91cC=ixUKq{S32?WaQMRddws&I z>E_%&RiDmL-#(m-GST;bziE__;0f0F()~Nxpv!j7X4rNx<2$^woQNOQS#}hT?(CPE zK%n;j|BwG@0tV@E9|-=COJ8jK7Y9MWq5KyIL&Br}7l%M0ppnKLC2A-8`1lxxcjkKw zKMZy*fl-6)(tu3;{ah>qSf7VglK_G-AP_+cPGf6khLicdr=J0afJ43w1^QoajN6ta zCnh;p|4)7jE-xk~HEHRbE@?_R0>u6MP%>o7mK&3klCJ5N?&;B^;H9$vhoz9gmBdD( zPQm;kY%PG|HRj#elHhac{C+elcMBl9bH=W}t&X=zj4iIXqV@T{F9|)q zBgybw&?Rm^xu0Y1yyE}plfo_QxD%nK9M#7cGwY=QkFUj++-r&yW}o+xph8=;GTxn4n2}^xg}<_ zxJ>eH#KV*>Ic2|`9a$Zw^2_VzGw0%En+lioiM#LlZs~8Qo+B3kE4yF&(#l`f$7w2P zPwGKlQcSbuuF@fy;B3Qo!pLDR>M-w_+tiCYG^}e-*&}eQR))34srgK5Y_hdH)gHD| z7Y!JDwSpOyYbnjW82q(!=SQo5i%H`^QXE^umpVk%>MK-b&yte!ZK`;CnmV?%#?n-= zGQ@JiniuI^4>zP2qJh@b7w^pR<~H11@7QGE@Uq9w)s;oJq%dJQwkTg!KewH#({Q21 zCAv~3nEzu|JaylMv3RT{_mqHHb^B#X1>=midSUi2|IWLv>Y=1Tk^XylJ5lHK?J4Z{pxJC!ntN zU>KM+NDEF2K>4%(cW@q%JfV3Z@rC0zBD@aik4STUa&8!o z5Hz6}!mxznh`r zk)a?{5&R-TVVo*LNJa37WJDtdaY#Tal9VQ1#^z`$GzG|*JEUh|-nJ3KN1=ilNr;Vb zK`NO-I7(22NJJqP@kl{pCKeAB0&w#IG=hzB+9SDyUAqGjUk-~wSTGiX#b9w*Lc{#& zZ}-&@dCd`atq$L>1IK9WhZJNRB5e-c5^xBy=^ch@A}&KD4)=ipj}7HsBL0sH{6C3{ zx45;kOJ0n|VzBRr;;?uuA&E(60f1K`l;UO?reY`VIP3jiV#cF{0_=I^Ens;R_qd&g zPv!XHAXsz)YX2MzCl_x9XN16G648t?+GpDd#I(y-9)^fTLU&v^5-I%`M<8R9G4y^~ zBnl2W^TjAsT#9Fu{ZHAT-eMiG+qul$nT$FSmqS*)dBn5Zzw-$Go=@G~!FC@BH7~a9 zz80~~8i`cWlt;2Dt1n4lb)enG*Pq#{DyHtZ|FmTa~mM7uFZ4Z?%(6-?`Mt<@YY~={uK&^q`v4U^;_nV zcn>xVga=Du0uWy)QD}5VCj?*-K@3UcP{0s7+<*``5=}H`@Pu-EGbjR0W^w_s(utAd zU;XlbS2N=h)3SqkB^6cGuYmdO&WPc^oirI!FlEy;1G6`m#=)VniOFd#GV_aT>O-QE zGO~**s+yPCHG1N-8H4i{u3f)-o3a^OwR5|-*P&a?S-4_1rYu-9Lh3OXOf2Gk70ieH zOyyFNDu#cyl&u^9L7|{w;gQf-;Sdl#ALd)j^#4V|V35%0Sa_7Q3|JgqXe?D|2h>3mv_TJGfCMa%fd)blgBe(I3IYKIgMmXtN=3_*84Cz#L`(o7IW;qj zB+b*86>5E3?qYSUjY-%Tn_^49b0i?7tZriAAgiXWyIV7x1&fxfy{EW=TX=#$x5bi` zyO=s-)|`3ER;}B-^>LPDS@zuNy@xN}`jj9DhL8xA7!xV6J$&kmuW#RbfAqw;TOXFO z5kb(bV&TGx8Hh*xA`+F7tT=&!N5y0h1dm5bPD#rkHB(w!)sP5keIqjq4`7269{3SL z97$x*Mi&E2uyo{D$cc=+D-As}FQw&F)C7j6ZVVh6-DcI9WAoReg=CR!cKKYiZt$?# zi@KrDG@#J1#x$*2Eow)HI?+Yn2Ly(MC#AG(on2I1Ro6T$DmEiKP}sIm+6aasiDWu9 zJ~1UbR9f3?I_bPiuDa>5=RWkY&wS&%riq!kMWr=8%FZt?tF#OH{N>rZ5C0PX$8X$u z^yF=fv91CphQLTstWkrY$Y`<$DezzdGg!b1c5s9naA;TrBvf=3=D0W+M;zvPJUr&WtY+MX<0=j6)l_R?>2TPw;ynZ^X#$l zh?o2@wsC#;Vr1qj9G?k-6a@(jkBCP^0cK%v$Z5`ViQ+bQdBSsE@re;26F5ZXtT5OR zlTp&p0Rclm!66`{;S!Ni(J>M%Qn|TWR!Kvkqi<~M;HtKI8f#6`k*p^{aVa@97p^q4 zj7-hFA|<13Z04>}ab?TORqHiu+dVspoX+{&&fUDumr|vx)U4N_am#jvir1)bBpI;* z;1ko(G4Y^&4QWJ^n$esVwWgw7?dernZHgqSs;#bi8fmI+?duo_6cP~&hlq@dk$D{^ z5h;=q9fy#Zo{>#bQk1eZBoGmkkt}2*2f2ZS#be7ObV@obi$HE>DW{^QV`yw@Y3tyu z5shnJE80@lP)++f(y1QxQcyx#RzcZ?w!Vo6NohGX4K0DGg{>jPN|NcQxV)PBHj7xy zQkJ)p`4*b9g`IU8+dQM7sJJ#bG(09gDJ84Cs=oR7`OU+B%z<0Fojd>Or5jIv^XhTF zLvR6)lux6I9U~my))JZ7I(jc&2}oVq0&!&}M*(4D6C3wJk}?X)s@f(N-Ik6{O3Nv( zsBWf1FC$E|$_Bw9$8@>jF)%znF*Q9quc)k|rb9?rd}?l>u(-0eK5r%xYUGqu1$t(7 zjxO$Up9ekSG0(bq+xW<5esIhwXPx)D9jmKux$lYRUfK7NQ&DLJC2do4D@Uy^QI?91 zOUcO2EiA66u5Dw0Nv4_OmS<8F5gPQF;IhMIbX-bCc3yr_?a1WH>GPLw+-s&YpT(4r zr{p84XOW{FMq#*v0Y;br*uw!%aE?cmP(u^qidTH%p9K;sCLRG12^j?|EMDQN6|tU) z0~T0in>|i>${XfbW`kXhdElM@67n6z6Zxg(HG80(Hf5@*sh$Rsc6Fpn<#dpG=v9AB zTSO%$XJnUGHdV~GkW;HFBqoqjq_$q^4ge4s1`!jRfPxEfC@iuconP5@;xo@WzWvj? z_dRe!1p@>Fkc7l!l-@4lG)-e9eZ1KYMxh;*;Z#KUva>M(dl}%I?Qbp1uCfx351OJ$3%!SHIa9 z?D0i*&wKeW&vKPlIOF3+aG64F@6rqm$M6J7y^Y;b)p}L?i--$X5Fy0)Q8bmwm8(}T z3*}ZYTU^gP2T0J+2uMI20$O?=8Df%YW?ABn;u#bgmKi248_r;{$yrIg=H#naVtkj9 zmQ!`5rRT=X+6x6`H7z$kA2TR^;#%r8t$EAzoTBoon$ANaW8+gYa|?>g>S`w*FCM`2 znimz_i|Y2nq{&jC!GH<3q{xt?LXRO6uDRzK!Z^vQa5sBmSVqCXA>ffyQPVLnvEm4m zqQHO$;$*1NphcGvQ&#M`;n}4b3_+mK7;L4+Qg5)kpA@x}qOqy9cZQ6cw(Z23M{msA zu zB`Q>b;pAK+prYZ97Ci<4Bvd9CxTNe+Llf4pjXfOV8Uzdy4U34{$fyzUVfU2yFJ>TM(C~<;7&rtZWE9kN^laG0p0Pw`Vy==?R94j%>Kd9^h+V7;D{ESK zifDqs0v;(PEj<$(Qpll*6|7+chBmqwVIQ~1;SzUX(CCgb$w&2lg@kD>u$N@sds(hfI}|2>ZW_1_{^^n(dpTRW%b>i?AT|^BM1X% zcoass_+*?YO?MDTXtca-Cy9uXloX{bP3g%{#xj+)?BqOX`s}&OSFYZ2{f1pRvLZ88 z%PDAR33W{DTx^Kgm(@0L;eW>Fme#gz+;v{J66Ua1?T%|LsYwAGsU>Gt(YELgi zj4{D9Yn*b+gE<^8w6fl4Xmotpim{WYE?d1%j2b_A`obl9D*Z9@*~$N+Wox$V9hEIw z+hLc(j*2?%yvzP(;(^=wIsq{SQ&tqGBxR^TW!m6xiIODGH1ljZ!C5YFiJ9x%VzAGz zk#2miZ@t=~2RiLaaw5_aUrsC3@G&i+p}B*To2aUu3tzI1?b?}yw4BoG)>rY;U)}3N zuQ#jJO&4wYvd)5z-RXDYe1>@=E>bza@#M6B?BFxQha*6-NwhUw}b6GFPAP}*<&L{LJ zi>+y!00K=x9IY}7`3A$y+BJ+i(og#c3ZqikA8^ch24hcz;%T>}y5TT>_GwcezMmJG z=Gx%Lvg68Xk4IS_`TEWNi)@tUe=IYP*Lr*Pzz-?wX@0%TUpJyeG>Ur@0qeb7Vj@d; zVvbpn&9(km&hM^JL>&Z?L{VFuR_0FEKI>NM`(Act@^N7H17KBQIKGd`#0+MkJVGI5 z`K)HM?8&86p1a(HkF-vx!mvGt*WhBnC%yy)EJ(rH4#DVL&e6xU^D-aE%go$Ic9X3! zZDsXX5mP;gCup){`Z0<+reiT0Z5kI51M{L3)#yYJQ?!?T0h?GTg{2-g_Vf3$Y+Po)m!B& zM%BUsTY-B!a!4`MjovP9d?)ga)Ha*UCJ8gOk=}KK;S8NO7sJi)82R9v7RJia)n#j( zdMO+Gz8oSS&5(E;HTo1bBl8hA_7q|+^tl-=99A;>Qk&vPb`va+XsIEN#}GdF#d5nk zfL{8mf*Eyil6-dFh>pC>-Fjo3KV3_$G)yy`4NtU5NvnQ}c9#^8s*9r^n(LVPQqrhI zb`L*n9$WBu(Pr41wqCZ2eu%m)ckRbzWlzkoWIw;H7UW8(mgK#>I&h3fI(kduZU3YE zsG|bIc&R_#zx|0W_g|0wufAP<_PoCC5ti}WZI8bfc=W^gul>hba((#9AMkkv9SdL; ztqj1Ig&E8@9Rt%{NyGfr!ZA*8ic@2)?b9vv5j7e`z3VNUp)5`tni`#&#sb&$xP47c zr{;~ClBQHdSYfo}UunwMKo>85F@8yy92|`W!x6LC=nwEkElZclPXQpxX34P1MwUJ0 z)#=%fOON)%&kj?%Tt645Gs{?%|6g^>Z-4W5_O6x(k7$~P+J2}s{z8_w8D8bK%YSuq zfNuaS90mS+dUqp{7ps>m87V_Eq*g04tw~C9Vr)!wWJFkl(7GWts#UGhSy1=u3o{bq z<6>i?x=qBRp?TLXZLBRVj1Ba4)YX&~td#}Cn(hJW$bJsOjU2)L` zXPp*@>|8i+&g`j^CXOFFX2b?-tv+b?RxMjHcW_|JE=NZe-8FZ)&Skb4W{`TKiR4B8 zCC~COw{krDv+KrJzT}1P*@f<7mpz2uuliOk>uReiii`4cvNBRrru*>`VJ(^kHSMyq zsotAcFP_DnYgaCuJ9T2yx)oCl181ULdmU`T8qL?rNfD@(0fA(sgSd^Vj*#vwtb zPIcEwJ8iYmN*y&-R$gf(6;o6Z1>}>HN%;@^wvx1zF(aOmNhNF=mE=skgC&a>Eto%k z*#6H8*Br9RDl4>BIK#Tu{N`vIyX%JBsIX44gg^ju^wC8dHB?YQ4q4dK;$zE~X}G?6 z>aMeno+t>WckH$#zV&~@6_;Ij`aySMpLTCI*0pM+T=E{Nai_ z+3;x2|8i`uUab89TOSj=$D+&{U%hR;{mWR%TLSROi`8Y_QH6 zD=e8apihSu4eFFBk;} zVjaCPVA z;eLLwwYD-fG13?4YN#tK$;n8FiU>P*=B5AEs~&Z)TV1Otw5K)AY24h@KvP3q&544n zjEGGe-ZnK>S5=ns;JGY5n-uW_;zo%WIE(y84&sR;V`)lVYEqJn#4}BtQTWtyA!d|_ zIp&a?ki>xjEDWq4=%~qv;h>o_W6A|5c;kgTZrEWBix3WgA)08Qh6;+vB8>cIn>}mh^r1V|ef8B- zR~I_fiPp8Ire#fPOn=XuHhJQNVM7M5v&L#WUuE}~ESf(wW$dW_vuu(6MaI&Tj+7)W z|0)*m^}3~cS$zMUc>i`>r{KIf>G-=jdMHaaS;vbTJ8YO>L9)n?xXN3+$!nb96el^( zF%I(IM8N_w43c)Lc_Llvr19g$jv78}j=4$_oG5_6ikyrX9}fou1sMqr3X(Y&|L_WJ zlTQnp(Ub-R+M+coQGrqvqW~!h5k4+9CI%yDNHBUJRH*>*I0KlBl!O2u1i->TgyYB+ z4EjINjb2w>R{DQVe@ID+kBtZo4(j5+-=AK1?!IfzIqS5=;)1NC*s%I_YId)@v>-PW z$j(ZL2+XfuID6vYo#r}MInHh-GL%+ob0)99NB!1+x#WTqjyYhDRTi0JhECe3Q&mc7 z#uNe`hsB@`4WO#-zycQ4Id=axt*y1GhLWtLsB`3A z^444;63(p|Git~dJKL#jWGa2>NlThikh~;B#3`nqW!B8;Q^)MW__1R~?_#93eY+;r zt5z=Ze?dQ0hRUn3GM6sVvtG|1BZkkvxXK0>Im1a#aGZq|GsoD=mJ~^1Mhg=xXd0>K zEKu&HPL?=fP(ZY(;lhNXJc8B65?H>||lal$;0;3W7FO&Uu`U zh6)D=Kt+LqYy$58^)+QB#RU<;EjsV-Zn@~3k9_C@Z+Y1juY1kQUh<;z&N}Ld-Q{J) ziP7D}wAKPWH6<~Tze(TzRZTUNS5i?0MJ;QpvAS9?G|C(dh-=(unX6o3fq|Jbrj8%C+oj`U!$SlVC}%I z5{7V$HJm{prkG%iKJrK+0S^T^9u_(Z59{ZyQ3VJ+i1=eH2T@XxcWB3!4bQx9V`X8e zt12z&!Rt>82?4^K>G)sAo8VvohV((`(4t9=DizLvc$|Tj8cazHWjLPJD=hlS=E z0pxwak%^&!KtoC1OaJSeuRgeU>)N^%i{?xjcDV~pt12oOmDgvVZhO7dr0_rM>FNlz z)D@&XBO@ik!o)yBK}LWryq7nba>4)kCbNq zad9b_m=FyPhIjtV?KY`eZhDNn+~5kQImH3?vxl8bd|WJ~;+w1Q&W3}2FKDKck8fv1 zHnQ3nB*qL;h%(aJsYV6LQ;tFuBtLn{NhZ3bYhUveB?~(IWgD%v+DdOUuV1@VubRYX z%#ee)K{C%p&hsDHlr@=>A!(Ind7e0B`W}iNC3G$V%ya3#d?LES!H4#2nK$j0 zuleSoWFH$28VZ;NXZ!`-XhkzJA_AV{SMt*Qj!YsVJq?j#a5{^!Pio0! zn;IKxJMO5xqQd+@UQT94dRl67Qes?eOmtLaM2luYO*`+b)2i~alDw=|kwJY~XLXYQ zYgaE{ym0Q!iQ~t<`24d&KmXbP_wDs#|1ihd$wp=~laUOkKRxMAD~*KFB8T1U~5a*onU$z8zxH#yn(NK|Lp+NuvIN^J~rU>xB z9k*<-#wyFqGsP%Fv}l4!ap2)NhY)ikmRgs?pj#@WVlSS|FMlSmu!SKsQ4o2N6bTU% z-QsVjQW1VvME@60cwo5Yx@)eiTeEt2*^)&I$BiDf%Zc%k;i175fq=HnP4yjhSXhuB z$V!L_ZxPggvs)zgPJ(#RQIUc0(BL>RQqNY_vzqVoGetqYv!jEZt;g;g>T1Z17oJ+0 zndqv@$x2HI`UM-Tv&bAXOfx~BE)D7wh}mF`pW{1z)=2R5iJ$wU| z&rT1x#mLZN7g->XQ zf*1tRpa3pVfa7ftG|ntSaY~7)FWe=U*f#y@B;aU)fT)38wAsaMR+gx0bDI-yX5 zja?%mBmkQb)dRv;|N72wmskiT3s^u_{yi0m2HM1H)`9~dxw}NNPSPod15h`zD+{NH zJNOvUmGNJ(Jc-BOx#$ps*kO+}r9hJgISKpI$)QY(HWmehzsP-*6KvtMWpts$G$T?7 z0g~7Pm`e~W&o2PUeN>!A3P{Q5;zx3TAWbrjlBFHcN5zpKuGPS%8bP=qwpe2W9*41+ zCmt&>RGw6LYTpF-1u9UO%P5jM=f;$ zgbA==nrmFzBt32rBW9;kEC5&cNjAY-EB87eMkn{)b{WD?jKL4Hvpz{O+8W6Jy%g9iDG;ak%c zwhV(1L~=OO1Q9TMbTf%fZ%*R|8B2@?Gvt_B_{Grta#AoD7M^UXhHr2jn;j;37xBiLX7cSaQi(j>9Y*8Qktj zhXg~o55bo-Or>zlVRi0Q0krYWGjSu)G+@_A{YJ|KaZtiCKMF&FAvg}IktKmxJU%m? z0+6bNveduzBDH2UvZ=iaK;hP+_)M1rsRy4IM7an+y2!yn3_z#yY6Av$yxh*Z6)U-# zC$yyu=Yn}1iJX;5f{}fkNWdSU4JRW7(O|$?`U#Nn7|*F~nt~1i8Xth!Li9J!!KIRu`LvJm{rH@4*}ZN zKx`&bg;Ur&(Kv=%F1syF8)x!>|6_;G{DH%{ld#N`nD7I0KEr7`+A$e}>0A+XJla&u zJl#P^(s&76TkMGt@U)wZh+p%b!IALW(cHFD@SJO8%uq&UsDlv)`B-44OIxmq{a{!7 zp;ug|s<6py+2(ODG%!yv+W<1>yX_m-i<>Sy#!ZTS$tk#lqhf0wgT{HaL(TToTva#t z!JOhMY^pDr>eRg@Hm5C&5n0%OOyT}{ zl@pmt4D{HBT-l8Q&xO;i;`T9#%kTPdq$qO3U=bvSrHrIdH)P;714|T>PX>PrBCrGu zZ;pV%gPP5*@cfg326DkN_=r%Yv8{@V;c@`SBx7?tGIH9s zb)Dj}y_q82D(^hZx5%<^Z(HF)v|)S%6WLu0>U5QE<#P*-D_!{PuW=bQHld>xBpLE* z%LjE6K^)3i^ePFidnpM8!~}rcT(#6 z^IS=GXmiFdux)mjH|tIcGG9jmqg@`)q4KXO-ahT^?L8VCGI0M03POgqJ)FMn$jo@skRx~kvTt!Bu==O& zYS%3|9-f?K4F`KkL~l97+5|x=ag_>}TXZw=8(ImQ`%*#fc4fBs20r#5gC z_l_rW{1-fhh2uVx2(8TCWW{WV#z{O*3^^)&=GF-58h3 z0^9A1J%3aH4!;VbU@IokP<06B=5%X@t{hct*pgibo3nJCdsDJ~KvQvNciO@bigEE@ zE{+3Uz}&PZbIY(89Lg|U3(bK1oBAfEfltfj9R}jA**ee~wznM(m**f|Zx7$?+YL?t z3D|Y8unpd{D93=gm4>vGXpmVbB|Jtq3R>$P=h6hW`Y$0JMoC7aNb6bs+dHPi0;4q# zM*=&j`j|G$;aq80ocEUVu)Ya$<4%UY52gSCb(=ef~%%Ra6i)n77DPXtvkVAa}^ccEXV>$%H zPr?L7#iNK6v~`5Igh}g28AuicW4E@V7J6B0BpW|g0i0PSwc z-H@%dOM_h+61ls#&o+G{ZUlzmH z^44v595$y(h|@-J8qcue0g~^xlJx~G!XU0+Ef52=WDal1WNsF5Jh38MiJA#mua<+7 zaH_6_h^ZdaGk1;>%%hg`K#bAk3B^{Fvu?}&z2CpS!f4E#pliK&s917VNu!ZX0>gcG z8bpM*Gj#KHq6KY)0EM&mnte(K`@x7YMJ925CpGTT;xZ8%(Jqcz`lcSq=U&{%d4?MY zM(J{dU5bL~ymvt;ee)_dH!Qf$jpIC5G?!fGf@c9-mE4Syxj2a}Rs={c`H$uQ)cSa)TML~En zPx+6g#2K~VkD~P<_1lTXjQ;p_al(VoeBkm2w{OQFDIR?9DWdSFNSi0K$gdyaL-e=9 z0g@&3EPExMFB?VbrFjk8azV2^Rsi%ou+b?QBL^N(Tw z?Kqi=!sPN6&qpirk4x*5+ug)F{fu>LBnOyRwm#Y7e!KK)IuR!xgAu@jt;A?)k?vQ@T6&q z6wpyZpp+{U2xDHT%*xz^#zmG2`CV4Z9I78Mx99acKCba%AKnY5&@K%W_FTDd3KI{J zy_8O~97P-!5NkG_rn#kZM1yEOGq9TMULZxD3}4BlRLhcxB{o{IB!2c7#grNa|IbO! zg8V;EPNw(&fY8^u{Q>@`To^zDRv0>k?6(Og2uD5-h!bP@!Tn?4x63StGW$!!1K#?9 zfBW{6$A60x2tQ}S|FqF#V)yKxHvgN5*yq>t!@ZAH;kQGrxjR|0zd1s37v2SbQif*} z_(ksTWZlO|_@5&6SLv_x==(*ou#=CclfO{EenP&VNoewgf z#(x_QmiXg(`3H7I`E6|pl;v;dNFdGJ8v@t}L`4JsXoywbh^7fY z>XO7G+`xYA5ugCtONKNkuwMc1o`EBMoNy~GZSBRQlyMk>Xj`=maX{>k&1PnC@k6_N zIu1bLZhNJR#b>rHK0Z>SS#7g8H%MOblryHh<&Gu5#hkUH-hBS4J3N8ctbq-AluJH0 zJm*P%lQF~NulYTinyY??n-He~$9MZTdo+Z}CKVv~*e)d6&}lcQO@mxKYX@OqBdkF( zJpEuiiz1wJ%LS*r%pFAnC2U~0NorHM1|sDn9hh&5!=Sw9Irp6BspFm-9{L<}48gz~ zZUH_+69P68;y{|cb{AU=efQd^#t>Eg`6RnCilFIWYFe+ zNd`DZ@RAN=PFS|Z7i^z=baBQxK5r4UF@67mGcgHbZl&k93ZGM_*4}$ zf)`lyBo@e!li`rKBf$&%^SU9psgH7U4h?d+Yw#y`SLf>U&v~5C>Q8*6YvaXe>WPjz zu63eWr7-053BLXIZ#ubnn0%BgcEyL9=pgjMvmiOq<&CqFJ@~CV^w($!3uaILJZxcH zc1Qlt2R|+MT4$#_Ua-SST*OB*81Hx}27Ed<+@>BFaKS=!vf_U7oSz`UC>vKi9?{0d z0>){iGDn)XakRH4-sD&sSQqy^;(|*SoHNgj&#mKGC9c!lG$dF6#?)H=>>QZU0N3DK zt$E8kg~oe;&+(zd7sW)KWSx>{0FUJu>pVPnjRk{ciAIs#1j{dnx7YQg*WG+lZ&5AA zcCB2zsoGen9pw5Q(D|d*0ix_@G|$TS!FZ*m_g%wBy&LK*`Apef?uCEVxxPrqjlWN7 z@eYuTT+ZpU3WNUv0sEU6#E5Nq^=&IoTu4 z+8T75^{-MGQqZ-0jQg`-gA1WyT{IF7zMM&7vaX0UO&$Aq?&l3pdCNTuq|Y*Z{L_~= znG#114TuHac)8#idInx>EIh^tmgWMJ_%4icf&>k|)G^}EP~0LtRwRSDVPY?d^mbg9 zz75*@cYu)QU5XG_l#O=DNey3^ zXIo5R)L}9S5tfV@c=Nwtq=dt8Cp^ASG;v$660= zherc+Zl1`VSh~Am!Aa6)E~9kdt$l+^6I|+m0xxZ6QBv&!+W@cf26>owo|m~mCc_b6 zPN6{wc${$MGnM%2R!NS}tK9ksqVL-s$2;V_Kym}+6{?+1v#BR@FJ@iXy>#8sV_4u} za^;PL!La>8x_PNvpZ_jqF)-0`ixr%i8CWH-HV}kmr83r`24y9Wh7Fj$A*! zHTk$~lMi9jBC|VcU*E4nsa-r!HMvjtnwx8GvJ>Wx=>m4ieBB$zLz(2vwZT>yiI-{6 zjx6uovO8h_dk_U0WK39Vz5 z)UiuY;GV!kU)Lj>$ny6`)(yki2j;!jZ$0344?~A@itA)h!z1a~vLLEY;UpMAd+l9d zr*!r$?ygO`)93K>Tl1;r0%cE4H2xnf&J+Lc6vAut#%dX9ZEZHRi7}(SWPvTsQ$Ie^ zGjR+vC9xhhYSfai3+3F?;MlVP5wzBXxM9@%0E@>~K+Fl;S~oPjj7L$Z^JINVJi&lO zzZe^Jk6v2DzKsREW46=3F|G5K0ub3BWO0pVr_=1hW(^=S1-a$UW61NfGY)@xI8x`9 z)zI3&ioM3GfX1H4a}3ow9X9vwp0RGL-M3@F7kvqB`^HK-RzmJ+r&3n^{?_u(;>!q{|qM^7s zTdd^+HLJR@yLL@QG>BImGvy%{BwfA2Y~lv3bGp-IZ(x#efu38NpI*A|IF7y3+bDvT zs2)5FnI1W8tnAHVdtuuIgVC8~kv4ZJNR5zf+VsOc5lsl!4Q+%ca`5}6E8hyVi0DA# zGm*0A9(&?9{iZTQu%Sh3=u~a0l5f@Qh@Nx^-zoMr`b z#I#@d`uKb+?8c2f+D%sI`^Oo1VsS21jC|M4Bf)&XxU_%Ys(~g$bKa7#;+bC)L9CA( zFV>P?210M?;TO>6X2`*?t$FpG5y6a09wT$@;`<%t)thNMdmklY#N2PvX_2<6207`) zQG6b-dkiwi=bS^^*-cRs(8XnVWUK`vD6?(gMa!)9C?gbXDSSHeVTeo`;V#1R79POsMx+67yvleAbg}_S2 zh4x^$3Eijw1^@s600000000000000000000 z00006U;u%Z3Z|}41ow+n&P|#BFFue z-lrsJYyjtEKa?SkzcemXZu`QMstayM}j|)*jZ?3FUC-Y$GH6mC9x%>1bR3jpQt*mGv zQ?S`?owRQ|wB~jiyWQY*a?V=E=v7tRPtLK`a#lGA`SU$gg?hn{+v0Ohb{Y{8llz3K zxHmug0IGszK8`v0V|RBj22>UMu+_%puKd7LZsMzkYpBYf99I8mS=fk(Kz%^f=9`9u z`jl_W^cYK$Mf5^4|(&W+ts5+qL~W8C|RH3g*fAzBQsdRQbX`G>&5)3x<5+ z9~*UMCJgzXgbta9Q7Gkq7OJXDMj@10xIbGUnSPXBWK?~;t0 zy?){#jm(spQD>^XQ#UmwqfR}T*-*WqVW^J|@_)0&VVzB7`LZuc%f^bjU9&K>t(ssn zBjaYVao1s;Yww+ux>h%`&CIX*RM#u`47=kyrdbuD!kh z9(=^A3O^xdE7VXp)V4;>&CY$mz+o=K)0}?Z9hU@R7ZV@~NeIbBh~8c9q7VXH1hIrD zw7ycAv|TqQ`q!1tq=Rprc66r9zO&IUzW?dB?MwfsU)-T%aDpH@Mpa+&zDH z7U2kV*d@ZmhoW{%VW2+`ZZRiv7SAu|pZ#{{@1I5Nq7Wn`Bq88YxtI{5cpwA~8q9-; zx2P2_W-SzoScM8!tU~8?tM8kRA%P$v;1N{ER!`;iVoiHRQ(kXg?!0S#-d&M(rK)oT zLe^IC^GCcqL>ZzagRp>q-4S3572NiJ@7^hlsPGkPs(uni4pN%eW9@v_u`b74zE`!f z{x1qY(^{hHxJu9d6&g2K((>CX!WT_lDT`>VK7L{(?fO{+l7Vs&0&A z=bMiy-Ba$y464Yg!NAVa@(OY<%{_KsdoWNH7;QShhrUn+sRoz`_yqL^Bz!)V=7E4QvCRlKP`$^j= z*4Cfr_ipdp`=b8;@BQd)e^LDxT`*!Wsy8Y}R7y)rwSa{nNQt6?fPiAc4%oPxC_*8H zv6SN7Tfh-hb7==|@kh|yLXLlJFvijtLr_q(Sj-BBrC^|B4H7P{rIK@YN^TN4eZDm9 zH}}NUg@%Wpm<|?t9D3LW8~>XaOb06=qkCFbUY4e3c5-fpY{sUd)+=ndLNHt#*1^p| zL|g_f9*T&%yQwcugET|~G!p&iY2P;IzM1(^^JD);{f#O%BH3b>4VGG#?3PZU1w{cB z5K#%mLizcxQu8|}vH;TOWT1#U&Oq>h>TjWlBg<>phUI=5RyoWT1Z0Ma&O$KN|LCmY`12{q~O^B!iT4| zHSbUC&TP#F(Mzddk&3-kFA*UU3n&&UR%10*V>Rkor=F;1oO+5?C&uZS*8mQFuz#M` z*1SJ6JDcq6F1rov5-CdwinK(v(gw6q7$`O>R$Xroe!iiC1v9$|4t9p;7q-)m~U z3y7xu9$S`ufT{^G|84%-3=}#juo)alg^5k#2X*!j`0Yl?Y+1BTN$oHp$(j`933(AD z_S({zo3rfgQ>~ic_kO3vA$ACG9A#LGyg{lsK2sDSfKdy9_Dcx_M>VEcn+%@kbolFnLBZt(8Zkiv;Q* zha;~WBXx< z_ihaFf3InM-3w%j)e!*6s)iZkx_kVWv1|Uu|E&p=h6YGTZIfj6vzdvXh%-SxUu&InL-!5^6bLXBPz*}8 z5G2`>eeYqgd|cK#LV9VlA`{TA`(Qg$k5X(I0u=>ECnT(;N1C_VbW!Fc2@nb{uRm zrb#R^mJ5ir)deLkSQ!&il*vy>gR&;dnB)g#O!9*|CTUQ|gcc?3ra!1-+VixWJMXXD z?%AG1{9<@Qlq3+~Vtx^#NDT1=(_o&U#RC+v61;eT(n1k0)UhHhErC*?KL0w?_3M(s zF3MrFi^07>BQ0Bp=^`J=4jjIBIu{%SUC7R*2*Z-sVaeRri47t0UC?DYXcxaPB!{O0 zja`9Y?L72J=Yo6}klYToL-JkvD%s^_>AdxIYPXE-+O6YMUmbqpcTbje(2AnyU~cWU ztjMvGUwUJ*uE9zRFe-f2^hx?vst?dX;zW_UTMx{t7GEOFFliiD2ax@LR+;G*xGSk2 zEl?Kd&CR=AG$1YlTjGH z$!zSAS)d*(duVj^Ufs|&fKE_{VahUP81{V_rX~MBzsgG06U8M^+!Dnls{6PRHPypZ-rgP`52pGO=hW5Fn>tjC7zfUVdAdt?L)kBNiFgpiz?1t)HBDA}*4Hh018%V+#9)KVUR4@*Nj)8>(Q8E;P25q{G znX+KRkt+}W>4V_V0c^$uB;-&|TwxFZ=s0*FQU(kaEsF+1Aw&pB05mKj5;7`UMrQVi zBZ)MM5IE}SVvHRQc;F3!9d39LL=Gi1(Zd)s2q+jN02Yvxf{rycZFo47uq4Sc=PYqa zOGk!sm$$siyO_i(amh+ohO&+pKR9teZrQwL>n{CDr#jc8{;OzLM|!B&u&7a!wjFC* zw;LIZ)?c`E#rn;A&&+DpvAzxMWPfHeuZd->Xcb$IpEP}F=i|epOUHLlUj0okIo!SJ zGyl1Aufy5%K0kTm$(wf{ZtfL219Nqefz-sz($?M^W|(J*ps~#^2i)_>3m^RQon~6; zV~}8)Iab)`QJ}7?Z)#!V#V&CSqJk--$4Znemzhd(p2s}rKTWP-BLt`Hdwr{`-K^c| zVUK&>r@r^Af9-ZyRIXy(`i+{jY|}*#y_T*}rCP({rY(BYC{%)CV5F=f)X+6Bvv=>n zF=w0?SKaf-8}EGc$3Hb4bBT>>PyQ-4v$A!tG0w#DjVCV}-<#F{#D$AiuHJUVItUy| zN*@`6fS8tvi&~`Cs;z398fvN?YnR#w5gij7moX`XH80ROP`lMKC{xqcvymxgnP-6| zmRWBf*p0oItYS55S=WZPw2kepZzE$(GR43Oqqeex-HbBP9K%-IXwDi7L>yA4L60E` z6P|d~g>{XWZ}u5qWAHGi1Vy6>HA8=AJJJXwWBO$(lX)tX=uik-HxF z;%_=Uae2cBKKJh~c;-jHI^&$Hp6Oj_rRr-ZS&E>DVwGxi(50ZV?)9WlT}=%%)=WF~ zgro}OC{V0SQ!TX7UMF2eij^cqx=cCp6{}RMQC5ZGBtnFWJO&|$7C5{JgGLg4OmU2p zIFDjjMD$`FyFej^5)hLJBaSSJXks1Pcpgfqfuo8xuCY>Zbb_SOV}^vM&pGAPGRP!{ zobr&*3^NI5o=tYS%WJ+vMogHDTO>Rv2^|9q*EDF;WyF*@EB43*H~i7Y5kZ`y7<1O_ zc;byONO)u{5D_IUBL%fsYhbEnC^vC*_GH7pLuW=kdgHB+zWV1t=f+$A4IH#qwv+`J z94P<;LN4mTYst3398pkk~nTvT57C6XzazVtn*RGGx-6HJi4b$;vCLYG~_<>>PF0VeyH>^I>-Ll=u9G z5=$=Ke8tPPbPbDCR-e^Deb;+=tE%^M3d-x7yUOvL%ELU(vwW3r^V^28En0Qz5}BNu znUfc;uK$yx#kJAl$>r_)0xj@@E7Za-q9QA*VqC0>eQ`Tl+}e43dO5v$^X}7+<`y>g zj!!SH9yYs!QbfiAHBCK^!y4db7%_VO3T0YFTZoLv^2!l3rcYrbD-w z?7Uz}d1ZBNeTS;T^(Tk-pT7Q^HB&ovRHt=W@9N{3i`Q;_{OXI}F5O5)^LBi~lBG$P zDc8uNg$@Q7V}TU_;*PH{sZwW|O|BurM2QtAVQ{((Ip(GxS6{teqteDLyYzee?Xak9 zjXKR+_O83Ws92?_?cN?YY4+-U?hKr>^Rqt|FY_iN2=PQHu25+WE?8idEzY^-mEu2< z%w!vjlxi~@M~`t-2Ad}`*s@%e$epg#*4a0aLmOiV2b^)Y=TKHzL+aF%Ph?cJ^@R4W zwYGMtlJ-R%;D}JLFVr*g;$GBt_Ds054 zNs?zsnI@so+gXcFU3#faz3D^JuX^I8$PmcWSg~H#tW(sqZTp@Y;Uo+YQPJ=TVf2jL zFv|*SY_Q8G#Sc6>CYT(;l&5H5It~+i-Lkj*YMlPJV%^}eV;82LdgG&C%$zfSXqWGA zKRA8jq5f)8K}D5TRZVT{P^Wq(r>v%-D>OE@vUO)6_95U&Dxa2hH(2d1uHIHn4Yf7a zT6=vdtEj4J)2>smeoa!)Z8S#XHiF6YNdOg5sI>-@#Zg>VRomLHr09ml>TtO|KGObYhudZiEgqW{SNoy7xXYP}H^jFNlh;1`mD;|L_aNGdb3@Blm@ zp#wvhz#NV^0+|mft<&lJrlqwzalF|d&evyeginM;OmxIZoSTDig9e`=0KhOBCT^Ls z=co#*s=hEtD7nyQw!WvKWA4hmH)JI{1t>)`X?b-WJrg?zI+^a6hDm|+a7{NcsZE=A zV{(|-G%)=j?kg845|u9$>nl_iZXg8~@_2zA9q-fIoprtLPkZ;$ifK>3Kj_k4U>q3oCSB7#072<00ck^ zDtb2TIPd-Sww*n)^RSWQmu$H4rkn4uYgv;My8Ys-pZ?)*$w?m4WGF~sicylXRHiDm zX-o^+Jo(H^58iqB(O2L8>94*aSKD`|C=iOYZ5^FGib^Z08X8+V^Ga!DR7Mq4MKx7l zP1Qw7U?8@z_2?BOY~cn?U~q(DBekV_9nnV|8Q|Zy-LquFVNP*|%iQ2Lce&3~Uhp=u zAY5G6&@*3IT}O%_z}Up(Kx#NAzp%8SLuhn-R>S5U`d?LDL(gnY0Y>2{Nkl3g5-ZdO zdk74P#*vu1Kz!nEwamNP)Gi-3di#7;&Xlia{ zYww6PY-0}xh4#3W0BD)V0}thsoKS?PQRQ zlX00HBRm+S<8+>} zxR9fDHcsnwo%$nEmgTgYWxq`GQlGdswk%}27o&EJedT_1<3?Hji$fOhR(-sC;d=@6 zx_)Z@eHPU+DbYiWMz7=+V_9GjE3qadN8_cGpY9M*6D$A|El5=LDbQo4O8Y#@`3mP# z!!IeviZb?RQU)_WVy~xP~WuWDN?Ei=4J@gVHn{k z!STUWWZ^nOz?3U56ULE0!9wJfDw^9%Rmw_~)s|Kp@juUNqZ+COH!o`?-}AesGC0s7g+RN0p8x)OXjK z244rl?30V5_pL#TJvnJbt-M9EW7J2}F51PiZ0B^iw9QLX*m*Qd+No~$JENIOLqVU? zZq;q0z%<_I`1EcsxHd(pLlMK-n3 zW~Bz(a$ndVhaBUwJ?C27^4*6#<{4k|EsphqM|tF_lUd$JzJn4UNw4?Cktji@qglT= z!qHuEw)0Tp0B9rqnIT~e@xi~&Q(o}}J)MexFHqo(F)sA8rk(x|4{^4a7DWb@8`bT_ zIG=Q*VN8vW5EbgVOswo<%0K^e;UBPsE$pG!izJ5H_5Jd>J?8o$1Dk#5!8zKT$2Sma zoW#L*f41oF(jA9p(WR>rD5j!59Q5PJb8THyWl3Nul7N6-XP)|wm_QPR-R6~5Kv->W zW6*0ga)}t^a+owKKtUqR&S#rZSYv_#8Hq zP9tF*dH~z9> zJ>1>2n$tQjwN>+;MYqnK8p;yl@E8n}g+<>B)(g&!5qXmK10~Gn!INp1M>Zq(Azl9Ayc}P=dbSUOzh9o1GXR8oY6L zeYm%~Gk*K(bXuq^&x&a_zK-K@a{N(MnUUBf`obUUs>tF9nW`cREJKqMd$kvPwg=nU z)@CMlX{SaO+tB*fv6iLRtHpd;jq+@e`mVyU427dGaNg(WF?V+Gvx-`O?vLAfDV?}D z3vb~j%)&+RfkHFX!h!y)xNIhaLc*Ys2n$nv)(73{LeJGJXkSx$q33$0Cp{>-(y@@_#uU_f?stNrXII5$TBxq$gczNkeK~-2I zBT?u&Se1qCI!m<_oKcb`y3mw`yWi?6OHkl@j&1NPxmwKd3{P>2$JoRYW--D&{1Y|? z3kQD25BMG*;vKw=XYmLRa5IfPTZ8NDg`l!<=hAZp;;C-wl1^%^Sx0q1yR}oB^i`#H zUr3l^TZ$y?R%xOIgUaK;`N{6i*2Z9Ed13z5^CvvuHaED)!b#Sg;3$VUz)n{D&M$m* z{qSOMcXMfWX5!x6JNH-TCkLCuA2t4%@Y<=w`6<8gJ>T$}mmFBxGjYtwQy%k>``qFN zSGd6GtMk*<(c!S$Ea!8XR4lNw%RB8jtX7Iw(+VH|kN-M3*xFbdgj5P1hecUgdhBof zl~*78sjvI2jhTtDK99>`&?saaP)}Pg74g0L*9Vg?eoap#6j6 *o`G-(2ahs)X47 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%0AMS(n#1bs$6amY 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

yER`b;n$@d2F(k+$uY397~L#g0CX+ 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 z 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

4f5GeoO%~u+I!NrA+ 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

3N~7#+zf7**wv6&lSw{a zgLU>$Azvs{$-ff-z}@0|-gP<>P?)`lW|9kJ>rd-7;FnsbK;hko+6!P3JGj~n4ubtZ zo=FYvN;q-OW@E9Y)zvw-}QyKF0lvUmrVuxqFO5F?C3IUUy<3 zi+QMJV;9rB3vzB^G@>Bb6*&zUyXcK+-9aS?6M>Lat zBcb%g58m|~**5(5&$q)(Yufolvf*dZU{2^CPESa^I8;WxxSbm2;Ee!DD-nRQ!ktA$Ta%xwsP_~5xIIv8 z;>0iJ#||4_O5Ct+hQrPf-Ye@j_6&gFr5ew%_R)H9NUR;A*(S7w@)(!w9VBY*zQ(@Q z%XjTF7ot8jWXFW>Mot63U`Ng)Yq&LP-_a?+F{#z?RB@KEv7|%9`<89Je=OYK8{=t) zXg4fx{w$|lR%og{%!<4iHHmLv+uU2@_k410Xte{UU`6hGkK^j$qwM$pyY`<~J`0I% zs*^hZrfiH8!w)rD-Dw&187^^v{mj`d3nc6dGX3o?7zr_S!#3nrp<$|NDLsIH-!H6P z5&XmrP^5=~TBB&oj@0Utw`R?lH)s0#)y2#Dc#C89Lbk29u%n+iM?Uczb>2Iz$J~uvfhX+<^5w+F~Z0-q&>oa8oq zeim>3e|UT8k@A}N|B2k<=mDJ18}%|!3Zz*k-u)OD^F^Bk%}cD^d*!QwY{$H-t~uUq z3sV=pyk>V&2m5M!O7Qco4m1i6dxM@^{`i=`=rRR5&8^s9$!KCUs`ofVWh77+x2O~# zM-Oq&F-sUaK^oMY7sR`g7;Va}mdc_p9R}{$BouM^l0~m@aB^dRa_Q?||7o5-As{uC zP6mr7X6&t49{%pAFNEamfybmLFj9xdrxtC0@A|D@JxBJp|E?$>O6ZR;JHSQt^G^Su7#EORw*3X^j3j|WR%|M}aKDXzmhUVse@4L1a*@h*?OL)uau zhcJK>GaO#{feGcWL)EQ%TFGFoNb0|9(|EDJExA^|Y4m1RTNh47FV0+AI5f`$xGYmaKwzp_Okj@Gsl6V6Hv^*Ps@IEAhG^XuMp z7S(yafyP7pi7{hNW8DVX-``#haSZ0eti3(aOEdU0N>1I4)><;nQYDbn1pOpIS1FSl z$0FE2d`WRY-Ax9pzNl1$_s9l<#~xmO;`H;cm%-FC*mWfDo?dhwfpyfQxRdA~Xm8y; z_?BBk9rC}lR_7B6@Av-`ydj?6UtawA)r*eR;%edkH$)eii?0dr(lCh}zE`dORxbe~ z(x8xAEP!&e;dp;?i|n`Z``pAWvB5oL-%G1em0P3S+OlhtTM34w_Y~=g8eNu-U<3eR z?b)*GYdhQi2^|+d`OC6E2m8*UcM8iArTMpPI0Y%he^1&c^)?RwPyG9T&E2S;pg&H% zBU+Pi6tP>rwLhg7rXR4e9>?l89TL&niAt0jXm@(EN)PimViJI}*gdMt-u9IXxI>To z+HbhvITD@b;JP9IZ~6!=4Q8g0-0{XE%UAH5(pqnp2RhjGof3blS5^AyvxkHdG4L4$LF* zrW?2X7&Ej_T|e@8`G@Q;IP;15I5)Gl(=M>ick&Ia{EH^=CQw$#Q_g)Z%`0YhLi@R> zEwl`>h)^`~v!b}>u7nk&yHodWl0GfwY_TgYB~7$^!K~0py#On%1svd?4)8ux&mS>6 zZM!W9wwAAUkr_T9)(O3c_3zcb|?(PF!>))F-Jrc*hSfbE04kMcJ za%GsG*3PDD=-rmeqOa^OJiWqd0_uV==Ct8hl3Q;o^=_NXh0(B9-z5y1X*gIUsw%y@ zf4pi76pHc$jC17 zY{r3M!cEFnu9`uPs+5E!WtH~5C)&A9b`Kns#=I4xLbH+wwldO49xp{0MFi_a(LJj4 z>fVa6i1VadUbn@>~9CtKuwRbaIb0XLRR`0+&k?tjz@f7wYmp|S6+NV_VZ5s z>=_bwgp`deWUuorWO2x^D8ydXCiDS) zmR?l!InSki@MTN=8itR^>jQ$_-%BV^6h_-o|60=eP3xQ?y0bIWD9z(NOieg1Pi4!; zWUUIX&DP{K44MWp-bRNn&xhc^xnFSSa@bebM~$D~k$dPmVc+atESh@5OxA2_`k-ls zn~MsSDqg-`naW}3;Dqw`=gOY&F?(Axt16OHLHT7Lh?b*Tb7}?;GP_dd5`6#`xb_ET zo)jGaBz)9rl>gN;y%1?F-KBEdc>La#Pk4Xnt=n@(JkG(to|!~+>xsCn`A0C%qJ;G2 zYQ7t>LWJ?>w3a=tcFg9+Kl_Jf_>9uK!-!>n_`n08;Y061GVIVA0YE#yYd%rZYUuN5 zJ*Lq;hnEZ9QLvn?Hp%0WWGe+`U_{E4v1esy-r3?^SnS~oj+vBsTI8fB{(E|f=AO8U z>wTL8DmoMT_ezORr@uV;)-PZAA4%c9gBsREJaF>~>vR#g1GWFV>V8tg4lsBgYFQCW z{9@v4&oJw%uCFrG!)--}7m;C?5@25uA@m_^;&KmdCHooYb?qZn8xq=Vm&@LkKfK}& zM;B1$DbfA{A>H@z=|%eVarkF9hBA77eW`=08i8;|B~>k1E9=LDB652_8Z$>Zbr-IKTA>?Y&2`3AatyJgvZdb*aNUhsMksOkCZ$!rNBuwy`?c zCdHI%{FDJklTKCnAO45v#EXB(bpI*Q$>?q7M9(j{H6A!gr+#^KTXt;!(Cr}Pp1WR~ zlv!(4jix_X{pPx#vLC0n+l$gO0KiK*If{KjEUr*b{fNiubPaGprRv`4RL=n*wYVCE zn1<_Z-QfJ)n(%Znih%fBp&<-M56^>8u>N}?L!aJ;_Kd5U+zRmDC*pHK%66k5dn*P$n|CXBUf7h40l~>0N!QUH+IV6^=SN4 zxSALAP4)NE?T>GqZNB)S(_vfo0$JLp)`eqsN=PXNLHrH+^gl1T=&B_^x06^<;X^%) zj?}hPsQo1(#i6sZnDu`I03hB&v6qcJo3G3Q(lq>hD-Xa~r=^G+ylTmYz@0y=$@k&ow>n zI3$%J`-0$fGyajI#PVmbPB%vO{#IE$gAyV%Up({X!b3(BAYvVJ{u8BwI#EG0R%nW_ z94Menc!fe>M`YpPWAFaQnPVxj`1i#(O!)l^r}00^v^{%2+5Q@bESAvZg4-L9;NCpc zmsC1Jij2)jvBH<0`6*piAG+Bjh}h`tyL8mM3xkJ@aW19J9t@#I7?Tb}R{^P>{~6N0 znBiq{_r-v`S(9ebps9IQi5L3Q$B~zJ{Sn!tCBHIMJf0jnZj6@ugqa=eU^T%1R0yMr zx}q=buM-Mg*!%D_aP{c9>%TppGO}Yzhm-!T<0p*b9aN`IDc>8xT^4f!007WxA5)PQ zd(|T0#kai@i+|+*ixqgl`P?#y0PMRE7;(8%=`aYx8vWljWG}a0DZh!ml+5xcry-h08zh!l7iNG z(N(V1QjD&xozztq0FrB>(g}UdnCN@oup*@N_==Wyt3S zU$9`3UEq+<+yWGk*(CMCl#H2}rrXg6`84o5SfBcrd6W?iGz8ZTW5Kw{No!iAkTtdS zvY-}J80=tYWf>IM=a`Xc$i6U$i@3Z7S)`@;bj?f7Bi`AR^jG;nUKsoe3sA{ui=zj} z_-cQ7Tk`p>t9bPJFZ9ooD;N`S)mo>cnapG)`}-16|m;s#lmAc4H)8uxL6P zeVVYY?ITD0Huu}~JeSLw#@wwPmVAzL87>fcE-AS$H=a!PO?lqYIQ)E@Yi!Ry&5(U!iWjydRa5E8%P? z(k>}3W}bn(b_pc9o-JHN^Yh!;%l`4>*~t!T?P?EA=#r}PjQ3_3UywIm9_3YH( zoM_yitQGAw;$R5?BOa3<|04bH2y5q+=B~cD8`l+=qr`PS168rt$UkYTYj0V(k_58OAV+N;6<&TtMEVl1Ua!$$twM)%z`w!A$ zTe`-*{P5``S~1f!Z___jrh<|GxVD5&WY_Yfqn{gK&1WB|g>E`gD;=TOm2hiF>JWQ# zbNe)pj_P3rw*|-Rgp*h8@Yw7M-Xn95>ZVCO0sw(E10ZUea1lfNs>UKJzKZ!q5zxiC z6)dF_1qBeu#L3!70KfW)ez?_Se5=xe`bv)e>`EktOKHbe`qK&$up3qv?PWG3`}AdX znWFuTLD(cC3e|!zRIR&|j);Nee^-aeHsAE>0NQnUG)`^2M{7=BeJ9Ns)tMY$Q26g% zRXwz-aIY-W9{h+?*#U4<_q9v*=s;<8{yi?jYG#<;c#pjtaVFCaXZ|Q#KlFb%HFN#= z4Y5Ph`r*f<^l^IEB#?cwKi(V$?rQTa&S1Ki0njs76;`m%y*601yyoAn+VJfapOrgVM z;jLNWu2QP!O8G;JuF}J&SUI!20F1V;PJZ>rTEWuqh7IBR5Nt{K>cmgW=402A zwwkKuA66F@&OdZ=Dy{#FF6|`EAn@v#mAD+isgzLlY1AO=-d252)!SuHj(woJz~vBr z08K!$zY@K8Re&w={ICNc0FR!ata!x~BA#YXEXw%)3U~kjdOQAtrWI?)_4|`}L-#?H z^s!ueRte{NY;4F~a0z3x^P(1Yxc{FC*Vt)01nZ6e_(Rsa!!U6{{jus9an1FVFr8Ed zkTrixbnBO&+;^K}&6h>K^KZ(Oh#PKp|Ky*Fm`RmG3a9x1K&>)RP#=aRZV;~}DgKI; zb2*ZNwP?%Tzu3jT1BPS&MLlx=;o2X6W{zpBD8{NMF%8SR2@_1VK%nXrXf`s^?kpyg zn->zPr2Orodi7Q%qHlX-R`PvYu4jg2iS1wha;vcNPx&rUt0?;lK8v~Z9l zj%s{Q4jEYjZqU+RNWA->X2@AaNK{@&pLYfh8XNolS`5D#Ek=AjJ3R$9;#0XO z?UT&;nAc5&i;0~lC`Or+G^pxJ9Cm4EA-DtVYA=y!m%G~(u-N$%DB$K0}tqa^b0jo=Nma$d@O61zw-M08H<$D4ZAa%8MYBCx7D)U$LR< z+b~}R&}r^#6Zao}m-q1ZWLwtb`{<=ZBK~uqF**Q&yLSzNp#ly&$YByy{_6c}_BGVX z_hQzqbJFD_z9U>iyLb%v)`-R%_+6XX^)t?+^OGcj4iIfMvsr~xE%lB@K+|lr4{}OV zjZ|n#9SweCV{uY~*HtgepS-=FuTH2aJrdWB_W6`_$mP|0SUq7}Lq+I6PezPruW3DR zF46bs)}IU2fCn&^e@~FF+TB}={PM)Cf!_nSWsLH(j@n~qa>bX%IYMgVFe8j|&$rIy zoyn)uct-1ACCrkU!_=Aw4a9uzXj`OTmtDq^@;%m}i5UL9eA94}^gLkgkbmLF=K;RXyZ-@;XXa)9`s%M2QcSBh7QVYV=B9{I@%;fC6z5%{A~GaJ}*#d8U50uqW+235HvH3jW} zX3+3FfyEPT0h51D1-PpVBI4~f{GW9y3^I^cU6&DGex5EZ0}h)}4Q8WC7Y!!Rs#AF4 zQmM10qcZOoSHXNW#pOFfp?$X<8Af9wK2@p-mqGDHIl>6Q zK84T%R-Z~0&_?PDJE6TJS!lERv_-0JwsXmFGJ_rSQK>m6!X$^u({Ur&bYXxkdDJZ$ z^v6ZtPk7x(hZh@E7L6wUE*a-(#iuz}dvpzR`7{o(yR|kuxrC6KAY*4CHR9~l7>i2k zm{H$t?v`B(8@}Qgq|M@|5IDKl9@>8+Fs^vC2)BvDafQ(@IBwb%*k}Jm6PAz5gwEuf7F-uZ> zrrPFWo^u}ZZrQlJt_n?meu>o_aPMkwIrgWRD`>Qh_%1b%thUP3 zy7v9ma1o*94E*!jaUcEU*M!kSY&|pSNZc^{?Dh{rLd%&rgy{SOm(*}U+9Y{jAl&_|wa}jJbI=T=?KRl&D?7IDxzhmwcJ@63uVQsTVd-b-;tK!CS1N4kMD(*Y2bYsa z2$Qbecuw^>sD?VePUG?>BCXc_+wB{a`OP)yZj!};FGo>W$&^Ov$j?y7)|PC+%A))mSW;MB%jbQV>7G)!OBeS)EDy9JluYsXT?_jq0x5??=kVk zw-9D)f!*W~n6639vi>hE+xV05k7h*$n7n)yiFo`?zd6psr>@-%U59EciJ2pJX;z*Jw0w4gu zcL0C@G%6I}H&X%!)E<@w`6dma63YWfRN3PGt}l|ns;f~j-9%s&>Ogc%t-`50%lR)( z9>z~ky5pZF2?q83pX}>3MV6A}uTLaG8}v~#XCypY9udI0e639WICoh7EgQ$bf;oK} z=j%~w=a^3D;a2p(y)X2O@p*%qs4&8v%ymcdX!_X4KTv{)IW#K>J5LfF^?+)e1j8!c z>f26HE>-nY^dL&FPlknLccVtvL+@rjN0l^HDJO1gW=wSPq5qS2mjsOX((yl>^!9f> zrR~bVm|G>|>qr+On?XuJzGlTEbh-LBq-JK=!n}&Jz-YyV&&R09ceEueNL?E&%}1C;}c*Kv4l~EOUo# zcccX9z>j#FD#g&;$19@dhj!Qo50TbS7Yu5W*do`W5C>c9is04G zS*d!;y(=2uwk+R9q_VXzBLHlmT&Pl6j#bU+R>E439?OY464#K`u74%eIM@Mz;RhlC zPhZOZzISrxPj>*(m7bgs;I788Ki72!TuNYX%t}uFKl8u%#dG8UyFoSm zd$iM_ZTQ%*JcxdJbx)>M@a5v#Ca}85yfJ#M4zkKjr$hY#7kEd;?>9ojJC4>6J46Bi zM0s4WhoV`P;hG)!LJM*=HR;M z9{12P6j%m_Ew{vatRwS+9h}U318+KHWLY5RE=75_E#fEbVln7U)u|;9{o0$TZzu_; zSnv1?-3EJI(o8<$Q;D+iV_YINHbB!*6Zu!85%)|%3+>Bi0QnRTa|Trs;PV~{ZA-iD z*;laoTX)NFq{CR)rVpuXoIDmEe>?d3BUh|jl9C|izNLyenp6@>K6_sP@;G>ka;4LN z<~Oh`#GsOo)?}}urlToCY`=RaUNHV)FSX9QCM&xcnG^KUbj4-0({ecB5btIz#-RbbtqrK`^L#~opnRvCVaAn zI;Ol!`oq@UfBf|F>v#82IlylMQEJAI|&t5>)&s28u*Q$ZZ z&iARjvwepE@++022lVQGQC+`8rN@rjtP0HL=1w)k2>^gE0cF^!CH)uaJzd$mkoZ8j zO5M%<{pW(Y3g%mklcLaWX@#c9Q;c;EElbdtpo@&Gu6$n7(;9uJSR) zyHg1Vmw^Wq1PWCvv}w$|&O9mRF%wlYz zd&)Y?H4 z-+|RbNO2Dq(pr9i&v>~~vuUV|9|iz`UJ5y!*0lG||K;0PmoJ0_H0wop{E%G-QS0KC zYY?*}5Y@KJl_!VDt6&iimHFca)e`@R-RwJ}{tb(((u(m4IiNo=T3IRqAOLKn1c31E zj5XD~y`(W!lEz~b#dMANt!HwgHNOO$=BVs?z;xcuUxyb9zWMTuuChtVeX`=btQqy z8vqBIjUl-djM3TyV6>cOJR!8$m$-YoNT}6_xqGZNx)*@pK`PlSDtjGoM~OI$3?{Ya zW?9w#l~VdA08I5SXPF*?^Jpf~_HG<~^>0`J<0MH=`Z%MU<$S|Qd`5cWl4*GV?q|z` zXJ9@1oGbMN@gKXH!YqeR3V~x~cW6x5(sI15?Wmj8>b??oFbtDPjYSF6Vl9B6`^Vil z#0#hQ%w}E#f*14PZqW;m|Cr^gATab8>@0RkZ8FvoX*GZ?WA`M1K9scYF zFmmOtgG4lTQc5@eI32ZB4YU zj*#0TevVPQw@g%@xM2p4{GR|@ZL$#iq#(`sAnrnfW66NuOyM=68j3$@dGn(I3vxCwpQeoRu}09 zRj1%ID**t#IeUDdDkcNrits^1MK?w|hm1hEJ}4jA#smzWBpnTUjMaIzk){V z?Vxd*@QDh5Q`0n=6 zz76ZwS?veeVZG*u?YhTC!zS1&>o2mvGD$lU@=W0e$W~7b`|2OwP+@Gn>*_TrkfG(Z z)xn014!6cAbqljFOJtUPP|4~qKoQ5uUbS`2kkTaOFIYKCje!Bf)cm89Qn%%GuIDpY!@;-D4nk<24r*wZeBWdXfM*Qk& zpCo{&$J5)df&%Z~9qV#6)p>(8q^mUR!^bk5X(I*rGi zh=q}NYOi?tTQI@>PDd8!eJqMI2#E;C!!NG=Fa^(kLhY@4J~vgay0y@ENNH%44BPQH zy~CEkPri|8F)jGmD7=zX*2;c7vo3`T5`x6reTz%8Mvn}H?^ic*_M=+old05b{IodP z9$lYx>YrLwEiV9NA;M&-my+a`)ZcH; z60f>W<6Tf1|3ivPrXB#;;ysV4wzYfw>x<`$dTeBE3JZ?^X^802H)^+$N!quPg*gut zu#xJsbQ2!Vlc5%mcsXf6>=vy$T@8SPSpYh1lZ3z9+Bj_Ix!#|G z{%UnB+OwSx^4AQw_*+T*2AqSTsd;yp+%X355D&mb;EknnG(_Xj^~p>v4VR$rPqUeF z8oND+tD;2zH&H#!>AxrDJl(hDA1c{;Y*@o5$4}zncT#qUdsEXaLeBWe`xut|spyHd zS}XUfqhupi>zY)8d4U@(Eg8O$*oZmIVf=&@_;4EoE^~tw1CJUU9x&HPBVoFQ;?XG- zme&Nn3fS}+^m!fF8>;U&HLSDt(IrhMHcLwSgq?DUEn zY1HSlx)Xd|w(Vy3I;#c=uHkT>=7%D%kvJ3^q9+w|&#K=S8{?jAu@eyd!?W&x=?@z? zgp#_<{UcPJmO7iHzo@bliMV<%W;u^*I)mWD9$077%FoLc68TF`&wRXpzhZ=1tVY}a zK97DAgy&E}^Va|Xr4XBM-g-G(NjmgxL6NC0X%~VW9}$s|ztA-9?Fkum9~nus*5UY~ zmLjY_IZpH0?3uWm5tPAPA#q~nw6 z-F0`Tlq=w8<)(WTvL(yeB}!FP2_VIQKuUM0QN@!M&UFHm3H|rk-&S2GI`5K z5&#YkTErr+gS>Sp>b!^VNKabBpNq<{`Vjy?Ij_5aV9^aCgI*b^$s+&G4^w;&dK+iO zTMf49&o%&;8$QfY#A(iw5_gBlBpI6rgCvz89l zxj$H9YfqOJ@wzEEL!ve!0Nm~UNzy8d>_5r+CmfKYsr6Z!EsDU{}A9;cYMa%%QA>GBt{&rA#~tfB-OIkFw@7 zDeXin(UC+3$G;?sG!hG6@THM8q3Ui~rc;u+(;(Qs1Sf=lm7UKLeoM3cfGEcTctzMU zmT=_#DF2|hogQeJNFuJYOs5HcgLB1)PHa;QQT>@ zs=cMguBY`0Mr`8=sP#&MQ=~`~@j)RiE|i1%+D!Zr{TF5D(Ig5Z!}?;`fd8(oJghmP z+T%4SEI2>3GJt+?Pqwj_OL(Y@R4g)~N>RXAqM6kex2EZd(Y=)F%})N^;H(NXT{vr_D&6@jE{@ z()IRZZ|3u6VkLWft%RyJXFn;7AN9`v)r{}nOKwoqV%Gb&_JF?4R%x-i};%@STV@H1m!?bhWurBw~}d0)B>I2}Ds-irB=@>s0i=Rd?+=`lF!SVB26Z!)Ln zL=Zb?TiPorovYUy7UkFR}bLE&d1TY#O-$Bw-sz~0au6aO|!f;~A{d?`t(P&E-wu6*d4 zr?yqO^f^)xRmND#=MG;qq+)C@7dBc+vZ{XJ6{yDRvG7RR$m{fKR<}yK#xV_ElARUf zn?g-!h2ZAtO=A`>P3EL1_2RK|vP1wi_!c$jT_||rN>wK-%yewymE6?tgqA1Hz(3&V zFD`>WwHV<7Or<1?Y+53If+5hvV*F{$no(Xpe`-udD@0J@%wCrh z6l^pC0J2J9Dz82W+r(Z!^JBF&j?nAS+J(WIpWJ6^#>jU~lC2Sh`zTa>HQHOmVmSOr z7TGpZSxw}QM*Q~_yyiY_~Bq4XXL^r1{zQAzV?f5aoM{ZvD zCXYlg%aH+X(JLL6skcsL#X%H0uuFSM zyJrDDRA90{D+~SWtH|YOO1z6BB@6a>i_3>U_;BXux1cc7j!D{jsKD$BX=kn#rEVdd z1Vs05E=2xENLh)n%4QD;4yXNjNSpWeXf>+WB)kfscxCC@Q9$uZw3HQau59;)+JCjJ z2-M@}iC=%4C@q+er#*WMM2J4Zq$UQ+rse}mIp}oi_YZ(tcDJ^t1A3oGEJxPoZ_eEGE4KGR>g@T+P47H`99Y+V&Et=l zKcK4;-~V=QW6Z-3U4CzsGmxPcxBYKlKD><^Lgr6E-65_q6GOVe#iB=a^a(lh+uWPB zU3S+KYj6CPf;m@CHoe9l=0`DK5^~fQ&;KtS8NIrpEby0MTU*(eh#n#Xd4o#PL$m;g zxO)2ok)PajW8EtYo5GU5tt$Dd44%#+Hi>h;*m4(?l4GcE883Md+;2MWxf6;a{4hfS zfH7CWB0v}yA;Pr4pYPWxsv1PX*e(txM=4tv@gN5Ppss2Iyw%@?2mWsd1~M$UK1Ihy zj^44ey^!1|?1DbzSv%hZ!^QiRYdVM$8k3o{ccaeHq!TiWnLXqZ9^H^kD9bxPbcluc zoR2BV2Bh8Qb&VM{F46&xWr7lrrD1jrr{FC_yD#>hvwU7~HCF``kpvAUhFiq z?{`P>{p*PHkKE5?^IMXfcK_`>LIY}Ahb6SN=bQ3t6xA>I;=lITD66+bL3ERX+uR22 zLdJX9uYv4(wWO))n;*5Us3^RD#F6y#W+y$FiW(D4JZI>ZP#@-^(!HxeG?y*6wrmLQ ziwx*)C2KX{0>q{x`=%_cDT;TLl9>pI##n{Zs3{5nUT`Z{;OGxH@FJNiv-O~)fb5_V zdlC5cNEKD>tgo&q*;u==j{e({5s(wH8YPw*l6T^K6Y4HtT}owXTq4W zDKUW*kdmh-h0xW_=I>w2zCt4}KMMhYlr;=FIZN(`?Vm6#2?v+0+u6}uT^pScvIP#z zp@rM}XU`Rqdt_M-r?W<=#A?*uldpc`@gdmS(M|dsPlyf4&}B)FuDB~rT^7rxW-ldL z4A{xZq2=T_<9iPLe;wca5?*ubiESt@=v`7I-f^xd#SBSTzc%Y7}n_s8HQ@v2|o3b~O$yrNm>??Czx+=egJ-ZUzeu4ueohx6(gJ z1~%zsasZIvOap1pMMr=hDuO908q)NojtPSx=~rqBNC4_oJQueETK{1`>XVfz3$qE8M-Y~e&e{kXT13@_U#9rS z5i1X|;3m-ObC2O4; z>Sa>&D$?I%0k(p&G}-|O?aJO+ z*&GiXV)1`;YV29q=45uK#LG-Q5V#1f?dOVs;p8T*8yfjXb+U9fI0@N^!j1BaIuHPD za6~i_U;G@$l2=AjKrr4Trmu1~A#U`Hw=^g8Ii>d;enrNQkO1_PUB2Ttr*m@`%+O08 zz^xY;9uwl&$=b>0cS>0_R^JxXnQ?wU@!i|i>RN2;|8y~wK8QVSfmB-|jl&E^@3u(? zC&Uhe)avG?cj?|8gjN=x&WG+!EMwU>WVUDaFXINQ>nQ~^HfoZOR#se)V3EluWQmvr z;kG=4bQr~M1wP8tfsGxlfNG?G51-xnaw^q#l+{mexNxr7u*xGPch*Q8b) zM8IElF4m>j|4l&U|8VbRmzH0vXLzVPm;(@G#MsYkMf#2INU=p5KaT4v>m;f{G^qVZ zn&~F*-o=tM@88mFeoIT`w@Gt9C>J{*7~J#qBve< z%Y%+IZ6E+!z4OaU{kXnO6(-c8#{W5e2fi)qdx?XpI0J#17a!+9E25|(b6yrMAOHlM zaJLAXfmmXitOUqgRapAUfb8q~_y8g&Lf@@Mc>C}t3SVofrQeB&B4k|RZBG%2*fA{) zw!s)i_?o%lY$=FD-AukXTZ=yE9<(>|9GyyLmEpe;L*bhte7fsqpJ^V%XB7`EcPr{_ zN_{qqu;#n;ymd)yQ5kDdyjS-Dvawta!umk;2mwH^XO_~JP;-t$sPsC1CM^@E$iHwR ziNV2x|2l2Mv#0$&+e2TyT~f?BdX2V~_}T{d(R1u2Idu>uj{GN2w^OC*-sPdHM&a`Tbq5f3C}n-ct6+A0>G< z+7S$Ro%U2?77rQ(?9DP?2a-`#1O41!B|ioRaybDQZqy16a(?` zy|!cAT(3>3?+t7me}A*8Hqz8(bVB0?jTA)&3Kw0sIf9=R;IM(i=+Cid)gHEO#5?5> zs$e(;V?Pu-t*}*4rjtT0s-T1+2!!59DmZc^S|L%NV`&KXxBTC=O`qcsn@ZVNWDd78 zTBnOkvpE6CQ{byg%l1iF8UyE@%PoF!;%Ycjhi2j{Yj7?HnO-kzpFXo>TvpxPsSlFm zHV(O1FtI2-drmY}On?2B84p4kcFCRxay70rEU*kjUX5AI9gR%%Yx|Ior-G zq>^)ImNa725Q?wP>(lf>Ycs)q?OU;)N#5y@=KHwnZFax+Hb;xyfIagNURph;bs|22 zQGNdXwiD@(Wqw^nz)j4KJqbfoDC4}Hvh*`~?obt^!nI&M5PYf>#B#V|HJ`P`mH^tl zWqhNwhTcZ>p!PrPIkzj=y+H!2ZQ<2+xE-D)*U-$t-n~#bzih+s!RD~>NZm>DyiPVK zJf{~8^yT@ou?;-nsr!w?nx5#lp))9 zGgpI?4*!1VN1`bJ5_bEEU3H2qytzTCpZO$>f3jP&s@3Mfx1AVroWu{DMdfe{6z%Cn3nr*ZF|vy!1XxSn%KE!EHPJ=h<^M_)czf!ABHywh-O zc|N!wK-`dxFOYlM8>2jseE@W}_}Z}hGWkzXC6QFdwM$^er2n7)QHO%tXSwyw{#R+il8ul`M1E5Y=X;(|1Ev=1!7{BVwYjZN3$ zChx^8J*wx7VgaP`vuVSNGeTxSX?Y1x(J2ijj3x|4o>1_W%ta)yYM2oo^C#`~Lhg$G z;`g-ns0isgTHsC@ec_s$fWA3nTM}}HV;5-yvMRK%3PBQ#MP81CFKM2-;O`4hpHKAs zw+XE3qih5Y5|dOBCf$b&Bu9{Gn=+d7Q9fW}+a`PZS^o4NdJMec_h!9s_mL;t)OVH3 z=#j4oLSArL7*Iby`n*s)&>x%oV(Q!sP$FS)xyb^gPXOR4O3K~9st{!TS4l?wwnfYl z-RRUQBssO>oA-a;c=R3k2+=B2Wri}1&89c&yYg~bHz!yL?No(vtYTdj-D1}Yi3p-W z7(X=jpC+pRLx8Fm9{aWoJVv<*4ImIPGOiFOrwy?sgVYrz{6;f@2a8P#A|5WNWhkOq zHm+=Quu?P?K^7(!WX`%CdH0ih8a@3izXx_j><%l+z98cqG*bVF1fl z)z?>z)@9@EI;!OkPB3c>1BgJt8Hk};eZE-XQjALk&hy18B}OTwaJk~%s=g4euOG>i z%VLkii|4GKy=hq9(d7t0;w|mtWS^c)ZG}M=U-}g=xM!f#=m_v>}6BZFU78Bbc z@9RZl6mt&Ei}SOx?m6AN^?j$j?r-yxxgY-R;$QUTO2)p$fLoaN6`25M7p+oJoU@`^(0PLdv z7wAg4z9m)?HMQ67w?6{H`jM^nC!Yd$hM(ayTJCZDzeVCpDb+f<`ee1PQ=&N|8@dT5 zXCC0Mm&4j`RTxROT!f<5kWIQ&#%ks>>bE@SA3|k32y`YWaUPfK)1ys+4iy1B3BTI} zGyUduM$NzUXW!bo$IlYefEMH$#N_Jd;RKm9`v>t5!T_LQU2bV&4wz?%Ws!bWYh-f# zP@^5>W*>~4W`^$`kHXBWVv=oe(D24^w3>pD>TaZFak*aR(-J-q=z36qpKS1y+EFi0 z6Ye|?<5bzP+^>>iBK)Sl;paGkM;uC$OMA0#y1C^%pY!(C_-*a zzq<`=UhBI3MZ}JFVfh-f?mpv&=uWAVBG1%nx8R|zWo{^}F^rW*)fh9KcO;?epHBsu z+)e-(qZwgs(aXhwZNeCd$_#{FjB+T_g+*9*v5@g?kHYJefW)KzoF@!2F164rE0(K} z9Y~9_v_#4StW$$PAR>@*T|P+PsWfATQYY<3wzmKso{}jU$P4fM1TNmNsOhhKAB4w+ zof@3f$3!EyXIt_2d6`-9xLdVUvM0emAtQ>`gPZOh_5P)EMBvzWY%^DKbymINmtmRVis5iU03ZeK?;vO`K$E--fBX@8=Ts zV84IfeiPgcESaT;`y#Bn>M7;yx+ysvZkZ!DfJ}lyCI?6K?r>(CUVu?6{v<14m<2+c zg`guK^;_Z-9T2mboB}*@ek#PssF=_xu8Fx$HtJcm0Y;}w zpkD-sUNCL!b35oYLT>vzg?JBXCReM_>YFYEeA(!vcL~=!p_GyRaJ7q%wU>K|dv%o} z1Q0a(%7l6v#8ku#eVjgk@!kF8VxLgEKMgo*Z z3INQKW$AJ$Ox$cp;sv-%`6+7kgYYc%0RyS@x{)&1aooWRraMWWum0}Nzh{r0%(EY* z7vMK$A*`)57g3+-pRfL^uKVGS+HZP2N{ts%_~}0_I_eOxrECX?Dk>=<-hW81LU55f^eWY-ZI{Udp`~BgQ%p?xvy%PCGtKkZGXO>t*BTf)ADKaeugYVR|in45ZtqAT#e=v zC);1{RWa`-l;(Xz{(*Zm`d@)F3+%l8>gkRI&c%DT;!kobP8-KWfPs(Z$Fau*-b1~X z!e4M4D|IHFrIaL#u{SJ~cB#s=2l;*ZjP`6DP6*qsKD*+}w-2`RR%oKY-en(XU?{Rp zl%*4%?O$khG8+IMF@8&#et@vve+EqCPOFsNl@LsH)Ey~Jc2(BVFGR>C6aYlZXIOU` zVI|W`N*9R)G7;Xe+|l5p0*PIKSRRNGRfLR1o@WV9cf^J&bwsR5;;2*z$j4`vZ~g4l#V%nNaR2Oak+G zK6>_YKwQjeTFjYYsa!#$wGv|~&Tjp7BSU9)8FBpWKgM9>XBfK0s3Xdb%$Nli*Edt` zBAmt@voNl#X=C@qplu@y6YehAHFGCXdd|r`4aHxc%}?g)$_EB#TT!E69e&2YlXw$w zPd!UEZhNUUqMa|-$zZ+rXrhLkwQ4aAiH}*GF9P%>c1aD(v9tEe(qF!uT=xIsiJV07 zP2?D3ZC}jnpD=mlH(gWtf0MM56P;yYYknuJ?LYjFk#(B}gHJ*N2E|Z^VSZ(Ms^Omm zh?#yE6!*I)!PrJSgSLX%GGFe#qZZ>{csrd|pJpuq04h$3yBHB87l*UDi$w&DGXMaf z&K^2jx$l`#&{yq08t&TIr}dIM^v;^RjkT%oju=zmX);t%+7yBEr~X=Js{jHFA=%qZ zt2?pd+JB!la^ulSR9kogpH$@(ow5J?vIoIEWuUzNMk9y1=t@dGZB)O+U}zRTM^bRl zHt=7nS#tP!%^pku?7oe9qX?k~5LjpLcC}yd^{!Zc4;QDjT+Tc{>fWG+p)(%h@yzT^ zD3eBnBvkDtW^bIEk(!bO#S;~Pzr2DphUgjiGh7hA!%w zN-S;i-br`kAy@`~fsmRO)V*T~rGsf%KcN~8WTEU3_QJtRxEscTZyJc8M&&I1`9onB zNh;;fp{j3G8WTcWX|G2bO|Oe#w~6-9`Zg^+)#cr$(+s8(8iVL|1(SrB!h6z^rc+Q> z&OE~39T*(n8cb2;Z5Xx$yzd_g)rcR&qKLNA`g@CJI*-5ezqJwXF4gF5ecV?LrGIyS zYJGNi^U;0O1jN#Y1td?MwhA{tMsft|(AOBX4K6qWJbzd20V*6YZ2V<|*O*b3vmjz6 z1bOuF-iR88qb>t1{rTK=SpD1d9*u7>roMfBFQIx!6q+Z-PT19XaGqYy0}yzJN>YZK zRg$uS=&YyCsY~Dgw{~I*BXH(>x^# z=iw(5-Ck9|TIxpi_Uv7P$`laD1>~#XFU}m__syiXD%AcQoHKi2wUFN#QFn29@i9yc zh1ijj44f?zg__o}cQLc$jT-|Fok}e7>w(F$i?E>klO7Z@w=u{*tU7ub46nn=dPYJD z8WWj3?HYEJ(?4GT06yFCU&@TuQ2Nj}&t`D{?gcRRELpVqqGuL{1?->CuX-52X5xx> zNF<274mePlY8B7fRPR+z006jM_h~NeX~ta zRLS&-neOj{;XMqxaJbZ-5Td0(Wft$QYH>2c7NqNZJ|_)X#2;658Jud#0JvGsN9MCpb_S;lQ* z2dexEpaKAhiJKhe@+X8Jp**i0?#a#Rg_yBo#G%eLkPKGT(UMu|bq`EWQ4;_VkVtV1 zbx>_}v)8){ICC$~$-#WS(t6(5l9+J1$-9hVU}!5cTgDZez=sBT@9hnBl@kEqsM;DZ zTU9yPERpRs7|YAyOegNF(?<21ZjY3j6B9?x2*{vCjpdKTi-W~1TMj(e+Q6!0k7b8TgQPN0IDfCV(oS#i^HDube3W6M zUVS2tPv4P$FNu$t0lG{517-&}C84zst#X`c5wJx7=x3P3rZZ;OND=DvUyO;mIz#Mm zFMNSD7ZPduUAQNq{3?d8a;oTs=ED!QuFoQ<&0mo}2S?u_{JdPqON=grr>zvD+sC{1 zIZg3ceo-Qm?1khflF1-KjD&Dyz(pqp+8ACAvrd7jyliD24gins*ImgyemiZ;t=h8b90X{R@g!>S582)ha9v9`B z{E5^rZ4>9%{z9E2oW?a=ueI)4C@0l0Z(9?M8ThK%cQGVV?4^5FTu zm8c2HyPxY}_FB0Q!LJ+t1mF78?O~zd`DyfSf?&;j%#g@FIO6cw(as{)qy#}aTx{)V z*JiP&TJiuKHjDo&QEZ}D3m_C~W&EDg3gAL?OhE>Q(4Lw#L95?v?k`Y|eSygT#n%mW=EW!Z*O(Ndf z1}A%bJ^LA>Y2iz2VIGvYyyC~g#+M|kMCSV|$9{^?Z76*95mVNA!@(!`e{t-lUubrc z+t7r-oWPRA>^m*^rueh;zW|<#I_m2nvV<1FZ5*e=ce2KFkOXG_k(Rv#QrgHqp${j> z%AZAbKl?uB))Ofc!NDOgL0;hS1k`nMaSa9_X2$Y4h$0Nrjl#x)gzHElPC7Z17GXaH(Ktpr=NOBz z)Of4Jx$|}}WPS%j0_Oh~Y78{qArDy{|0euPetV7JpHFP(0U!VXO$d4#qEmpHfu?5_ zwv{J$%|~H8c)#~^X~u0}Y7I)hq^^J*8gKj^+!$T=P!#NAtMUp$0luY=$FBXjrNnYX zZLMjQl7d0`f3&mA6y`kT_oZ`}C4)l5DBbrNTs4~9o{)%arfKA#WW1B)Wyrsb9J*f> z7V@4r#^js*G4cmoyiqp9QNgXS!e~Pn-BO>}FsgJVMFzzsqcEQ5|9?9RGj0*4)nakN z%Jc$K50-eVeNmWc?0BrolT8D`o_D7Nku!f7CVre$!~)t6pAxT#;wj+b#5HqGB_9@r zFY3mm)MUqpTdg08`0DsS54aAK{OfYcxMz|4WIcqpbAg#z=GT_oi_c#-$)qrmFK}%L zn0u;!v9LN1UcrpO`?=~p`_an%^n7r;mxBTL0RXVkDBd;qQomsR`(*|Ts~cpPj7%$u zc%s_ zlmmUcmfFVs^xBU=3Zc2>6f1grSQ7jQh?EBy#V8Qrf1G%n(t%7@`+Rbi)8|~mLQs1} zgo)_~hCbOx87XBqt%%J|lv8`=cd~|>9S~RLl4posaUXLcMBrK*>#^0+L#nO5awCF< zUeaaZp$(_cm5nHfpSCWE#nyfZz~2407YM1u|59OtJ$*vwdJh-IXZC)J8QDz-RJRG|4@qL0)EmQuVUYAE12;lK`ioi@FAivHrb9U;F-JX6*voMQdfV)}k<#ncl4?Gc7JUaoM z=-*LSNbv*0`W!-E9>Pq?kIs*A2`QO}F;yg~XL3m8B@sfX>;_HRdRE&ZeMZ?(fp1Cw zaCI;s^_Tias#JP}f9w7jq`Q`AWN@d(yisXob2;$Qbw}6LINY`wcyFFpYg5GB~dejJ!Qs#cUe`>pjq}zh()Or9nDQEZR_Rs4^V&-rz%OB~%dC!4D2OsUi(LJfW-( z#a~id=``8ng4114d55YH}>OJj-pAHL%~cKwk0I_TGs32DXC0;DbB{f)*1 ztqf)Rzs`NTAy}mU%7U6JZa{mTp)so@1IUg8?;YSVrwD*Ss2uoMPTF^qnWkz3zY5O+ zTo?3nGe+%j^k0J;1_nanAfTWKzr<)EE80i_$hwe_RyHfzm$YZztlY#p3pUc~Jg+nY z@8?X#ygS6tFOOCx=i|$3$cq1BGggm2F!{)xLEe8!LCp&TLzt{Gx>wqQ)u$0EhtG(c0qkU90SZ27%al>@ig+KXnUG{LHe zvp@?_nZ58Eaai)ppx-mOL2YYO9$!T4esu9~E`^m7S)mE`a4eDk?al8tkGk5 zH_@}jsFtBp;u1S=Tf4XovK^l*dx6w+MGK+NZ$HXZ0KkSxT?D?T7Y#n{g2^=uxwi~y zWkpv)C-Ex3qR_GfOLE{93N0V#L$`EDY-k%6(mdj;(ilkmzXy6O&zpwn9Lx_yU?XFN zCyM@53>!gCF{b9c2S3L1;6}Zd!!!UX*u+*YpyWRlHvaG!!~m%bks%wQrBAv7kGy#< zo-+4F@R3^(Yo8g;+&s5r6o@tTIT$z7H7}0m|GztCrDs61RxgUUJBJ7=-T3J;#SgGu zNz|A6Q*vvg)(_n9Kl;bs0;}tYOH4v3xB$v_n0^}zYN_OlltP{|x&wK$1FAyH_A^Ry zAJgWU2BCai52cj}_z6%f_)}&-W`i2hwMs|)jRvw?tzS`I-{b)6Y0Q$CTWw>JpVg;s zOnYRQLj+E)kQZ@R8-nxXI%R6-AmN+38gp`m%X%jy_Yvf|cS?9%Rh+SI`g_Hz10;7(=^X?>#GN_MIXCkZBS*P9RVP}UMbZK$t(rTo{HM99?f2l7= zR1PwIg#5L%G?A-|AW)Hd8w9nf0&YL-A;PXEOfLe!V34I(J^HKXHUp(aktlQ_2adOl z`yfIT?}I1;_A7RUtmgH5>a5I5-LiSU8~MoJp4A(VS114|OuhtW4lpp{8x&p?SD7uO z2D^A7>rznmDhjeo z%m@h=5b38wN?emjYzfuoF5?S!fMB;H432k<_HxW)<|^pN5bjEAv7U?!%$Yp6 zkn+9?D;{lP!SMl?^LFLW%I$Se1q9y?j!b$%EebMM6T6jOHY#^0=x^VH9n`c}BO^Lf zEs1UT8lJe8N3_PFZ4sWJCuVwTdyDT<#rWQ>6cY8%|3%Z}yM}l|#$$X`&E;gVwQ@wP z%3_~o?X6Io~pRtbO0q0th!^cj%o)xM9AAE7-H(~u6 z+rInTtJcuM1{3lxPAaxwF*tNo#fPE~ZASMnmiI|5W~D8FcLbp^?p6CK>%eZ?Fuwp^ zNP~Lo)sKh64PNu^`dbXuWi`s(nuo9V-h+(9PBs&A-4?;u_m)0OaAM@m3Z9>da>JrY zdR-sdT2m+{4h#?vgbtEGH*4b&t(C0|uhlYuANs&HijX)I0MHKQFG!Ep;%~fUhJ?Dp zX{)fbZ)F!an7JDeWzbDZqv5ncFZoJ}ygK1TDl)Hl9}Vq<`N3$rc}@yoNEw>J2{>}3#0QM7yscnA0-H^7l`0YqaZ)lfK9^s_I7W-KPzI0xe71(xeH@1QmEwDnMR`P(oou{QNf{lilW4 zsP(2t);uH=7P^oam!FWdIED5zEe!LezI7u=!X)H`m z`qcp7C1P0$=r+M7?ufi##cB^0nUPz8u~mBXT+cD}dN2o{%g;npc408D3$MB^4V?Icw&UnEQ83esm*7Ji6`Sg;0vK=4cVT!#|Y zJ1(%#^GE^s63-tlK&nPDcf;N)-Y~Nq`|m`(;4=;9u>D;3fWC(FKA};L4~!Va#$fB1 zJ%)e_$g&4bXfoW#o1a1eOXtVI+tEee)k!UcIEBpw($ZANVZ#DgW?T9=bz}SR5=j9C z0C;(}yD_DUt50NCNSQL*8o761@5_DiE) zxM};(g_GLg~Y4E{U!H#L!%UVEm-{vSRvtAl zo;qwTt`e>)>LBzM&`@IgiUT95c&WzjZO>cP6u)O6c6RtvZzXB}5|L^m9L;WxWm{^A z^}6hyOvs#kW+?Hku_C1MGMYR`d3q(80mkm6!FuTt&h)IvCe-x@3F2tTC%rWvs(DGZ zj88l?Vh_bRUdIgjbfjeZMA>Wo!hI!j9aD1EU>MTjJp_4i41BC*$Dl+8Dc$ylqcS+a z8A=UMvU?;|9WMQ*yl+gg{Uo23gQOg>7Uh0d3%%M#9UR3~LPf}IF2D31l2rjDbW|q) ziLWiLMiW1z&bHvk0S=XNA}>u_P#sEdwP$_bNd!pKdc?#zQUk_)Oz7*~-V*T=PAFqEh;Gy8Rqpb-fA_4)+pmpOcp%ewvU6006?+e^v6AGQi}1 z0s+XLrUo~-3H}u*?}uh;-0$w9ug(#0OP9m|VsY1BMC29xy&&YPEOdOYuBI|?q3vY6 ztK%9t{%iF4ipr=B&x<{%^BrgWn#xHq6V{h*k=PwI_~bw3>q;F~2czl*wLuN! zeB08vf45O=9ab00HhxnlWr0&Uj)g2{*-!&n~5VI-q70v zEp2+iXL|{yxya)l3qg>gX>{BG&3B=yPL!q z4hl)cc#;88Qms%?i@P~&aW5XEOi~93UdoJ`(FSb}(gkyOH7WU-T{;D9p|-WgEpoMo z2VG;^ve0yJFuu$s^H<=#Fl%Z}mO-<(b{3ZK73owCcF zL5uEAKB(+Ol?@I1rq`D}_b&Kzi2q+oNd)~b)JE`G`--rt1ZWZkBECG_m5v1j7`vjr z0)F-?r~+`4Fs0gTpDoLgs1}izbpC(CGWwv7W<#C81zEZExjqv$lR%wCU(e%pY77|3 zTP|%ATkNa$cEbw%eI6xke)E^24oq3sNjvOZ*nYJ24xtc(kF7it8(`8xvj>d26(DhP zgq?0(m`WA{tN?qYn-U4PZD9aElUYNKDG)SgiujA2q zP{cH#tO*|{pQMS`KKkt$ObJ1o;&(OxMHsPv{t>`+`@s;c0XCCUJYBEV0uT)?@10)r zuLuBOdNpVd^PWPZ9?8{!>UWsSItzF!6om#j4)d{)lI0Scwmw5|A2zW<_NN2tJ^!?y z%eq)I#7H7W#?OVVfvp+kU}sXxji}u~v@~FjW=&GW>R6+BZu?1v2tmJHOjgieV0M)P zU;tkdl0UW}<3p%pFbgU8pGTc2O_o){T9<=+M0<*=5!WG!ar zeL{%r8`Dtfv}Fj6|C(>I+4(i?__!Ra9v9{1+_uHXax9D z(0TCC!kkNRiorM+l6c;bA3&*V#T}y(+)M=UqwUK#!b0m}C!8RQjdpwcC_8i+W(mvW z+%)@5r*~Y(=Ll~AK*zP}cxcHo%LY!Jf`iFTkP<%&+WNPR22yjO5$DgBkQ;qAouTvMvu zn`mh&YY0_gSthZl$-YIBAvg<27Q+ha7uI>`%>e4*9uQjIyRD}iwspDst_uqm*=Y9Y zfv_=%+S*@29yx70#_r4S3@9JwTKtK6eTLaLJ4{0IIE7+3+V@*1$MwrQ09?oA=){ESPSK7@u7$x^5@p6pJcRuFkZ}Nb zbv0m5-vrvGgrF~!mIwfJ773jGpmcAOz8w8-H3xEb9WO<6?uH)A^(8sMD^cfa>}mXl z>s7tm&r^8raQ(#Ns0E0`Y}sR<>2XxxMHPvy)Ed2d?8$M_e?(yCL+bnTmB+{?2LXYB z3uup*s~bS#Vx#>#KNsBh8mxD`AqN`-=u4Yaqj@^lT@V_G72DT8-%hl4l~FF>Or37X z#dS-JeE(UdZ7`DsUm_8&3UP%r**Had#J>btg_f~HOi6^h z8;*Q*XXXZ<@+X8pib{VF?gxjX;0<0S6n$rd-!iybYd0&$o-azle{xboGE&3S zk^oRQ01U8*eA^o7SD(ayIyM8$WoY>R8^XG>)N#{-$K)nW>85#WXf}+^Lh)_)7W>a* z<|J`!Yvv8)+no_RJ(rw@bYi1<@Qo&F!>lf?rLG1z?gMc@9tqc71&qG##zUcf)S3lz zN`|t4_!V_>!Y&*unLt@jVKAD}K+0yw*`GnXN`T+$PA1P@A~IP_nI-(lOllw{X-btR zzZ{L4m_}|^)H_e~I|-wma@U1s_09W-ja{-Z&Hv^=uDze<69Z$wuaDDtjj>ZVF1cPD zPkRrnt(B+P#y{gI+AuxExz-FJJ6lo&?nWDrwWB8Ft~9DJCeQLkD1S+jDQHj7h3nAcQ*8=cDiE9z-p_pg)WAaa}fvrR=X1N5q2Qq*^`F3It) z1j9FCM)mN0B%zE&biwdqg1(`d;N3@;y@_Jhm+R0Z13{w3JV}S97GYAvwXtArVE9hiA(WO4M35@hq3!YL2s+iO> zdLyu?FIp)yAGCmMk@q7~XySYIW*F{b>6K0rZ1h0Y>pQNM+LDZVLvregGni=h@g4ew zrAUp|(ZsrPIi8l{n*RNWt3*e@3}Eu^CphcbT!}O&&$7rI6pj$1p9v=z?GzOl z7(%1==wG#Q%FQyIU__)&qSn+A&y?P@jFhg($x@bv`t_y12bBLvz#s{AVQj#567jz) z2F{};X+8upG|00@G5V!F_iq9Xn538qZM4c1w^*f#a=n$sY_iXp(Hyg=sbwT%f=OKMYxUgr0wq%GHA~pDa`>c{#$%wR06Y` z*bBA0*4^lm3gXxA#I^^`aFopOnf%V7DP%5eeJwvMm&o@bR3JJFVm>UdL(lM}$gm9s8(kJrqu7AEE3!CuPpf%8b@}I{@R~=4%(nstndpdEen&1re3-l4FSP#BwE zy0^`cQN!>#YFgENNG&pWT@zH%ALNw$e9^X%$f*0QK7duuMRzgiHgELa){cw{;xgx> zs5dAt1`(p$mcEox&7)5g%I8R9@^(h2P2D$=GOJI$OUO@gObIj$sE*&)2N`wOy983@ z+`$E)?^u^fTN@~&0?Z^mZiiItWa-)Sz)n@3CSMWlL;!2nd# z;n$sWCK~ZFl!e9CVY$*e6*kJrc#hL{^fTLlf5xPkNym7KBni`DBO;7u0S|ak8FA zPoDkHdJbku{ceS*Rnz7eeqoLgiV&MNC(H_v1N<8H3l`>%8^P$D%Jojs{0}QaTzk(c zzT&67hW-JA%+IQLv%Bea7tv{DZ7Or_|)PG zV?pVHpMNGkS@Sj0Ev{G9F*Z!vS6Pn|m$mco`ANG-^5%C$CSWSG&f_8Uo<|iEG#X4% ziR{=*(%;s1S;}7G50FM2u26)Ud7G(C%&f*^&c+~7X5H34TqL%_vZlt`kTWQGbiJ25 z$SXUHvt(L~ybx?OPdO#>JJg!)B5kTuJ4jtsbChyP;$mNDwcV`bJvZ|P44G)d7UMdF zLDVIhNOECD^D@3=>RDgYvR%MS8)}X)n{Em0k*1MT&_unhk(h{bLFwI~=*1B1Wa~If z4(2&$>en#MUY^bpbYa@z=~q632AGX8Z@19#C_W9i=zAWYGkfKBs2w2fxa9XEvE5z> z7>A~7?A@g};^|gQ0YL}$8-JYR@0%9W6E?p%bgdIxU3C^qKZSHrE|wp|zL8PuX>WRB z@(Zee%Z2D5uL>A4rKi5k;yGIVLvFegiAvUCb?9Xyncd13g(M^r4Z|=}OS*BWCG@VS zF}$Xig27n=5>W@YFZ;x(MKDkDPbS0xd%^9Nv_o#U+Tz0-6l;TE>zT$ut*}G5owdg2 zMuA0B-v$1R%FES{cOCK;ZHFVooW+5hZwIf}R7w8QCy6J;Jvz?Z~r zAiFU3+btSOMb%pk4Q46Eg z7o;YcP9KtMF9M3xSu=~&@`I!aJTz~$n8YZWEi1Pb29V!_$)l3vsmmGL;7O?0!r(U6 z=)%puU|X$(3tgn*AN$3-I(m|SilFLD=!nb7-~;OR(;6FEi46TaQeFU#KI!UZ$+uWM z73a`rKh>oY+IQ^2_-T=YzL?|brT!+X9{4; z)?3%9A=K~jo&gb768sZFMqF}$CJ{_qp!UAB%+OvG%6wJ(oWt66P;Y#=NYH{?J|%{= zTETC;olbuZ&^VyN@h4sT&$!oy$@cIrO;$owwS8ys5e4$k4Qc0B>e7XyL{Kyvem|pw z+Sl=gQt?CKw<_T}9qULW`4`GcMe+@Uh!}y+>!fJ^kwT|FoixZ)@LrY?@#7=M6la&N zKJ@$J4e}efp=p8z_}4Ju3+tp(Xoe>y_MzEXAGm?v8x*zononTNzGEL6hkl2ALYcLz z-SmScHIaLFwhhI8(=95v#P8XS*Mg@2Ofy4m@0k3sNWml8nLv%E{V2A8oD;ywv9D;& z!APFWFO9N6K^*UTe}*7>&7d&`ss7!&LQ6?wx89YmR`GZIV(l3)&;I0CI&|v3g!YK; zmqD^hZtt+9lyA>@7QVgvy76Z*X&5CDxg#;~sYa3E<~wo3)w@^6d2edQ(9~?UtDlP) zRoO4`I_C12RvwTkKpGr`)ALU6*^Diu5o-0pSS6`NcS-?XgK%)9o4F8cha@2;e($cO z;5|alt_9cSvgSxyg8vr*DNg6XB7sggy_|S=(cot`2v=wU*YF+IZyocy_Eqq2tr!VKU@8{E8#%F@G)WLdq;FUe2BoNb8df1KIi;{oRpan&MBgbGd6P zS5)C}k}TeO@`p*6Ms@99IdLpm$o>cYQ>Db*_kUF_F3`LvaaDL{lZuPC2gch;9PW2cg%`=?NVYsoVEW;m6tn!R zmQQAZ3Wf;(1d53@6f?*!?(hu1Ix=a+a)FtaOj zu4}G?-B?n9NpNZ;E#Q9sM5KEe&llOKSV+)+79Y}Y+*IZi`ek=%4$KZr@!)YfJyN}) zmm3iIbkPuBavJE?im%qqyXjh9@K5o+#(J(J+B|Bzx|Ds6MV&K?sGhv2p^PxVc}|d! z6mlbzbSG#GY&J&yp-vh(*w*CN#k^fw+*dJba(~Nd4R~@~NB31w9J_JQIra9iu}5%+ zDX(1Bmmb*mwGe)pb(eIc$(||8+-p0>w;L&<&W945opC;s^yk{$SgIOz zUNa1>fnBc6H8rlRo4Us0qEYU-J#=NmEJRWr2Y<6P)uGy@#=ubJ%rvw7A5B{_CLpt~ zE2agnw5xAqN_8h-gbUpI-oz9AY|444dSse3JSyt}Ah?^n&aTjlnKpl59i9dKV>$Za zo@{Zm2iYy(mBbBWhS6GV4muG{Qj+VCaQ%VaT$Lx~4wj+6&TX=feOb0Yxa*<%7fyB` zlq+aYYqPBBw%#oun>xeIYJTkK0lX++rgJd|$Fy^W(?SfB#N@&dcN0}PqpK1nPC=yU z1?6g(F{i3TY_-S4K!yZg%sH8?J4+(PbTU`Yqb}LnrqZW_^XuV}HE^tf`murhtUK2z zv)X9PBVO1{=oWu4hpov9y!etlsxZu%P(+94yP{dwUm(qe8FOmNTJ12>?;@mlF`UiN zU4-GTnJQNAV^e7wopGam!Wlbdoh;e8@%M3753QVsTRR^J)p7srkwB4z2)K)}Rgqdh z6QS6dQCCHsbC_=wX3VZBX>}OyXA$CmCUvR)QZF}3;du=6wW+kUxK!JtGg&ZLA%|hU z;Z}o!ySkN81*@6gUl9+DMX)X9+zrT{Ie}vpnA7|_s-ykpW=4Lf%X0JhteawL=l_pN zi*5nEEm+PMlbGR}=Gq)p<${Pb5w;k+5Y=HX*O3!uR+pf~GA}sQmz_>$66IK}^D&hA zF|^x9Z&4z8*JOW(K$8O$8{s=r+jrp4c|{&2`*>cCX2ctqtI5d5kn;w$Wu(wo3LD~g ziFz*CQ-JWVD0A9ctK`d^oO&jXpW&M2liA0bVO)S2sUE_&8R9z*#U&0|+KIl_mG13b zzFFH(lMni7sK2*i{JFI~Iegx}uu@7?m7hkQ8?~9MYr>8@R7NnO%5KU@!#}c(GvCIL zVDIF#SCGLzB5{(fWBR0e*W!O#aXrPFEbU2-=J7Lez%2tUCQJ$>B>K?iT|?1XF&ENI zf8?lJy=Le~^6;yUT)LWVE1qI%$Lt5Q=0WI_7oQ09PR%XYfw5YQ^xalx zl3&h%?szZPOvROc9@eD-Y~>%8ILQ3+iEL88jSNXTRvf~SvZz2h2}|`RThX4645z+5 zWZ+dUiUjt-wygFsyFy@UBAuSl4xqdcJY=PiodEWPmZ%iCV8Z>t_B&ruo{HEW~cUv_FP79rHVp z{QQb5*Za%x#fQJgs`Wo%G@;)7BXh1mmMv4Az&8M~e7we||9Wn!9N(v=5NWN*s&{bcc2Vl~wb5~rETz3%49gl(O@nW#S zJ~o5i)&(A2#nJ&xUc;FN{SQ_)TWVrD^dodc=Q6C)ji($jILjqcr=dN{Fm*eba27Sv zr#t9alCQ^+91^bp%H89>PVMK%wMeQz4O*UQh6PzSEOoGfVa7LV-F~WH)`Cj%KaXuy zcs_DQBKnvY;Uez4tx_mV^-ZepC5S!R92UB3gmra%EMLT%FpZ|>GS0guSV`t7l1X8C zrYMGM4CWQ57|s>E33Jl3i@P2WBwZ6d4J zNoVs%6s-nv5)VGh>Ei(_8$5DD(j8OIGE{Qm!w5~1uwo6vmtu}KPA~|w@PJSaBHJhf znLZZMG4g>4+%$AqpGA+gqNs@h2s&yUxjlZJbjT^sJ_SQ>-Wf7ztd#X%(-?6E`P^SwBTV`@fZy6TU@O zJ%2bS#u)>>@~P6tG(9Nf=Si+vi)H)!v}&7&$uXfJ5wRc++h&EjJwC`uF9X~5P zH)^ak#s^S>iv*|B?6rHL$u;54s20x-W1D;dI7C@NiONXe)r$t}xIAxw%AdS>X>hQ*r?h!UiZKsW zD-qkn^(u41B>Q6m>{}YY=e0p=SPTLNAi13Gl1rK#FsP zlF-eWIce-e#!o9RO?}6s7L)yYlXWS$l;)(}1x>CQs`1{|6~>XK8P2rJ640vA_MTU2 zHHu+n#211FvSv7K!?pC;TK&68+wHZ1Pl7wN&XlZ3-_P6WshY2XrR-(sfc_O6qd8Yw zade3bOT7QNYq1k+az&gsyrU~PDn6!3lWN`paR%#S$;-(?xv1F{{=p1&KClh?oV)k> zR)DtD%dG0Gr030oY~yXEY{p0_Z=}IuDQhMU)Rg}XX-lNklET_iR+?{&)?0}9`HjNj zDm_&Jis4nVX2bN9c*+P_Fr>&7pO$~)@{E7}1m!A*)})>xLp%q)ChE)#evzpnqQ)oW zne@s_1K&!i(o&&DsS{@%lV^S;VcfJII7dkQ)=iXg}x%_fzm}G^r(ak5RH6So3DMM`3KeX>A%I+TeE&zrc5I@ ze(26l#{CT7c;rkO!%!cqa@be(m88`fhbf`fR$>Q_M;5}ZNeJ?3mAK{7&{o%(ALjH@ zt=PJ!L7_9BR-hO^RZJ!7cPO`YEal{((2Q~wv<)ouUZRDWhsIi^pQbl}V*Etp?PDbl zqupW_IyLI7p=@%OGBXuqWN*P&l4>=L9|cR8G}2EB*~sMc&dPJ#xL)IXscUv9`qx1# z9T83VQqVYMEYB~CpH|NPZV0=)6D>gl5YYeebk}2NZL-k7_**@n=yJ!U-NA02q1`%U zw$rGfDnAOG1`U>+a|`^kxEq6_T(lz4EOxvV8{;WIf!)L?tnif#))M_Uu~7f@_NEv6h8oSzCXZZKhD9xYS zUy-*S>WBiwIFnXRo{?Hu&4;W;KnAPxZ1#Jb7`ZcByiw`SqD`axEo-TpsIuYy6$$WG zWq59ND7~N-$O|fhEi{SY#Nd87OwKs-9kq$4OQS=R}UQ1x?NZiD_1o?#Kz4&_} zh9iw8{}$KY+oGwnS%?uHi8U3iIT0q=#Gl7w*9!@jEmU)~$0FD|AbmtwmiJUDDJM`r z-K;xNC;XH-ID3XgH%KZs4`bLdV9iN2=MX`P zen4eZ{bE(Mw! zX#1(#b#0rv>Wqv+WeF#oHFgJ_W3g$4WcO&&O+q^#wFPv}lQnTEq|1a!+by4sZ`Wm~ z8e#AEb?MqvgM>|LgB?|DE`s zB#yZSLqh-GuOQ6~8?LxB3VE?)#^@J5XIWd9*`YlNTm+|Eiznp~Hjmhi^a6-&@`Ue# z!Ixij6CpHP^V9a8?VvZriQAA22YU;CS=o6`q<%FXpZ$xbk$6Yi3WAq~J{pxu%@PKj zSvK#qNMK1~!1cgrS%BEx*JK5npTJVH36b7(?(*IR^TL0;k4q|@B97XH<)yj0)!e_4 zJK^El0ZZ0!7mi@dM)*vvXUQjL;N*)JN(t{Vo^dkCBbQFiV_Vj*nD}$&@=RmY?&U~G z9afG5i{3kZ=E@Y>b`qDiR@NP!YNX~Y0N5Qx!9rh;P(U6#mGOf~xkV?~C_$`hAseGN z^Z0_*+NX0Q(df~}+XWSeA+&MR<<9z`Ve4^~=0wKw9OsI+9E^LAIYk`W=|Rm@i-3EX zW*bQLKb+$PvC3?l{Rj&9B0QDAV45j;tW?AUj7HC%)aopkN{Q14(DkqFYbLdeCp<_)-7hF{a)~?-b-;>6XKB- zYZ(W4f+^>bU)pOKJ%lIDc}KTcI>~f%8r>hyqkhAi$?Ut+gZa-lh$7`X_%Xl~5mcN^ z+DOuQipSv5{?L#2rdft=qZ)A9!k%A3QJKu)1HZ)vS&o}F*xvHI4PnDe+%bOK|M?@V^h>GRLJ_`~ zLzX+%8g%l%8_FJ&FE7&u-3vtv{&KAFv1yv1jN2E=;&xSg9U9*H$DPs(BbL~0MGuFp z>pUvB>d|-0Lrntb@njEjx}ioCqT%q)5;Kl{NC5{~mw%J{HXsx$$qk;V4 zlO8PVj=pFAU${e-{?N@KZwa~N-DI-aIp4rT`@4}(s_{|_SgwCQjDG-~^ju2uRymsrtH0Hix?m0$ljlw~I@8SH%qd^FI6oq%0vnR<@Iot@HjWlGJKdzxR36 zy|B{glH*nrGy{$i91|<_R#)vx>YA09KvnD1H{zV3+sfT=TLVs)s;lRr)ScGDS(?+t5ux>v-H)T3@MXd> z90?r0MNK|~gQf|#txdvRP^O{Qy{j!$I(=$`+Qv=VdV%^y2QS_mC;4Orui-?zu6otm z=LzWnEaR)678ON5g-=JavEDm^`hiu2pZjspyk9ZRfVJCLZN|dj3iL&_^_|br$fm@s zT=s>a{^0Z{MTS!XnLn~t-xcUAYM33N)2?5&+VS2_fxt-&LYwqX_x5Toa@G<(!2V;^ z&^}+wjLw2SPqq8oIK8I+>O!ex;Uoh<{7fjWjImz zctbVT9Awx*)X^XkI>?$rC67VU)kQp_Q9+bT{-H$rvmmS9%|@t&`)|nujEVhRVY!tO z&x>ijiNU>v{!6^K%z@dNhJY<2(bT0<82OugcsE@@SN}RW7hb*5`$LcF{zpyGO8F`s6 z2{k&z^b+9p8pm2e8}$DhHjB8bqHv?4L7yut^OW;VTwZrmVc1que{KjNu#Z}jIC~Z?{+-&k#!0iUZ5zsA*jMxsJ4u}E z2MDI&Wt~8DXIa)9uhBCWP8mLT`-DLI#zNF*G%h}{pd)`6Knw8rX~+sRBW0;3G3khJ zUTL$w$QJ>*6u%8|#dh^a^4c)@7g$Uk9?9V1CeX~EtgO{mlc>*1_%D-5xA$x>9n>am zmguIDVw6VrPZ_gRKSCp^dy{#knseDeKS!4LCT@tv&KSt}Q~5N@A$=BJqsL%mPc}Js ztWqd`S3)!jNQOyKwg=|FMeK<`a@jK%V z=$n^-K33u3fUiDZi8UWxtR^Zub!_HacwdYFvECf{p2y74)(N^5H20g=TgEjSN3;P? zSW$UEXc@e5!B8GUN6xe!0O3bo-V|eU6vVO1{+SdBI$F-DI%ST9Gx+4=ilex;D`$!Q z9te0S)U0Q7aYQi+z6se%9)03Ad2J0pm)|o&$71!U$kx^4MrzG{z}SUPqBn1x9!Qao z_9T?Ev)DZWVEi;h)w03-j4xEK{Gfc>7r%x5!W9#2acnQ-0ry7S0xX}!l1?a&V#bDK zx_s#0`kktJBR>a> zfVJ^&f9dm*8xg6~daPV=r=0#JK|DUf#%HEnRcfq32PlVmT(axFiTI8LKYjqRX2Qls>b$NK3cB8fX9oFA9H z!p8OQ=jz68-nwxf+(vWbKM2{XJATm7Dk9Cb5eed97HL2xG=#4TwxeJk^pUOwK8EoZ zXkyhgk6dH^TVclMl}kwfVgnP|_qx#of-An?nRcgKI-HF(E%DSUDmTwOKC>b*S-p_mMLsz(ZI+sV}DW&BrZB<@3O zlGdKrcxS`i7ISnzmoVFB_Tj?)DFQMdDUOv~tvS|C9~PtOblWeoj>+5Sj+!#dFd=)~ zBBBwMV2KWs?ZG5xgLPRE6m&D4Ic`dWz6NwBHLORgQgz%*x(>_0aZfefx<{#x_>7SP zy-Yq(G*|X(ToH%Ufrak9#*TBsDauV0`xtykE2s#;&*>0R8mxS&Q}v=OFMTQDDw~4# zPc#5I%%R^)&fBf<_N zAIAQQeIMr^w6pLaSnX&V2f}4}!}s@+9i$&D|L;CfPb3wROtjYjZ@9KGA$fKlgW$dK?I9eLdJfOVCIK zyw2p|Tl(Xt)=cJ5uIAx$T3ix@Vn-VGH#uQ^iUXg-^d1W4Zy0D$8&YLCPf0FWSJnr~ zOILAs#~k>nFCXZ55fqOc{Z3>5*L@oD<&vLz$ypnX1!L`sj(@=Kn#aRc+ z%HuE@Td2hOpNab!nV$|#*2ZIh3%JIkVFzpO(ddm_A4!qy#CmaTH?Oqaf!6nCSZ@N@ zTr3qzf;jY6Mqxu(n^E(Fi-i}kdZ2zmizs$#X?0XtsRQ*6N1!q-G%N&QCk2!kZGVOF zmW2fbXRGTp1Vcrq%t(5UwqKnFNhY_t>x~)~>F6Nc!bv-2kQ)hX)KzksYiMhWpuYq8 z!4w{PjMRTZbn6#$+*MWP_jF<=ZIP33*4)1Q!UHa>I^N(t2e`nhZk29P<{aiY>UdB

e3}`u^ds|wDsRV~>^j_i;hLv37Q0uDmaD)uWwPBD zc->3prM69jO6vmmrD?km)f@BEdV8zOG3yzHpl+*i{*OsWf*RqseIj|pCBl6J#_6F5 zH0ra*=>23Ii!%fxDZrID$|Ue)DmPsCE|b;a%%nOCFHQ}ix+`F#L&J@LcgUTxKr=Xt z-*@OBZdX2IW$MyX1}Vap^gdw+b4<+{#qEZhnsK_l`SY8x8vux9@CWK_`On?C#{yYT!%_C48MwN zL+_A(9XF$al;Jp^LUL|vgS163&1w-Q6Jqj&>}L`)NA8vz2HOT#zMp(-Dpz4C&ia2< zw*8SF9Q^>kaJu{Tn)2Iw8R#fYRwcnMM(qhTrPJBTO^YvLd|^)TyeXbXjn%89!oUF( zTf;kkJH3rfQLZD)$G|k&cPZI}$w2(@&v+e1$1*1UNSHi%0% zFti&FBY>-C{{aq3M3fO^Z4pLctr(%y#U6J-wvVFJTi#JubMP`$Vt}%RXa6U{LvQeu zc38_AVLi4)!QR~h`|Ffu3sL#WKinmI>_*^!W{--TH73s&z5ZtryT_@dfdj+_$#|R* zTr5{szd0!pQ3pNNip1MjOjQ5yV%O7|ma~Yd!L?R-50f}O_#h`Zik*dDjS^fX{YcSo z7Rg;TaQ*a2?I+PM*J=XwtL$Tx6Lu&r{`Fnu2L~1MZCkaR)l{^~T>$BTMQO0oJRd`o z$z9GSnSxC?L2+BJ6r|i2F#8R6zZK1AEYX6jj2F(U=@2W9$lI%w30rQF_gSnBI#&+v z>k5p6ex&drTUn0ui3k6+rgdkmBUK^j-E4iLlBRqCI^S8oa+?z4efaukHgJ)wL;YJi z`frO+Z{b%6iX}GrGEpYgzE(lD7vn>-1U;836%c2`Ha&vqDdUAcW{Ct$5;fq^kcuG@ zZw>u!^5d?3zS$Oo6o7N@aAE0Kr5b>2X2&Vu!Y$vdg>fQUD^QPL%zGC*>gf8}{)vH= z^+Drt+EB<~Szf*c<^+TPAm1jVT0hDILp>vlpWr`H1Lq$LOivJ}pr$Uv;SoXT)SS#+ zv~(N)%7xo`72Gz%vWQoXhMy+1F@)EWcN04c8ZLV7)#G_|!vV?~(81{P#?TSgcWNOQ zmx3gpGbBYy_mRW(;uz<3g~Qcgbe{$VahZ0RSojY7;%e@SF+r4IV`i>s70OBG*+mv< z;|WP`{b`pcuuoEKcL`|p$+Q`^hl3g(!NF2Mob~vjr67I#^iWBbhe^gp6A$97pAm>< zWKc$vFjY%QqvW-wkOv@b$RhHhb5azX#5ts@p*oW=NAUVMjkiCC$%XZX?kr$02Ii^6 zZMy8FAE9~TY_Sx^Dg7pKGji?;>CHoC>6}zeRj?gy+#c}o4#V(&h;D9W@WiBrYUz%S zD@2-k^oOr(?XlkWf;ooQDObX~hz(H^vdoiSTKTxR#{KYZj!XVwU%P)LCyUtNt-l#E zCC7IpSH(l0lyaE^Hfh}B;HKJK*b}Hl-1842z`N4D=ab_E#Or4)mr7xDd(Aonu4Nr> zbQUu)D^g1~U^h|(8~h+A7Ml!81bmaw z>aZk)QbOKT`6Ubt?pk}{rs{k+<4CMdlIUL#plRmlX=8RUM+KHi$0pT65caC4IlDXzc8?Wkh|wrLsi2jsQ@Zqq}l6ml#4t}9Mnan^_UBUJ6&bc9!T@Qu+ z=p_3c@>l_@RZfHXvd9GCW%Z-+nIi%Vzcr*~v$Sn$Be2C8ZXS!`dS8U}Y?S+8NdJOI z9Gdl(m6QZ|%EQ<6gF-BcM30dGR@m_^W|N#Y7Tsbs|9j$Qa9Z-0QpDmhA=kB>q&g zfXIF;<{+i)z(u35v4^8+VZmTGS?+&ka#AtIm0^?Cg=lq;kTk5xsI)b1lESoNl_)j+ z@TE~=RBq&0yRn+5*8ehDAbn*R;~=EnjX6>Ay=DdAHFIGPU64;EF#>IS?eAa){2|L> zd1Mu7Mi&UEwaRMIZ;_AOw}8^r-U$n-k&O~f0@?fYnwM&s@g11I)I%HH5VNdUzpNt(9R+TSYQB7OY}Ctj z{T|KU1e%zOIUQ-%t|ug1wLtfW5@4%L#Se@$`OjasTrs!)Y^RyGJF{%U_!(%1fwWz% z-z>R!chIc#goL60!umQwvzKgoZ19A(zWsfh6NVNj<@#Ejqz+6}HaN~JD`7|;rbqL& zx)Aa`(dnZn8+1MGA@gN$+1%7-ZPU?pz|QY(1i>#Ho)=s^=VfcC6y9CZDWvQ(q$bUp z&ECL3evKtGk)R6E;1|>_$t-HiCht=hzTU_93`=Cg6ewqc*n?^Z-9!+{(F!52sFD{0 z3Mf(vT`hUTF1C6TRWT7U+^&+kv+U~vS?z?Si#j=lojkhN3?5iWIy*F;&74CldoUJ%1uOc znapi?ffOfQzRed#37lOOz|HX1)M#Gbt*sm)uN)9AcY?HBKYc{mmaX`mZnfrp7kw?vF*t z*dK~eQE7v-d$G}I*5ZIFjT)Mp|F2R1w9B6BKzTyjlE>+Z_gF++4?7>PPUji?5_}QX z*w}Fxt-5dSX0@PL&z`sIkMT3nQJ-pzUXR^uD|<){Nl&U_PR*H)Uz9xcS}3=x&}0Hf z3Cex~O*PlTZO{KqG#`dl;f^A1s8{q~8{t}xTypn*y<`&bd-Ns5t2p`izZOYb=cEW| zH3HZCbB@{24p129{liGr?r((w@KoLGN-=Ic%;`x9CU(9S7^?%!8z>| zIC%i}7d2D-fwSCz%i!d<9#TSa?cw2MAZ3K5JoXt2JCK>n7I(zcx!B#21DH=kGX5NZ zGREKSiP_h%x}*a_IQ_8@YXsZL?*5){7OiVb9DHMR{LuB7@^U&@>g;^U=ZBW*7ZC$E z#k}yKQs1Fho10muZ1+#U_Ox7nTqE9(rKsN-q%=M4;>4IyB5w7aaXAdDD#0k&pREyW z>Xps6-+Q4AL=O?7(;c0QZd9W(n9ORKv(#!2n28@|bUEmch8gSa$MCk>HGiMm4turq z8qqHrtu3n$Xms{GcUFOp;ba`FcJ%6K{CY^wgP{fJdyVt0ztzqP9Q`j2mX2%N*lXD1 zt}PCAGBovjGLN_oN|`r&d7)qGSA(i>Ai^!+KH-cq=^gRTb;sK^=f?pp%&T?afqE6XRZFjkhwL77EKj}z%Q z%4*?vDsWdWNJ4AOD>t=v@aXLk>8<0c@qR2iKeIthLu%TkAW9ogcl%-Dk@Z_j3B0?z zeuZE=mPXj)pA44y#wQ@cut{w(Lza+kc~tyLME9!AUDW2Nz8{qLt;~8w?8JE<(;win z7yk>|nDBjJAYQuW*Uz){;=06PH3;IyATG^DLRzqE=f=NH;LO#-jgvRHnK3qX;^qBO zX#ZCS4%|zk^{>@cF;#4R{*EE#MLo@ZHP!* z;j;sxwrRqPFtf-ew7X0^p!$F;Wj?|pi5<-6u(;!)DWJi*2Akl9!C$?w-@=l0&P)L(uuD4f~_tfkE_I zpo*~3_j`@l`gleapT16Mv>b7C)7>)F5~Kcf_q`f?J9@>}VCLm;`aZ+RhnBfsz*v~J zZf0b`FkI4ZL!Cz|UUwt9ojm%(%9=4I<{-qX6HmCKZT#H4>qLwE5Y@n8tR)i(x)#N9 z!AT7Qr`hf->0or%)QVlwyB*`)%!6tU#3%gqA(Z-^RM*^7_Abr3Hk0*|wkZ3sFwO0+ ztbd8_ao_686>s6q?ZG?kd6&Zc)rLmx9%0mOqrCV#ll-EQbNNvVgI6NnKUK_S0Qkt1kDbUCCcJJIg<%U8JcGq~hS$DKg;uN8&dc@~l*^YL zowl03V3Z|v^{^!&ImP2D7;TQFsCNwXCXdwE<>bi&v_X?RK-WM)csD+*C)I#G^Jg0Oj*__#wjWMBSB zw-1p&H_YJ=nu%}FNuOU){VP=9CocwU)2=B9llivYH@Ou zRgT%FOuBlhd&Gg*QxPBkp3go8w6B*A^kr3tXCwjL)-x=&&c*12zFpCX{_r?$o-MxC0Ruuu;Xwb2cig6Sx`$Xis+q6obqvlc zrGgCWfO+3~4(`8xQ~)f&>{3Zyj%+&b*R>*@`iw$n~9i)c&Y;=gxKkeqx772!> z)rU=Jb8wO7APz$rbIEepK^51W(azVvKv3ge%_FL`Wr1QE3^ zZ>Rlz#p*9GFNKklL*q6D1%w}R)au4z8NwSv(^+%`3R0`rS2+x z8kC^|2to{i*{`SchfKQ}2$7O(tDF(SwXxQz#kXY6Zkd%@vidU5QVAzcrF$^5M{X5M zeS%#hal3CkQHNZ2WpArt=;G+yK{Z$x!AJk`U1kV*V4H@}#IJ5=uc{L?KLz03I_sAU z0U@7;@GC>`{aK575%}DNd2dzwzZRWC_i>|ZZV|hT=rUqOXSm*jluoIhv0oYwp!|u- zNy}F})rX{{7A7VMw(Dkb12m4cO$Mu7qE34)6NdT z{0fftM~Frm&;4TPl2EF8bWau4g;D-RTUd;9Ta2K3i7rG1crtrolw}#z?GZ`c^1XHK zodL5d-H|(w(gFyPz41@Sg*0w}RKarkJe8hW4hsrvb53Wf5}jAwd^hu;>iFF;jd4$Y z&!@vqK%1fI_^5Y5_le)z(hq{Q7I*QsQ`pZU1LXK4xQ`na&QWz!B>-V9DiOmGd5xc% zBw3^)R{qi_(6IsA7RXCIM8goGE7$H5wRUd)mo}TYjP1wCZ=I*qgIkXCiEeOL_bcgK zV4ZnjP!;yaEQ`7azvQ8rXaL#|n097ffzUlE6nrQM--&qw!5%g^**p(xFgykzX3bv# zEPSvBGs()bIb&tm27TSQ)Oe$;BDQ_6N@@xkyHNQNe?{6)O@jp)S1@u~U)!!JfQP8N zU0g9$t`>7Nu3;zZdaNv^DsBLe;pDfjS8{hGd=XV$wc7@ahh0>^an-ah#vK0w&R$H? zk&a4fA9Qu>BqvyqJ?%_(ZdSl$62vFpgXN#ttds)Nl%+ou8x2Y<;Id;_S$$X4g?pfj zf7|h=RD>?WHq^SdZ@q`=G!t~7m6IjUhNHlO;9Q;iF?XB{f5f}O1EFp;-x!RU=sd7@ z+<2mYhG=9O;`&{8dyBNoYMmBc^e)i#9P-W(H}jww{DHXmKiHdm!Zz8F1`P}yg}eP{ zU8jYW>}{x=c8hS%0-Kf(_L6^__AEzHjpz%8b?&Wg*w%D>EfB zW{pIfPh*rhr502}UXwn>wDapcOitesoEPRh6>K~Q*FMcBUPu;Jshd?}&{E%vj-OY5 z&h^VOt9skRqK?z!WSrT}C{G^!A(%a8&`h>3h7k2e1m5H!nw|@U4x{e(oOJHQ!V>m# zD1uka~^p*tzF6W(+2BCydxSQDgTu=r#1{b zRorWrJ!mFd6;=e(uL=xs?ePKj3pO-BPCEL2ubvC73#*tzPrfgkjP4%Q+x|AL!y?sR z_6GW#Bic28ex!^CjZaMNhK2z>GAXKTLhOjNeDyUli2+6?+n12h(@pHvS~q(~oWA!Krg6FF}MY#yG_ zK0C|ICJx3_N0#tEemjzJ0t@PXfM0CqzS1DpV|_+f4DX2_CCxV)i$crN8`I@pE?x$E zD*#&8ukd&*a_=i3m!KQ04pb}K+z|B+T=DOYM&9?5biIJr801ys*JUcCx%xV7Mng*Fp+CW zX}4^tNl|8($tl>rX)>=mfD^%X!lKd~X3eGp*Uv}k#}@6e(!NSEht%kfdM<3A4f2e| z#Gwr~_aNn8{0a2Hel*;W6PUUK_ z3Zxth9H?S)KJqiYj`oy-4$&!^s|>|&61D21GXzUP^5|dHTc>%?UTCUIP8w5^MKr5# zOCGjQ12(Pf8ByZS0TZcp@mMz90G&(M4~47bC&m%4>Gi!b^0!BOulC-r2 z)Q^Dqnvg#~f_l0!Q$;=N*aT#Qd7hwwQZHznd4-Qpcl%(;IY z@cgoWSkSzQ*hO_+bXOsDkZ~B7Rt@^GUs~D8Pf77(!sQ4MOQ#PX$33{2(WyYuJ=IGH zn(x}WGOeX{O-SE&5mfm6#gMH8xy6#cb3dhIOzxcFl!|+i4A%i(fd{wN?xf*$D~6*Z z4&Vb$Xf!Ytje_wY&Uo#19XVd4X5mlBg*9?p6CZ%BkR7*GWCNKgXbC?#fk6)bddTMlWfR>czPZuOk$_bXb}&l(F{ ze98$c$eM91E9%HCPjs1sMZ?EWy1K+x-e-xMel42A$jz%*jATTSN|R)>SW>jdq7@Hk<%BP zSv7f8I0r{ph(X9hO;}k|@hPG@>gSBFIFg!!T`)KQ3tjMQQP%sGeZ; z44YHU8VWMf#37TNCGr39xDa-Ucc&f&c!#cDSyqXr4dortL@kJpUDD`t1(^5bP9~Q0 z?%P2TZMBMkVoe4xm}JIECUCb(8E`D8vA0cCyjb7RPgB(RWPUGxtd_{XG0te__^`2L z?ieo3>q$50ij_(C7Z<-ST(`ti7_{9cr^70(X|N}8g8%v3kpk4*X&RX5dayO04~q}Z zP3??P@^Q3SiKgsLYc9&%*PvgaS|ROx#BFW2%}a;dAz z8>DUrpI)+O-t}(EUfy!I{g*a$-S=?V8i#N(*UbRwJc8Xin^!cK7_>!{=7Oz*htZYB z2NmT?g}h|D2EAw#C{&|H;fG?CWDHoD?P#_7D~ zQ~tNHQ`fPDTw?i&gPM|^n72WnMv>@E-Qzuf>Dy2BcC2^(h7r^m3;J92kp`whgzkH+m7!%Qd_eM7V5c82lDD`4JraqF z>)^60w$MNU|wq zmknK!61jj>fJ%V9a|UU1)y5U;GfM+&N{5%#7KQ$BV+E|aztsKdi<-Hq6;q^qt+3p?h>iagSpAUj`5rWMtiyb3&8Q8 zxa2q}s%z1g-*+W=OJ8M8ANcuGd`y<&zgMYdI5Zp$~|9xPi)h~`g9+Wpfto)-_>bbjV!x9r?wpmv_@gAXK)Q;cBn3{?WTlP$*yj!3h^ z;=L{v3ch-u9=g167>7bo!*9+#9fR%|Qr|zQI?sIsfuAU6{F=hGZdAHQ6=_bR@WC>~ zZR-LX;9e$Q9-StN;uu6 z5GwY7$-&|>Ma%ti9`|+`?NZNSgF2=9i&C!vV15j-TJYV0i=ftY$0&rYhttkjcYl!_ z@q>TGyc4d=eYcO6XY8!7%a-q+E{eds7lU~g@+8_fIeZV?RPbm)|A;WkOu|=QV5x%5 z@6w}#G;5v4-95C--7T!Zg-48v^V^6*B9nBQOK#dgVt$XMd<{=W7*;tb)O($#;B+

KxZglVH*!v<4<+M$jOG)+<@MZ?H>k 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⋙?xb#UN$EFdv|;q1&WdgW*HG|v%v&%ApISce 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

gzYhqlLeK_stho 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 diff --git a/templates/setu.html b/templates/setu.html deleted file mode 100644 index 6b82065..0000000 --- a/templates/setu.html +++ /dev/null @@ -1,94 +0,0 @@ - - - - - - Safe Render Template - - - -

- - diff --git a/tests/__init__.py b/tests/__init__.py new file mode 100644 index 0000000..040cdd1 --- /dev/null +++ b/tests/__init__.py @@ -0,0 +1,18 @@ +"""Test configuration for AstrBot Setu plugin tests.""" + +from __future__ import annotations + +import pytest + + +@pytest.fixture +def sample_access_policy(): + """Create sample access policy for testing.""" + from astrbot_plugin_setu.src.domain.access_control import AccessPolicy + + return AccessPolicy.for_session( + user_id="test_user", + group_id="test_group", + user_mode="none", + group_mode="none", + ) diff --git a/tests/application/test_image_provider_logging.py b/tests/application/test_image_provider_logging.py new file mode 100644 index 0000000..be40265 --- /dev/null +++ b/tests/application/test_image_provider_logging.py @@ -0,0 +1,42 @@ +from __future__ import annotations + +from unittest.mock import MagicMock + +import httpx +import pytest + +from astrbot_plugin_setu.src.application.ports import image_provider as image_provider_module +from astrbot_plugin_setu.src.application.ports.image_provider import SetuImageProvider +from astrbot_plugin_setu.src.domain.setu import SetuRequest + + +class DummyProvider(SetuImageProvider): + async def fetch_image_urls( + self, + num: int, + tags: list[str], + r18: bool, + exclude_ai: bool = True, + ) -> list[str]: + return ["https://example.com/a.jpg"] + + +@pytest.mark.asyncio +async def test_fetch_and_download_logs_when_all_downloads_fail(monkeypatch) -> None: + provider = DummyProvider() + request = SetuRequest.from_user_input(count=1, tags=["cat"], r18=False, exclude_ai=True) + fake_logger = MagicMock() + monkeypatch.setattr(image_provider_module, "logger", fake_logger) + + async def fail_get(_self, url: str): + raise httpx.ConnectError("boom", request=httpx.Request("GET", url)) + + monkeypatch.setattr(httpx.AsyncClient, "get", fail_get) + + payload = await provider.fetch_and_download(request) + + assert payload.items == () + warning_messages = [call.args[0] for call in fake_logger.warning.call_args_list] + error_messages = [call.args[0] for call in fake_logger.error.call_args_list] + assert any("[provider] download failed:" in message for message in warning_messages) + assert any("[provider] all downloads failed:" in message for message in error_messages) diff --git a/tests/application/test_provider_proxy_rewrite.py b/tests/application/test_provider_proxy_rewrite.py new file mode 100644 index 0000000..a74084a --- /dev/null +++ b/tests/application/test_provider_proxy_rewrite.py @@ -0,0 +1,30 @@ +from __future__ import annotations + +from astrbot_plugin_setu.src.infrastructure.providers.atri import AtriProvider +from astrbot_plugin_setu.src.infrastructure.providers.lolicon import LoliconProvider + + +def test_lolicon_provider_rewrites_pixiv_proxy_host() -> None: + provider = LoliconProvider(proxy="my.proxy.local") + + rewritten = provider._apply_proxy_to_urls( + ["https://i.pximg.net/img-original/img/2024/01/01/00/00/00/1_p0.jpg"], + provider.proxy, + "LoliconProvider", + ) + + assert rewritten == [ + "https://my.proxy.local/img-original/img/2024/01/01/00/00/00/1_p0.jpg" + ] + + +def test_atri_provider_keeps_non_pixiv_host_unchanged() -> None: + provider = AtriProvider(proxy="my.proxy.local") + + rewritten = provider._apply_proxy_to_urls( + ["https://cdn.example.com/image.jpg"], + provider.proxy, + "AtriProvider", + ) + + assert rewritten == ["https://cdn.example.com/image.jpg"] diff --git a/tests/conftest.py b/tests/conftest.py new file mode 100644 index 0000000..46adba0 --- /dev/null +++ b/tests/conftest.py @@ -0,0 +1,223 @@ +"""Shared fixtures for AstrBot Setu plugin tests.""" + +from __future__ import annotations + +from pathlib import Path +from typing import Any +from unittest.mock import MagicMock + +import pytest + +from astrbot.api.event import AstrMessageEvent +from astrbot.core import AstrBotConfig + + +@pytest.fixture +def temp_data_dir(tmp_path: Path) -> Path: + """Create temporary data directory for tests. + + Args: + tmp_path: Pytest temporary path fixture + + Returns: + Temporary data directory + """ + data_dir = tmp_path / "plugin_data" + data_dir.mkdir(parents=True, exist_ok=True) + return data_dir + + +@pytest.fixture +def mock_astrbot_config() -> AstrBotConfig: + """Create mock AstrBotConfig. + + Returns: + Mock AstrBotConfig with basic structure + """ + config = MagicMock(spec=AstrBotConfig) + config.__setitem__ = MagicMock() + config.__getitem__ = MagicMock(return_value={}) + config.get = MagicMock(return_value=None) + return config + + +@pytest.fixture +def mock_event() -> AstrMessageEvent: + """Create mock AstrMessageEvent. + + Returns: + Mock event with common attributes + """ + event = MagicMock(spec=AstrMessageEvent) + event.get_sender_id = MagicMock(return_value="test_user_123") + event.get_group_id = MagicMock(return_value="test_group_456") + event.get_session_id = MagicMock(return_value="test_group_456_test_user_123") + event.get_self_id = MagicMock(return_value="test_bot_789") + event.get_messages = MagicMock(return_value=[]) + event.get_message_str = MagicMock(return_value="/setu 3") + event.message_str = "/setu 3" + event.unified_msg_origin = "test_platform:12345" + event.platform = MagicMock() + event.platform.name = "test_platform" + event.is_at_or_wake_command = False + + # Message chain results + def plain_result_fn(text: str) -> Any: + result = MagicMock() + result.result_chain = [MagicMock(text=text)] + return result + + event.plain_result = MagicMock(side_effect=plain_result_fn) + + def chain_result_fn(chain: list[Any]) -> Any: + result = MagicMock() + result.result_chain = chain + return result + + event.chain_result = MagicMock(side_effect=chain_result_fn) + + return event + + +@pytest.fixture +def mock_plugin_context() -> Any: + """Create mock plugin context. + + Returns: + Mock context with send_message method + """ + context = MagicMock() + context.send_message = MagicMock() + + async def mock_send(origin: str, result: Any) -> Any: + return {"message_id": "test_msg_123"} + + context.send_message.side_effect = mock_send + return context + + +@pytest.fixture +def sample_image_bytes() -> bytes: + """Create sample image bytes for testing. + + Returns: + Small PNG image bytes + """ + # Minimal PNG (1x1 transparent pixel) + return ( + b"\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x00\x01\x00\x00\x00\x01" + b"\x08\x06\x00\x00\x00\x1f\x15\xc4\x89\x00\x00\x00\nIDATx\x9cc\x00\x01" + b"\x00\x00\x05\x00\x01\r\n-\xb4\x00\x00\x00\x00IEND\xaeB`\x82" + ) + + +@pytest.fixture +def mock_provider() -> Any: + """Create mock image provider. + + Returns: + Mock provider with fetch_image_urls method + """ + provider = MagicMock() + + async def mock_fetch( + num: int, tags: list[str], r18: bool, exclude_ai: bool + ) -> list[str]: + return [f"https://example.com/image{i}.jpg" for i in range(num)] + + provider.fetch_image_urls = MagicMock(side_effect=mock_fetch) + return provider + + +@pytest.fixture +def sample_config_dict() -> dict[str, Any]: + """Create sample plugin configuration. + + Returns: + Configuration dict matching _conf_schema.json structure + """ + return { + "setu_general": { + "api_type": "lolicon", + "multi_api_strategy": "round_robin", + "content_mode": "sfw", + "max_count": 10, + "max_replenish_rounds": 3, + "tag_alias": "", + }, + "delivery": { + "send_mode": "auto", + "r18_docx_mode": True, + "auto_handle_send_failure": True, + "auto_revoke_r18": False, + "auto_revoke_delay": 30, + "napcat_stream_mode": "fallback", + }, + "html_card": { + "strategy": "fallback", + "mode": "single", + "card_padding": 6, + "card_gap": 6, + }, + "fortune": { + "enabled": True, + "api_type": "inherit", + "tags": "", + "content_mode": "sfw", + "allow_user_refresh": False, + "auto_refresh": True, + }, + "cache": { + "enabled": True, + "ttl_hours": 2, + "max_items": 200, + "cleanup_on_start": True, + }, + "api": { + "lolicon": { + "image_size": "original", + "proxy": "i.pixiv.re", + "aspect_ratio": None, + "uid": [], + "keyword": "", + "exclude_ai": True, + }, + "atri": { + "image_size": "original", + "proxy": "i.pixiv.re", + "aspect_ratio": None, + "uid": [], + "keyword": "", + "exclude_ai": True, + }, + "custom_api_configs": [], + }, + "messages": { + "fetching": {"enabled": True, "text": "正在获取图片,请稍候..."}, + "found": {"enabled": True, "text": "找到 {count} 张符合要求的图片~"}, + "send_failed": {"text": "图片发送失败,请稍后再试。"}, + }, + "safety": { + "setu_user_access_control_mode": "none", + "setu_group_access_control_mode": "none", + "setu_blocked_users": [], + "setu_whitelist_users": [], + "setu_blocked_groups": [], + "setu_whitelist_groups": [], + "fortune_user_access_control_mode": "none", + "fortune_group_access_control_mode": "none", + "fortune_blocked_users": [], + "fortune_whitelist_users": [], + "fortune_blocked_groups": [], + "fortune_whitelist_groups": [], + }, + "performance": { + "enable_range_download": False, + "range_segments": 3, + "range_download_threshold": 512, + "download_concurrent_limit": 10, + "download_timeout_seconds": 30, + }, + "session_configs": [], + "fortune_session_configs": [], + } diff --git a/tests/domain/test_exceptions.py b/tests/domain/test_exceptions.py new file mode 100644 index 0000000..8fa431c --- /dev/null +++ b/tests/domain/test_exceptions.py @@ -0,0 +1,85 @@ +"""Tests for domain exceptions.""" + +from __future__ import annotations + +import pytest + +from astrbot_plugin_setu.src.domain.exceptions import ( + AccessDeniedError, + FortuneException, + FortuneNotFoundError, + ProviderError, + SendError, + SetuException, + ValidationError, +) + + +class TestSetuException: + """Test SetuException base class.""" + + def test_setu_exception(self) -> None: + """Test basic SetuException.""" + with pytest.raises(SetuException): + raise SetuException("Test error") + + +class TestProviderError: + """Test ProviderError.""" + + def test_provider_error(self) -> None: + """Test ProviderError is SetuException.""" + with pytest.raises(SetuException): + raise ProviderError("Provider failed") + + +class TestSendError: + """Test SendError.""" + + def test_send_error(self) -> None: + """Test SendError is SetuException.""" + with pytest.raises(SetuException): + raise SendError("Send failed") + + +class TestAccessDeniedError: + """Test AccessDeniedError.""" + + def test_access_denied_with_reason(self) -> None: + """Test AccessDeniedError with reason.""" + error = AccessDeniedError("User is blocked") + assert str(error) == "Access denied: User is blocked" + assert error.reason == "User is blocked" + + def test_access_denied_no_reason(self) -> None: + """Test AccessDeniedError without reason.""" + error = AccessDeniedError() + assert str(error) == "Access denied" + assert error.reason == "" + + +class TestValidationError: + """Test ValidationError.""" + + def test_validation_error(self) -> None: + """Test ValidationError is SetuException.""" + with pytest.raises(SetuException): + raise ValidationError("Invalid input") + + +class TestFortuneException: + """Test FortuneException base class.""" + + def test_fortune_exception(self) -> None: + """Test basic FortuneException.""" + with pytest.raises(FortuneException): + raise FortuneException("Fortune error") + + +class TestFortuneNotFoundError: + """Test FortuneNotFoundError.""" + + def test_fortune_not_found(self) -> None: + """Test FortuneNotFoundError is FortuneException.""" + with pytest.raises(FortuneException): + raise FortuneNotFoundError("Fortune not found") diff --git a/tests/domain/test_tag_resolver.py b/tests/domain/test_tag_resolver.py new file mode 100644 index 0000000..1020f67 --- /dev/null +++ b/tests/domain/test_tag_resolver.py @@ -0,0 +1,110 @@ +"""Tests for TagResolverService domain service.""" + +from __future__ import annotations + + +from astrbot_plugin_setu.src.domain.setu import TagResolverService + + +class TestTagResolverService: + """Test TagResolverService.""" + + def test_init_default(self) -> None: + """Test initialization with default alias map.""" + resolver = TagResolverService() + alias_map = resolver.get_alias_map() + assert "萝莉" in alias_map + assert "loli" in alias_map["萝莉"] + + def test_init_custom(self) -> None: + """Test initialization with custom alias map.""" + custom_map = {"test": ["alias1", "alias2"]} + resolver = TagResolverService(custom_map) + assert resolver.get_alias_map() == custom_map + + def test_resolve_tags_empty(self) -> None: + """Test resolving empty tag string.""" + resolver = TagResolverService() + assert resolver.resolve_tags("") == [] + + def test_resolve_tags_single(self) -> None: + """Test resolving single tag.""" + resolver = TagResolverService() + tags = resolver.resolve_tags("girl") + assert tags == ["少女"] + + def test_resolve_tags_multiple(self) -> None: + """Test resolving multiple tags.""" + resolver = TagResolverService() + tags = resolver.resolve_tags("girl,cute,long_hair") + assert tags == ["少女", "cute", "长发"] + + def test_resolve_tags_with_alias(self) -> None: + """Test resolving tag with alias.""" + resolver = TagResolverService() + tags = resolver.resolve_tags("loli") + assert tags == ["萝莉"] + + def test_resolve_tags_chinese_comma(self) -> None: + """Test resolving tags with Chinese comma.""" + resolver = TagResolverService() + tags = resolver.resolve_tags("girl,cute") + assert tags == ["少女", "cute"] + + def test_resolve_tags_with_spaces(self) -> None: + """Test resolving tags with spaces.""" + resolver = TagResolverService() + tags = resolver.resolve_tags("girl cute long_hair") + assert tags == ["少女", "cute", "长发"] + + def test_resolve_tags_mixed_separators(self) -> None: + """Test resolving tags with mixed separators.""" + resolver = TagResolverService() + tags = resolver.resolve_tags("girl, cute,long_hair cat") + assert tags == ["少女", "cute", "长发", "cat"] + + def test_parse_alias_map_from_string(self) -> None: + """Test parsing alias map from config string.""" + alias_str = """# Comment line +canonical1=alias1,alias2 +canonical2=alias3 + +# Another comment +canonical3=alias4,alias5 +""" + result = TagResolverService.parse_alias_map_from_string(alias_str) + assert result == { + "canonical1": ["alias1", "alias2"], + "canonical2": ["alias3"], + "canonical3": ["alias4", "alias5"], + } + + def test_parse_alias_map_empty(self) -> None: + """Test parsing empty alias string.""" + result = TagResolverService.parse_alias_map_from_string("") + assert result == {} + + def test_parse_alias_map_invalid_lines(self) -> None: + """Test parsing alias string with invalid lines.""" + alias_str = """ +valid=test1,alias1 +invalid line +=alias2 +test2= +""" + result = TagResolverService.parse_alias_map_from_string(alias_str) + assert result == {"valid": ["test1", "alias1"]} + + def test_update_alias_map(self) -> None: + """Test updating alias map.""" + resolver = TagResolverService() + new_map = {"custom": ["alias1", "alias2"]} + resolver.update_alias_map(new_map) + assert resolver.get_alias_map() == new_map + + def test_find_canonical_tag_case_insensitive(self) -> None: + """Test canonical tag lookup is case-insensitive.""" + resolver = TagResolverService() + assert resolver._find_canonical_tag("萝莉") == "萝莉" + assert resolver._find_canonical_tag("LOLI") == "萝莉" + assert resolver._find_canonical_tag("loli") == "萝莉" diff --git a/tests/domain/test_value_objects.py b/tests/domain/test_value_objects.py new file mode 100644 index 0000000..c95fac5 --- /dev/null +++ b/tests/domain/test_value_objects.py @@ -0,0 +1,143 @@ +"""Tests for domain value objects.""" + +from __future__ import annotations + + +from astrbot_plugin_setu.src.application.setu import ImagePayload +from astrbot_plugin_setu.src.domain.access_control import AccessPolicy +from astrbot_plugin_setu.src.domain.fortune import FortuneResult, FortuneSeed +from astrbot_plugin_setu.src.domain.setu import SetuRequest +from astrbot_plugin_setu.src.infrastructure.sending import SendOptions + + +class TestSetuRequest: + """Test SetuRequest value object.""" + + def test_from_user_input(self) -> None: + """Test creating SetuRequest from user input.""" + request = SetuRequest.from_user_input(3, ["girl", "cute"], False) + assert request.count == 3 + assert request.tags == ("girl", "cute") + assert request.r18 is False + assert request.exclude_ai is True + + def test_with_tags(self) -> None: + """Test creating new request with different tags.""" + request = SetuRequest.from_user_input(1, ["girl"], False) + new_request = request.with_tags(["cat", "cute"]) + assert new_request.count == 1 + assert new_request.tags == ("cat", "cute") + assert new_request.r18 is False + + +class TestImagePayload: + """Test ImagePayload value object.""" + + def test_empty_payload(self) -> None: + """Test empty payload detection.""" + payload = ImagePayload((), (), False, ()) + assert payload.is_empty + assert payload.count == 0 + + def test_payload_with_urls(self) -> None: + """Test payload with URLs.""" + payload = ImagePayload(("url1", "url2"), (), False, ("tag1",)) + assert not payload.is_empty + assert payload.count == 2 + + def test_payload_with_bytes(self) -> None: + """Test payload with bytes.""" + payload = ImagePayload((), (b"data1", b"data2"), False, ()) + assert not payload.is_empty + assert payload.count == 2 + + def test_payload_count_uses_max(self) -> None: + """Test count uses max of URLs and bytes.""" + payload = ImagePayload(("url1", "url2"), (b"data1",), False, ()) + assert payload.count == 2 + + +class TestAccessPolicy: + """Test AccessPolicy value object.""" + + def test_for_user(self) -> None: + """Test creating policy for user.""" + policy = AccessPolicy.for_user("user123", "blacklist") + assert policy.user_id == "user123" + assert policy.group_id is None + assert policy.user_mode == "blacklist" + assert policy.group_mode == "none" + + def test_for_group(self) -> None: + """Test creating policy for group.""" + policy = AccessPolicy.for_group("group456", "whitelist") + assert policy.user_id is None + assert policy.group_id == "group456" + assert policy.user_mode == "none" + assert policy.group_mode == "whitelist" + + def test_for_session(self) -> None: + """Test creating policy for full session.""" + policy = AccessPolicy.for_session( + "user123", "group456", "blacklist", "whitelist" + ) + assert policy.user_id == "user123" + assert policy.group_id == "group456" + assert policy.user_mode == "blacklist" + assert policy.group_mode == "whitelist" + + +class TestFortuneSeed: + """Test FortuneSeed value object.""" + + def test_for_today(self) -> None: + """Test creating seed for today.""" + from datetime import date + + seed = FortuneSeed.for_today("user123") + assert seed.user_id == "user123" + assert seed.date_str == date.today().isoformat() + + def test_cache_key(self) -> None: + """Test cache key generation.""" + seed = FortuneSeed("user123", "2026-05-09") + assert seed.cache_key == "user123_2026-05-09" + + +class TestFortuneResult: + """Test FortuneResult value object.""" + + def test_max_stars(self) -> None: + """Test max stars property.""" + seed = FortuneSeed("user123", "2026-05-09") + result = FortuneResult( + seed=seed, + title="大吉", + star_count=6, + description="Lucky day!", + extra_message="", + theme_color="theme-red", + ) + assert result.max_stars == 7 + assert result.star_count == 6 + + +class TestSendOptions: + """Test SendOptions value object.""" + + def test_defaults(self) -> None: + """Test default values.""" + options = SendOptions( + send_mode="auto", + use_html_card=False, + auto_revoke=False, + revoke_delay=30, + r18_docx_mode=True, + ) + assert options.send_mode == "auto" + assert options.use_html_card is False + assert options.auto_revoke is False + assert options.revoke_delay == 30 + assert options.r18_docx_mode is True + assert options.html_padding == 6 + assert options.html_gap == 6 diff --git a/tests/infrastructure/test_access_control_repo.py b/tests/infrastructure/test_access_control_repo.py new file mode 100644 index 0000000..09ca0e8 --- /dev/null +++ b/tests/infrastructure/test_access_control_repo.py @@ -0,0 +1,137 @@ +"""Tests for FileBackedAccessControlRepo.""" + +from __future__ import annotations + +import pytest + +from astrbot_plugin_setu.src.infrastructure.persistence import ( + FileBackedAccessControlRepo, +) + + +class TestFileBackedAccessControlRepo: + """Test FileBackedAccessControlRepo.""" + + @pytest.mark.asyncio + async def test_initialize(self, temp_data_dir, mock_astrbot_config) -> None: + """Test repository initialization.""" + repo = FileBackedAccessControlRepo(temp_data_dir, mock_astrbot_config) + await repo.initialize() + assert repo._config_file.exists() + + @pytest.mark.asyncio + async def test_setu_user_blacklist( + self, temp_data_dir, mock_astrbot_config + ) -> None: + """Test Setu user blacklist operations.""" + repo = FileBackedAccessControlRepo(temp_data_dir, mock_astrbot_config) + await repo.initialize() + + # Add to blacklist + assert await repo.add_setu_blocked_user("user123") is True + assert await repo.is_setu_user_blocked("user123") is True + + # Remove from blacklist + assert await repo.remove_setu_blocked_user("user123") is True + assert await repo.is_setu_user_blocked("user123") is False + + @pytest.mark.asyncio + async def test_setu_user_whitelist( + self, temp_data_dir, mock_astrbot_config + ) -> None: + """Test Setu user whitelist operations.""" + repo = FileBackedAccessControlRepo(temp_data_dir, mock_astrbot_config) + await repo.initialize() + + # Add to whitelist + assert await repo.add_setu_whitelist_user("user456") is True + assert await repo.is_setu_user_whitelisted("user456") is True + + # Remove from whitelist + assert await repo.remove_setu_whitelist_user("user456") is True + assert await repo.is_setu_user_whitelisted("user456") is False + + @pytest.mark.asyncio + async def test_setu_group_blacklist( + self, temp_data_dir, mock_astrbot_config + ) -> None: + """Test Setu group blacklist operations.""" + repo = FileBackedAccessControlRepo(temp_data_dir, mock_astrbot_config) + await repo.initialize() + + # Add to blacklist + assert await repo.add_setu_blocked_group("group789") is True + assert await repo.is_setu_group_blocked("group789") is True + + # Remove from blacklist + assert await repo.remove_setu_blocked_group("group789") is True + assert await repo.is_setu_group_blocked("group789") is False + + @pytest.mark.asyncio + async def test_setu_group_whitelist( + self, temp_data_dir, mock_astrbot_config + ) -> None: + """Test Setu group whitelist operations.""" + repo = FileBackedAccessControlRepo(temp_data_dir, mock_astrbot_config) + await repo.initialize() + + # Add to whitelist + assert await repo.add_setu_whitelist_group("group101") is True + assert await repo.is_setu_group_whitelisted("group101") is True + + # Remove from whitelist + assert await repo.remove_setu_whitelist_group("group101") is True + assert await repo.is_setu_group_whitelisted("group101") is False + + @pytest.mark.asyncio + async def test_fortune_user_operations( + self, temp_data_dir, mock_astrbot_config + ) -> None: + """Test Fortune user operations.""" + repo = FileBackedAccessControlRepo(temp_data_dir, mock_astrbot_config) + await repo.initialize() + + # Blacklist + assert await repo.add_fortune_blocked_user("user222") is True + assert await repo.is_fortune_user_blocked("user222") is True + + # Whitelist + assert await repo.add_fortune_whitelist_user("user333") is True + assert await repo.is_fortune_user_whitelisted("user333") is True + + @pytest.mark.asyncio + async def test_fortune_group_operations( + self, temp_data_dir, mock_astrbot_config + ) -> None: + """Test Fortune group operations.""" + repo = FileBackedAccessControlRepo(temp_data_dir, mock_astrbot_config) + await repo.initialize() + + # Blacklist + assert await repo.add_fortune_blocked_group("group444") is True + assert await repo.is_fortune_group_blocked("group444") is True + + # Whitelist + assert await repo.add_fortune_whitelist_group("group555") is True + assert await repo.is_fortune_group_whitelisted("group555") is True + + @pytest.mark.asyncio + async def test_mutual_exclusion_blacklist_whitelist( + self, temp_data_dir, mock_astrbot_config + ) -> None: + """Test that adding to blacklist removes from whitelist and vice versa.""" + repo = FileBackedAccessControlRepo(temp_data_dir, mock_astrbot_config) + await repo.initialize() + + # Add to blacklist, then whitelist + await repo.add_setu_blocked_user("user666") + assert await repo.is_setu_user_blocked("user666") is True + + await repo.add_setu_whitelist_user("user666") + assert await repo.is_setu_user_whitelisted("user666") is True + assert await repo.is_setu_user_blocked("user666") is False + + # Add to whitelist, then blacklist + await repo.add_setu_blocked_user("user666") + assert await repo.is_setu_user_blocked("user666") is True + assert await repo.is_setu_user_whitelisted("user666") is False diff --git a/tests/infrastructure/test_image_sender.py b/tests/infrastructure/test_image_sender.py new file mode 100644 index 0000000..1b57089 --- /dev/null +++ b/tests/infrastructure/test_image_sender.py @@ -0,0 +1,139 @@ +"""Tests for image sender transport behavior.""" + +from __future__ import annotations + +from pathlib import Path +from typing import Any +from unittest.mock import AsyncMock, MagicMock + +import pytest +import astrbot.api.message_components as Comp +from astrbot_plugin_setu.src.application.setu import ImagePayload +from astrbot_plugin_setu.src.infrastructure.astrbot.config import ( + clear_config, + set_plugin_context, +) +from astrbot_plugin_setu.src.infrastructure.sending.image_sender import ImageSender +from astrbot_plugin_setu.src.infrastructure.sending.send_strategies import ( + DirectSendStrategy, +) +from astrbot_plugin_setu.src.shared.config import SetuPluginConfig + + +@pytest.fixture(autouse=True) +def reset_singletons() -> None: + """Keep config/context singletons isolated.""" + clear_config() + yield + clear_config() + + +@pytest.mark.asyncio +async def test_send_images_streams_on_fallback( + tmp_path: Path, mock_event, sample_config_dict +) -> None: + """A failed normal path send uses NapCat stream upload and retries once.""" + image_path = tmp_path / "image.jpg" + image_path.write_bytes(b"image-data") + + context = MagicMock() + sent_results: list[Any] = [] + + async def send_message(_origin: str, result: Any) -> Any: + sent_results.append(result) + if len(sent_results) == 1: + return {"message_id": "found"} + if len(sent_results) == 2: + return None + return {"message_id": "streamed"} + + context.send_message.side_effect = send_message + set_plugin_context(context) + + mock_event.platform.name = "aiocqhttp" + mock_event.bot = MagicMock() + mock_event.bot.api = None + + async def call_action(action: str, **params: Any) -> dict[str, Any]: + assert action == "upload_file_stream" + if params.get("is_complete"): + return {"status": "ok", "retcode": 0, "data": {"file_path": "stream://image"}} + return {"status": "ok", "retcode": 0, "data": {}} + + mock_event.bot.call_action = AsyncMock(side_effect=call_action) + + config = SetuPluginConfig(**sample_config_dict) + payload = ImagePayload( + urls=("https://example.com/image.jpg",), + raw_bytes=(), + file_paths=(image_path,), + items=(image_path,), + r18=False, + tags=(), + ) + + results = [item async for item in ImageSender(config).send_images(payload, mock_event)] + + assert results == [{"send_success": True, "image_count": 1}] + assert len(sent_results) == 3 + retried_chain = sent_results[-1].result_chain + assert retried_chain[0].file == "stream://image" + assert mock_event.bot.call_action.called + + +@pytest.mark.asyncio +async def test_send_images_materializes_local_files_before_direct_send( + tmp_path: Path, mock_event, sample_config_dict +) -> None: + image_path = tmp_path / "image.jpg" + image_path.write_bytes(b"image-data") + + context = MagicMock() + sent_results: list[Any] = [] + + async def send_message(_origin: str, result: Any) -> dict[str, str]: + sent_results.append(result) + return {"message_id": "ok"} + + context.send_message = AsyncMock(side_effect=send_message) + set_plugin_context(context) + + config_dict = sample_config_dict.copy() + config_dict["delivery"] = {**sample_config_dict["delivery"], "napcat_stream_mode": "disabled"} + config = SetuPluginConfig(**config_dict) + payload = ImagePayload( + urls=(), + raw_bytes=(), + file_paths=(image_path,), + items=(image_path,), + r18=False, + tags=(), + ) + + results = [item async for item in ImageSender(config).send_images(payload, mock_event)] + + assert results == [{"send_success": True, "image_count": 1}] + image_comp = sent_results[-1].result_chain[0] + assert isinstance(image_comp, Comp.Image) + assert isinstance(image_comp.file, str) + assert image_comp.file.startswith("base64://") + + +@pytest.mark.asyncio +async def test_direct_send_strategy_passthroughs_onebot_stream_refs(mock_event) -> None: + context = MagicMock() + strategy = DirectSendStrategy(context) + + mock_event.platform.name = "aiocqhttp" + mock_event.get_group_id.return_value = "123456" + mock_event.get_sender_id.return_value = "654321" + mock_event.bot = MagicMock() + mock_event.bot.send_group_msg = AsyncMock(return_value={"message_id": "ok"}) + + success = await strategy.send(mock_event, [Comp.Image(file="stream://image")]) + + assert success is True + mock_event.bot.send_group_msg.assert_awaited_once_with( + group_id=123456, + message=[{"type": "image", "data": {"file": "stream://image"}}], + ) diff --git a/tests/infrastructure/test_permission_service.py b/tests/infrastructure/test_permission_service.py new file mode 100644 index 0000000..264e471 --- /dev/null +++ b/tests/infrastructure/test_permission_service.py @@ -0,0 +1,75 @@ +"""Tests for PermissionService.""" + +from __future__ import annotations + +from unittest.mock import MagicMock + + +from astrbot_plugin_setu.src.infrastructure.permission_service import PermissionService + + +class TestPermissionService: + """Test PermissionService.""" + + def test_is_admin_with_role(self, mock_event) -> None: + """Test is_admin with admin role.""" + mock_event.is_admin = MagicMock(return_value=True) + assert PermissionService.is_admin(mock_event) is True + + def test_is_admin_with_super_user(self, mock_event) -> None: + """Test is_admin with super user.""" + mock_event.is_admin = MagicMock(return_value=False) + mock_event.is_super_user = MagicMock(return_value=True) + assert PermissionService.is_admin(mock_event) is True + + def test_is_admin_with_sender_role(self, mock_event) -> None: + """Test is_admin with sender role.""" + mock_event.is_admin = MagicMock(return_value=False) + mock_event.is_super_user = MagicMock(return_value=False) + + sender = MagicMock() + sender.role = "admin" + mock_event.message_obj = MagicMock() + mock_event.message_obj.sender = sender + + assert PermissionService.is_admin(mock_event) is True + + def test_is_admin_false(self, mock_event) -> None: + """Test is_admin returns False for regular user.""" + mock_event.is_admin = MagicMock(return_value=False) + mock_event.is_super_user = MagicMock(return_value=False) + assert PermissionService.is_admin(mock_event) is False + + def test_is_super_user(self, mock_event) -> None: + """Test is_super_user.""" + mock_event.is_super_user = MagicMock(return_value=True) + assert PermissionService.is_super_user(mock_event) is True + + def test_require_admin_granted(self, mock_event) -> None: + """Test require_admin when permission granted.""" + mock_event.is_admin = MagicMock(return_value=True) + has_perm, msg = PermissionService.require_admin(mock_event) + assert has_perm is True + assert msg == "" + + def test_require_admin_denied(self, mock_event) -> None: + """Test require_admin when permission denied.""" + mock_event.is_admin = MagicMock(return_value=False) + mock_event.is_super_user = MagicMock(return_value=False) + has_perm, msg = PermissionService.require_admin(mock_event) + assert has_perm is False + assert "权限不足" in msg + + def test_require_super_user_granted(self, mock_event) -> None: + """Test require_super_user when permission granted.""" + mock_event.is_super_user = MagicMock(return_value=True) + has_perm, msg = PermissionService.require_super_user(mock_event) + assert has_perm is True + assert msg == "" + + def test_require_super_user_denied(self, mock_event) -> None: + """Test require_super_user when permission denied.""" + mock_event.is_super_user = MagicMock(return_value=False) + has_perm, msg = PermissionService.require_super_user(mock_event) + assert has_perm is False + assert "权限不足" in msg diff --git a/tests/infrastructure/test_provider_init_from_config.py b/tests/infrastructure/test_provider_init_from_config.py new file mode 100644 index 0000000..492281a --- /dev/null +++ b/tests/infrastructure/test_provider_init_from_config.py @@ -0,0 +1,25 @@ +from __future__ import annotations + +from astrbot_plugin_setu.src.infrastructure.providers import ( + clear_provider, + get_provider, + init_provider_from_config, +) +from astrbot_plugin_setu.src.shared.config import SetuPluginConfig + + +def test_init_provider_from_config_uses_current_proxy_values(sample_config_dict) -> None: + clear_provider() + config_dict = sample_config_dict.copy() + config_dict["setu_general"] = {**sample_config_dict["setu_general"], "api_type": "lolicon"} + config_dict["api"] = { + **sample_config_dict["api"], + "lolicon": {**sample_config_dict["api"]["lolicon"], "proxy": "proxy.example.com"}, + "atri": {**sample_config_dict["api"]["atri"], "proxy": "atri-proxy.example.com"}, + } + config = SetuPluginConfig(**config_dict) + + init_provider_from_config(config) + provider = get_provider() + + assert getattr(provider, "proxy", None) == "proxy.example.com" diff --git a/tests/infrastructure/test_session_config_repo.py b/tests/infrastructure/test_session_config_repo.py new file mode 100644 index 0000000..0f72aa6 --- /dev/null +++ b/tests/infrastructure/test_session_config_repo.py @@ -0,0 +1,70 @@ +"""Tests for JSON-backed session configuration.""" + +from __future__ import annotations + +import json + +import pytest +from astrbot_plugin_setu.src.application.session_config import ( + SessionConfigService, + SessionConfigValidationError, +) +from astrbot_plugin_setu.src.application.settings import clear_application_config +from astrbot_plugin_setu.src.infrastructure.persistence.session_config_json_repository import ( + JsonSessionConfigRepository, +) + +pytestmark = pytest.mark.asyncio + + +@pytest.fixture(autouse=True) +def clear_config() -> None: + """Keep global config defaults deterministic.""" + clear_application_config() + + +async def test_session_config_repo_creates_initial_file(temp_data_dir) -> None: + """Repository initializes the independent session override store.""" + repo = JsonSessionConfigRepository(temp_data_dir) + await repo.initialize() + + data = json.loads((temp_data_dir / "session_overrides.json").read_text()) + assert data == {"version": 1, "sessions": []} + + +async def test_session_config_service_sets_and_clears_values(temp_data_dir) -> None: + """Service validates values and keeps a record when clearing overrides.""" + repo = JsonSessionConfigRepository(temp_data_dir) + await repo.initialize() + service = SessionConfigService(repo) + + snapshot = await service.set_value( + "platform:group:1000", "group", "setu.content_mode", "r18", "测试群" + ) + assert snapshot.overrides["setu.content_mode"] == "r18" + assert snapshot.effective["setu.content_mode"] == "r18" + + snapshot = await service.set_value( + "platform:group:1000", "group", "setu.auto_revoke", "on", "测试群" + ) + assert snapshot.overrides["setu.auto_revoke"] is True + + snapshot = await service.clear( + "platform:group:1000", "group", "setu.content_mode", "测试群" + ) + assert "setu.content_mode" not in snapshot.overrides + assert snapshot.effective["setu.content_mode"] == "sfw" + + sessions = await service.list_snapshots() + assert len(sessions) == 1 + assert sessions[0].session_id == "platform:group:1000" + + +async def test_session_config_service_rejects_unknown_key(temp_data_dir) -> None: + """Unknown config keys are rejected before persistence.""" + repo = JsonSessionConfigRepository(temp_data_dir) + await repo.initialize() + service = SessionConfigService(repo) + + with pytest.raises(SessionConfigValidationError): + await service.set_value("session", "private", "unknown.key", "value") diff --git a/tests/modules/__init__.py b/tests/modules/__init__.py new file mode 100644 index 0000000..d6cce43 --- /dev/null +++ b/tests/modules/__init__.py @@ -0,0 +1 @@ +"""Module tests for AstrBot Setu plugin.""" diff --git a/tests/modules/test_fortune_module.py b/tests/modules/test_fortune_module.py new file mode 100644 index 0000000..5ebc4ca --- /dev/null +++ b/tests/modules/test_fortune_module.py @@ -0,0 +1,58 @@ +"""Tests for FortuneModule class.""" + +from __future__ import annotations + +from unittest.mock import MagicMock + +import pytest + +from astrbot_plugin_setu.src.infrastructure.astrbot.commands import ( + FortuneCommandHandler, +) + + +@pytest.fixture +def mock_plugin_context() -> MagicMock: + """Create mock AstrBot plugin context.""" + context = MagicMock() + context.get_config = MagicMock(return_value={}) + context.logger = MagicMock() + return context + + +@pytest.fixture +def mock_config() -> MagicMock: + """Create mock AstrBot config.""" + config = MagicMock() + config.__getitem__ = MagicMock(return_value={}) + config.get = MagicMock(return_value=None) + return config + + +class TestFortuneCommandHandler: + """Test Fortune command adapter initialization.""" + + def test_module_init(self, mock_plugin_context, mock_config) -> None: + """Test handler initialization.""" + handler = FortuneCommandHandler() + assert handler is not None + + def test_module_has_required_methods( + self, mock_plugin_context, mock_config + ) -> None: + """Test module has required methods.""" + handler = FortuneCommandHandler() + + assert hasattr(handler, "fortune_command") + assert hasattr(handler, "refresh_fortune_command") + assert callable(handler.fortune_command) + assert callable(handler.refresh_fortune_command) + + def test_module_has_decorators(self, mock_plugin_context, mock_config) -> None: + """Test command adapter methods exist.""" + handler = FortuneCommandHandler() + + assert hasattr(handler, "refresh_group_fortune_command") + assert hasattr(handler, "refresh_all_fortune_command") + assert hasattr(handler, "enable_fortune_group_command") + assert hasattr(handler, "disable_fortune_group_command") diff --git a/tests/modules/test_setu_module.py b/tests/modules/test_setu_module.py new file mode 100644 index 0000000..5ef0f3d --- /dev/null +++ b/tests/modules/test_setu_module.py @@ -0,0 +1,71 @@ +"""Tests for SetuModule class.""" + +from __future__ import annotations + +from unittest.mock import MagicMock + +import pytest + +from astrbot_plugin_setu.src.infrastructure.astrbot.commands import ( + SessionConfigCommandHandler, + SetuCommandHandler, +) + + +@pytest.fixture +def mock_plugin_context() -> MagicMock: + """Create mock AstrBot plugin context.""" + context = MagicMock() + context.get_config = MagicMock(return_value={}) + context.logger = MagicMock() + return context + + +@pytest.fixture +def mock_config() -> MagicMock: + """Create mock AstrBot config.""" + config = MagicMock() + config.__getitem__ = MagicMock(return_value={}) + config.get = MagicMock(return_value=None) + return config + + +class TestSetuCommandHandler: + """Test Setu command adapter initialization.""" + + def test_module_init(self, mock_plugin_context, mock_config) -> None: + """Test handler initialization.""" + handler = SetuCommandHandler() + assert handler is not None + + def test_module_has_required_methods( + self, mock_plugin_context, mock_config + ) -> None: + """Test module has required methods.""" + handler = SetuCommandHandler() + + assert hasattr(handler, "get_random_picture") + assert hasattr(handler, "setu_command") + assert hasattr(handler, "_get_effective_content_mode") + assert callable(handler.get_random_picture) + assert callable(handler.setu_command) + + def test_module_has_decorators(self, mock_plugin_context, mock_config) -> None: + """Test command adapter methods exist.""" + handler = SetuCommandHandler() + + assert hasattr(handler, "setu_command") + assert hasattr(handler, "_fetch_and_send_images") + + +class TestSessionConfigCommandHandler: + """Test unified session config adapter initialization.""" + + def test_module_has_required_methods(self) -> None: + """Test command adapter methods exist.""" + handler = SessionConfigCommandHandler() + + assert hasattr(handler, "session_config_command") + assert hasattr(handler, "_llm_get_session_config") + assert hasattr(handler, "_llm_set_session_config") + assert hasattr(handler, "_llm_clear_session_config") diff --git a/tests/shared/test_config_models.py b/tests/shared/test_config_models.py new file mode 100644 index 0000000..4844424 --- /dev/null +++ b/tests/shared/test_config_models.py @@ -0,0 +1,10 @@ +from __future__ import annotations + +from astrbot_plugin_setu.src.shared.config import SetuPluginConfig + + +def test_provider_config_accepts_empty_aspect_ratio(sample_config_dict) -> None: + config = SetuPluginConfig(**sample_config_dict) + + assert config.api.lolicon.aspect_ratio is None + assert config.api.atri.aspect_ratio is None diff --git a/tests/test_main_command_routing.py b/tests/test_main_command_routing.py new file mode 100644 index 0000000..30f0a39 --- /dev/null +++ b/tests/test_main_command_routing.py @@ -0,0 +1,37 @@ +from __future__ import annotations + +from astrbot_plugin_setu.main import ( + _resolve_fortune_refresh_target, + _resolve_fortune_toggle_action, + _resolve_fortune_user_action, +) + + +def test_resolve_fortune_refresh_target_from_new_command(mock_event) -> None: + mock_event.message_str = "/运势刷新 本群" + assert _resolve_fortune_refresh_target(mock_event, "本群") == "group" + + +def test_resolve_fortune_refresh_target_from_legacy_alias(mock_event) -> None: + mock_event.message_str = "/刷新全局今日运势" + assert _resolve_fortune_refresh_target(mock_event, "") == "all" + + +def test_resolve_fortune_toggle_action_from_new_command(mock_event) -> None: + mock_event.message_str = "/运势开关 关" + assert _resolve_fortune_toggle_action(mock_event, "关") == "disable" + + +def test_resolve_fortune_toggle_action_from_legacy_alias(mock_event) -> None: + mock_event.message_str = "/开启运势" + assert _resolve_fortune_toggle_action(mock_event, "") == "enable" + + +def test_resolve_fortune_user_action_from_new_command(mock_event) -> None: + mock_event.message_str = "/运势用户 拉黑 12345" + assert _resolve_fortune_user_action(mock_event, "拉黑 12345") == ("block", "12345") + + +def test_resolve_fortune_user_action_from_legacy_alias(mock_event) -> None: + mock_event.message_str = "/取消运势信任 12345" + assert _resolve_fortune_user_action(mock_event, "12345") == ("untrust", "12345") diff --git a/tests/test_main_config_source.py b/tests/test_main_config_source.py new file mode 100644 index 0000000..c2a2281 --- /dev/null +++ b/tests/test_main_config_source.py @@ -0,0 +1,60 @@ +from __future__ import annotations + +from unittest.mock import AsyncMock, MagicMock + +import pytest + +from astrbot_plugin_setu.main import SetuPlugin + + +@pytest.mark.asyncio +async def test_initialize_uses_plugin_config_not_context_config( + monkeypatch, sample_config_dict +) -> None: + context = MagicMock() + context.get_config.return_value = {"api": {"lolicon": {"proxy": "wrong.example.com"}}} + config = MagicMock() + config.items.return_value = sample_config_dict.items() + + plugin = SetuPlugin(context, config) + plugin.name = "astrbot_plugin_setu" + + captured: dict[str, object] = {} + + def fake_init_config(raw_config): + captured["raw_config"] = raw_config + return MagicMock( + api_type="lolicon", + custom_api_configs=[], + multi_api_strategy="round_robin", + proxy=raw_config["api"]["lolicon"]["proxy"], + image_size="original", + aspect_ratio="", + uid=[], + keyword="", + atri_proxy=raw_config["api"]["atri"]["proxy"], + atri_image_size="original", + atri_aspect_ratio="", + atri_uid=[], + atri_keyword="", + cache_enabled=True, + cache_ttl_hours=2, + cache_max_items=200, + cache_cleanup_on_start=True, + ) + + monkeypatch.setattr("astrbot_plugin_setu.main.init_config", fake_init_config) + monkeypatch.setattr("astrbot_plugin_setu.main.set_plugin_context", lambda _ctx: None) + monkeypatch.setattr("astrbot_plugin_setu.main.StarTools.get_data_dir", lambda _name: "/tmp") + monkeypatch.setattr("astrbot_plugin_setu.main.init_provider_from_config", lambda _cfg: None) + monkeypatch.setattr("astrbot_plugin_setu.main.init_access_control_repo", AsyncMock()) + monkeypatch.setattr("astrbot_plugin_setu.main.init_fortune_repo", AsyncMock()) + monkeypatch.setattr("astrbot_plugin_setu.main.init_session_config_repo", AsyncMock()) + monkeypatch.setattr("astrbot_plugin_setu.main.init_send_cache", AsyncMock()) + monkeypatch.setattr("astrbot_plugin_setu.main.register_setu_llm_tools", lambda: None) + monkeypatch.setattr("astrbot_plugin_setu.main.register_fortune_llm_tools", lambda: None) + monkeypatch.setattr("astrbot_plugin_setu.main.register_session_config_llm_tools", lambda: None) + + await plugin.initialize() + + assert captured["raw_config"]["api"]["lolicon"]["proxy"] == sample_config_dict["api"]["lolicon"]["proxy"] From db6f7c048972aaef9b7e05a0fe7d0630db5df46e Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Sun, 17 May 2026 10:34:37 +0000 Subject: [PATCH 4/5] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- CHANGELOG.md | 1 - main.py | 4 +- src/application/ports/image_provider.py | 8 +++- src/infrastructure/sending/image_sender.py | 4 +- src/infrastructure/sending/napcat_stream.py | 4 +- src/infrastructure/sending/send_strategies.py | 18 +++++--- .../test_image_provider_logging.py | 12 ++++-- tests/infrastructure/test_image_sender.py | 19 +++++++-- .../test_provider_init_from_config.py | 19 +++++++-- tests/test_main_config_source.py | 41 ++++++++++++++----- 10 files changed, 95 insertions(+), 35 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 49ecf18..f0a24eb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -250,4 +250,3 @@ ### Added - 瑟瑟诞生!初始版本发布 - diff --git a/main.py b/main.py index e770078..b2a39ed 100644 --- a/main.py +++ b/main.py @@ -136,9 +136,7 @@ def _resolve_fortune_toggle_action(event: AstrMessageEvent, args: str) -> str: raise ValueError("用法:/运势开关 <开|关>") -def _resolve_fortune_user_action( - event: AstrMessageEvent, args: str -) -> tuple[str, str]: +def _resolve_fortune_user_action(event: AstrMessageEvent, args: str) -> tuple[str, str]: command = _get_invoked_command(event) if command in FORTUNE_USER_COMMANDS: return FORTUNE_USER_COMMANDS[command], args diff --git a/src/application/ports/image_provider.py b/src/application/ports/image_provider.py index 2049690..12705b2 100644 --- a/src/application/ports/image_provider.py +++ b/src/application/ports/image_provider.py @@ -194,7 +194,9 @@ def _apply_proxy_to_url(self, url: str, proxy: str | None) -> str: netloc = proxy_host else: netloc = proxy_host - return urlunsplit((parsed.scheme, netloc, parsed.path, parsed.query, parsed.fragment)) + return urlunsplit( + (parsed.scheme, netloc, parsed.path, parsed.query, parsed.fragment) + ) def _apply_proxy_to_urls( self, urls: list[str], proxy: str | None, provider_name: str @@ -203,7 +205,9 @@ def _apply_proxy_to_urls( return urls rewritten = [self._apply_proxy_to_url(url, proxy) for url in urls] - changed = sum(1 for old, new in zip(urls, rewritten, strict=False) if old != new) + changed = sum( + 1 for old, new in zip(urls, rewritten, strict=False) if old != new + ) if changed: logger.info( "[provider] proxy rewritten: provider=%s, proxy=%s, changed=%d", diff --git a/src/infrastructure/sending/image_sender.py b/src/infrastructure/sending/image_sender.py index ce444ae..014bdc7 100644 --- a/src/infrastructure/sending/image_sender.py +++ b/src/infrastructure/sending/image_sender.py @@ -381,7 +381,9 @@ def _build_image_chain(self, images: tuple[ImageItem, ...]) -> list[Comp.Image]: chain.append(Comp.Image.fromFileSystem(str(item))) return chain - async def _read_image_bytes(self, images: tuple[ImageItem, ...]) -> tuple[bytes, ...]: + async def _read_image_bytes( + self, images: tuple[ImageItem, ...] + ) -> tuple[bytes, ...]: """Materialize image items as bytes for DOCX/HTML-only paths.""" result: list[bytes] = [] for item in images: diff --git a/src/infrastructure/sending/napcat_stream.py b/src/infrastructure/sending/napcat_stream.py index a901b5a..009353c 100644 --- a/src/infrastructure/sending/napcat_stream.py +++ b/src/infrastructure/sending/napcat_stream.py @@ -87,7 +87,9 @@ async def upload_file_stream( """Upload one local file through NapCat's stream action.""" bot_client = _get_bot_client(event) if not bot_client or not _supports_call_action(bot_client): - logger.debug("[send] NapCat stream unavailable: missing bot call_action support") + logger.debug( + "[send] NapCat stream unavailable: missing bot call_action support" + ) return None path = Path(file_path) diff --git a/src/infrastructure/sending/send_strategies.py b/src/infrastructure/sending/send_strategies.py index 1490462..7c69f11 100644 --- a/src/infrastructure/sending/send_strategies.py +++ b/src/infrastructure/sending/send_strategies.py @@ -119,16 +119,22 @@ def _requires_onebot_passthrough( ) -> bool: platform_name = getattr(getattr(event, "platform", None), "name", "") or "" return "aiocqhttp" in platform_name.lower() and any( - self._is_onebot_image_ref(comp) for comp in chain if isinstance(comp, Comp.Image) + self._is_onebot_image_ref(comp) + for comp in chain + if isinstance(comp, Comp.Image) ) def _is_onebot_image_ref(self, comp: Comp.Image) -> bool: file_value = getattr(comp, "file", None) - return isinstance(file_value, str) and "://" in file_value and not ( - file_value.startswith("file:///") - or file_value.startswith("http://") - or file_value.startswith("https://") - or file_value.startswith("base64://") + return ( + isinstance(file_value, str) + and "://" in file_value + and not ( + file_value.startswith("file:///") + or file_value.startswith("http://") + or file_value.startswith("https://") + or file_value.startswith("base64://") + ) ) async def _send_onebot_image_chain( diff --git a/tests/application/test_image_provider_logging.py b/tests/application/test_image_provider_logging.py index be40265..3343a15 100644 --- a/tests/application/test_image_provider_logging.py +++ b/tests/application/test_image_provider_logging.py @@ -5,7 +5,9 @@ import httpx import pytest -from astrbot_plugin_setu.src.application.ports import image_provider as image_provider_module +from astrbot_plugin_setu.src.application.ports import ( + image_provider as image_provider_module, +) from astrbot_plugin_setu.src.application.ports.image_provider import SetuImageProvider from astrbot_plugin_setu.src.domain.setu import SetuRequest @@ -24,7 +26,9 @@ async def fetch_image_urls( @pytest.mark.asyncio async def test_fetch_and_download_logs_when_all_downloads_fail(monkeypatch) -> None: provider = DummyProvider() - request = SetuRequest.from_user_input(count=1, tags=["cat"], r18=False, exclude_ai=True) + request = SetuRequest.from_user_input( + count=1, tags=["cat"], r18=False, exclude_ai=True + ) fake_logger = MagicMock() monkeypatch.setattr(image_provider_module, "logger", fake_logger) @@ -39,4 +43,6 @@ async def fail_get(_self, url: str): warning_messages = [call.args[0] for call in fake_logger.warning.call_args_list] error_messages = [call.args[0] for call in fake_logger.error.call_args_list] assert any("[provider] download failed:" in message for message in warning_messages) - assert any("[provider] all downloads failed:" in message for message in error_messages) + assert any( + "[provider] all downloads failed:" in message for message in error_messages + ) diff --git a/tests/infrastructure/test_image_sender.py b/tests/infrastructure/test_image_sender.py index 1b57089..b732e7e 100644 --- a/tests/infrastructure/test_image_sender.py +++ b/tests/infrastructure/test_image_sender.py @@ -57,7 +57,11 @@ async def send_message(_origin: str, result: Any) -> Any: async def call_action(action: str, **params: Any) -> dict[str, Any]: assert action == "upload_file_stream" if params.get("is_complete"): - return {"status": "ok", "retcode": 0, "data": {"file_path": "stream://image"}} + return { + "status": "ok", + "retcode": 0, + "data": {"file_path": "stream://image"}, + } return {"status": "ok", "retcode": 0, "data": {}} mock_event.bot.call_action = AsyncMock(side_effect=call_action) @@ -72,7 +76,9 @@ async def call_action(action: str, **params: Any) -> dict[str, Any]: tags=(), ) - results = [item async for item in ImageSender(config).send_images(payload, mock_event)] + results = [ + item async for item in ImageSender(config).send_images(payload, mock_event) + ] assert results == [{"send_success": True, "image_count": 1}] assert len(sent_results) == 3 @@ -99,7 +105,10 @@ async def send_message(_origin: str, result: Any) -> dict[str, str]: set_plugin_context(context) config_dict = sample_config_dict.copy() - config_dict["delivery"] = {**sample_config_dict["delivery"], "napcat_stream_mode": "disabled"} + config_dict["delivery"] = { + **sample_config_dict["delivery"], + "napcat_stream_mode": "disabled", + } config = SetuPluginConfig(**config_dict) payload = ImagePayload( urls=(), @@ -110,7 +119,9 @@ async def send_message(_origin: str, result: Any) -> dict[str, str]: tags=(), ) - results = [item async for item in ImageSender(config).send_images(payload, mock_event)] + results = [ + item async for item in ImageSender(config).send_images(payload, mock_event) + ] assert results == [{"send_success": True, "image_count": 1}] image_comp = sent_results[-1].result_chain[0] diff --git a/tests/infrastructure/test_provider_init_from_config.py b/tests/infrastructure/test_provider_init_from_config.py index 492281a..23df637 100644 --- a/tests/infrastructure/test_provider_init_from_config.py +++ b/tests/infrastructure/test_provider_init_from_config.py @@ -8,14 +8,25 @@ from astrbot_plugin_setu.src.shared.config import SetuPluginConfig -def test_init_provider_from_config_uses_current_proxy_values(sample_config_dict) -> None: +def test_init_provider_from_config_uses_current_proxy_values( + sample_config_dict, +) -> None: clear_provider() config_dict = sample_config_dict.copy() - config_dict["setu_general"] = {**sample_config_dict["setu_general"], "api_type": "lolicon"} + config_dict["setu_general"] = { + **sample_config_dict["setu_general"], + "api_type": "lolicon", + } config_dict["api"] = { **sample_config_dict["api"], - "lolicon": {**sample_config_dict["api"]["lolicon"], "proxy": "proxy.example.com"}, - "atri": {**sample_config_dict["api"]["atri"], "proxy": "atri-proxy.example.com"}, + "lolicon": { + **sample_config_dict["api"]["lolicon"], + "proxy": "proxy.example.com", + }, + "atri": { + **sample_config_dict["api"]["atri"], + "proxy": "atri-proxy.example.com", + }, } config = SetuPluginConfig(**config_dict) diff --git a/tests/test_main_config_source.py b/tests/test_main_config_source.py index c2a2281..1436d77 100644 --- a/tests/test_main_config_source.py +++ b/tests/test_main_config_source.py @@ -12,7 +12,9 @@ async def test_initialize_uses_plugin_config_not_context_config( monkeypatch, sample_config_dict ) -> None: context = MagicMock() - context.get_config.return_value = {"api": {"lolicon": {"proxy": "wrong.example.com"}}} + context.get_config.return_value = { + "api": {"lolicon": {"proxy": "wrong.example.com"}} + } config = MagicMock() config.items.return_value = sample_config_dict.items() @@ -44,17 +46,36 @@ def fake_init_config(raw_config): ) monkeypatch.setattr("astrbot_plugin_setu.main.init_config", fake_init_config) - monkeypatch.setattr("astrbot_plugin_setu.main.set_plugin_context", lambda _ctx: None) - monkeypatch.setattr("astrbot_plugin_setu.main.StarTools.get_data_dir", lambda _name: "/tmp") - monkeypatch.setattr("astrbot_plugin_setu.main.init_provider_from_config", lambda _cfg: None) - monkeypatch.setattr("astrbot_plugin_setu.main.init_access_control_repo", AsyncMock()) + monkeypatch.setattr( + "astrbot_plugin_setu.main.set_plugin_context", lambda _ctx: None + ) + monkeypatch.setattr( + "astrbot_plugin_setu.main.StarTools.get_data_dir", lambda _name: "/tmp" + ) + monkeypatch.setattr( + "astrbot_plugin_setu.main.init_provider_from_config", lambda _cfg: None + ) + monkeypatch.setattr( + "astrbot_plugin_setu.main.init_access_control_repo", AsyncMock() + ) monkeypatch.setattr("astrbot_plugin_setu.main.init_fortune_repo", AsyncMock()) - monkeypatch.setattr("astrbot_plugin_setu.main.init_session_config_repo", AsyncMock()) + monkeypatch.setattr( + "astrbot_plugin_setu.main.init_session_config_repo", AsyncMock() + ) monkeypatch.setattr("astrbot_plugin_setu.main.init_send_cache", AsyncMock()) - monkeypatch.setattr("astrbot_plugin_setu.main.register_setu_llm_tools", lambda: None) - monkeypatch.setattr("astrbot_plugin_setu.main.register_fortune_llm_tools", lambda: None) - monkeypatch.setattr("astrbot_plugin_setu.main.register_session_config_llm_tools", lambda: None) + monkeypatch.setattr( + "astrbot_plugin_setu.main.register_setu_llm_tools", lambda: None + ) + monkeypatch.setattr( + "astrbot_plugin_setu.main.register_fortune_llm_tools", lambda: None + ) + monkeypatch.setattr( + "astrbot_plugin_setu.main.register_session_config_llm_tools", lambda: None + ) await plugin.initialize() - assert captured["raw_config"]["api"]["lolicon"]["proxy"] == sample_config_dict["api"]["lolicon"]["proxy"] + assert ( + captured["raw_config"]["api"]["lolicon"]["proxy"] + == sample_config_dict["api"]["lolicon"]["proxy"] + ) From ead7dddc9a31854c2a615ccbe869da6ffeccb129 Mon Sep 17 00:00:00 2001 From: FlanChanXwO Date: Sun, 17 May 2026 18:37:50 +0800 Subject: [PATCH 5/5] docs(readme): refresh v2.0.0 notes --- README.md | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index ae18489..5654f4c 100644 --- a/README.md +++ b/README.md @@ -8,11 +8,11 @@ Moe Counter -**一个支持多平台、可自定义、带防审核机制的随机色图插件,支持多 API、HTML 卡片包装、LLM 工具调用。** +**一个支持多平台、可自定义、带防审核机制的随机色图插件,支持多 API、会话级配置、LLM 工具调用。** [![License: APGL](https://img.shields.io/badge/License-APGL-blue.svg)](https://opensource.org/licenses/agpl-3.0) ![Python Version](https://img.shields.io/badge/Python-3.10%2B-blue) -![AstrBot](https://img.shields.io/badge/AstrBot-%E2%89%A54.10.4-green) +![AstrBot](https://img.shields.io/badge/AstrBot-%E2%89%A54.24.0-green) ![Platform](https://img.shields.io/badge/Platform-Windows%20%7C%20Linux-lightgrey) @@ -55,11 +55,12 @@ ## ✨ 功能特性 - 🎨 **多 API 支持** - Lolicon、SexNyan、自定义 API 等 +- 🧩 **分层架构** - `application` / `domain` / `infrastructure` / `shared` 清晰分离 - 🖼️ **HTML 卡片包装** - 防止平台审核,支持自定义样式 - 🤖 **LLM 工具调用** - 可通过大模型自动获取色图 - 🏷️ **标签搜索** - 支持多标签、中文标签、模糊匹配 - 🔄 **多种发送模式** - 直接发送、合并转发、文件封装 -- 🛡️ **防审核机制** - HTML 卡片 fallback、延迟撤回、Docx 封装 +- 🛡️ **防审核机制** - HTML 卡片 fallback、NapCat 流式上传、延迟撤回、Docx 封装 - ⚡ **性能优化** - 并发下载、磁盘缓存、自动补图、httpx、分段下载 - 🌐 **多平台适配** - 兼容 AstrBot 支持的所有平台 @@ -90,7 +91,7 @@ | 配置项 | 类型 | 说明 | 可选值 | 默认值 | |--------|------|------|--------|--------| -| `api_type` | 字符串 | API 类型 | `lolicon` / `sexnyan` / `custom` / `all` | `lolicon` | +| `api_type` | 字符串 | API 类型 | `lolicon` / `atri` / `sexnyan` / `custom` / `all` | `lolicon` | | `send_mode` | 字符串 | 发送模式 | `auto` / `image` / `forward` | `auto` | | `content_mode` | 字符串 | 内容模式 | `sfw` / `r18` / `mix` | `sfw` | | `max_count` | 整数 | 单次最大图片数 | 1-20 | `10` | @@ -116,7 +117,7 @@ | `download_concurrent_limit` | 整数 | 并发下载限制 | 1-50 | `10` | | `download_timeout_seconds` | 整数 | 下载超时时间(秒) | 5-300 | `30` | -### 访问控制配置(1.3.0+) +### 访问控制配置(2.0.0) > 安全配置统一位于 `safety` 下,且 `setu` / `fortune` 完全独立。 @@ -155,7 +156,7 @@ - `safety.setu_access_control_mode` -> `safety.setu_user_access_control_mode` + `safety.setu_group_access_control_mode` - `safety.fortune_access_control_mode` -> `safety.fortune_user_access_control_mode` + `safety.fortune_group_access_control_mode` -> 旧键当前仍兼容读取,建议在 WebUI 中显式配置新键,后续版本更稳。 +> 旧键当前仍兼容读取,但 `v2.0.0` 起主实现已完全转到新键。 ### 配置示例 @@ -219,6 +220,12 @@ - 标签支持空格、逗号、顿号分隔 - `/session_config` 统一管理当前会话的覆盖配置 +### v2.0.0 更新摘要 + +- 运势管理命令收敛为更少的统一入口,旧命令保留兼容别名 +- provider / sender / fallback 日志补全,方便定位“有 URL 但发不出去”或“provider 无结果”的问题 +- 反代配置读取、provider 重建、插件配置来源修正,减少 WebUI 改配置后不生效的问题 + ### 会话配置命令(管理员设置) 会话覆盖配置会写入插件数据目录下的 `session_overrides.json`,不会修改全局 WebUI 配置。 @@ -376,9 +383,9 @@ --- ## 未来更新 -- [ ] 更好的自定义API -- [x] 新增一个作者自己的图库内置API,该图库的更新速度会比目前的图库API更快,并且跟随了当前版本潮流! -- [x] 一些基于色图的额外插件功能 (今日运势) +- [ ] 更好的自定义 API +- [ ] 更细粒度的 provider 健康检查与降级策略 +- [ ] 继续补全 WebUI 配置与诊断能力 --- ## 📄 开源协议

M?hY% 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

nksBWiWG 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