mirror of
https://github.com/Nezumi-2711/astrbot_plugin_qq_group_daily_analysis.git
synced 2026-09-22 13:38:43 +00:00
feat: 新增群相册上传严格模式
- 在 _conf_schema.json 中增加 group_album_strict_mode 开关 - 修改 ReportDispatcher,在严格模式下禁止回退到默认相册 - 优化 OneBotAdapter 的日志输出,使其符合决策逻辑
This commit is contained in:
@@ -349,6 +349,12 @@
|
||||
"description": "目标群相册名称",
|
||||
"default": "",
|
||||
"hint": "指定上传到哪个群相册(请确保已经存在这个名称的相册)。留空则上传到群默认相册。如果指定的相册不存在,将回退到默认相册"
|
||||
},
|
||||
"group_album_strict_mode": {
|
||||
"type": "bool",
|
||||
"description": "群相册上传严格模式",
|
||||
"default": true,
|
||||
"hint": "当启用该开关且设置了目标群相册名称时:如果插件在目标群组中找不到同名的相册,将放弃上传。关闭该开关时,找不到目标相册将回退到群组默认的第一个相册。"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
@@ -433,6 +433,15 @@ class ConfigManager:
|
||||
"""获取目标群相册名称,空字符串表示默认相册"""
|
||||
return self._get_group("qq_group_upload").get("group_album_name", "")
|
||||
|
||||
def get_group_album_strict_mode(self) -> bool:
|
||||
"""获取极简模式开关:当未找到指定相册时是否禁止回退到默认相册"""
|
||||
return self._get_group("qq_group_upload").get("group_album_strict_mode", False)
|
||||
|
||||
def set_group_album_strict_mode(self, enabled: bool):
|
||||
"""设置群相册上传严格模式"""
|
||||
self._ensure_group("qq_group_upload")["group_album_strict_mode"] = enabled
|
||||
self.config.save_config()
|
||||
|
||||
# ========== 增量分析配置 ==========
|
||||
|
||||
def get_incremental_enabled(self) -> bool:
|
||||
|
||||
@@ -1318,5 +1318,5 @@ class OneBotAdapter(PlatformAdapter):
|
||||
logger.debug(f"找到群相册: {album_name} [ID: {aid}]")
|
||||
return str(aid)
|
||||
|
||||
logger.info(f"未找到群相册 '{album_name}' (群 {group_id}),将使用默认相册")
|
||||
logger.info(f"未找到群相册 '{album_name}' (群 {group_id})")
|
||||
return None
|
||||
|
||||
@@ -241,9 +241,23 @@ class ReportDispatcher:
|
||||
"""上传图片到群相册,失败静默"""
|
||||
try:
|
||||
album_name = self.config_manager.get_group_album_name()
|
||||
strict_mode = self.config_manager.get_group_album_strict_mode()
|
||||
album_id = None
|
||||
if album_name and hasattr(adapter, "find_album_id"):
|
||||
album_id = await adapter.find_album_id(group_id, album_name)
|
||||
|
||||
if hasattr(adapter, "find_album_id"):
|
||||
if album_name:
|
||||
album_id = await adapter.find_album_id(group_id, album_name)
|
||||
if not album_id and strict_mode:
|
||||
logger.info(
|
||||
f"群相册严格模式开启:在群 {group_id} 中未找到名为 '{album_name}' 的相册,停止上传。"
|
||||
)
|
||||
return
|
||||
elif strict_mode:
|
||||
logger.info(
|
||||
f"群相册严格模式开启:未设置目标相册名称,停止上传以防止操作群 {group_id} 的默认相册。"
|
||||
)
|
||||
return
|
||||
|
||||
await adapter.upload_group_album(
|
||||
group_id, file_path, album_id=album_id, album_name=album_name
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user