fix(path): pass plugin name to StarTools.get_data_dir() to avoid inspect.stack() crash (#193)

* fix: pass plugin name to StarTools.get_data_dir to avoid inspect-stack crash

* refactor: reuse plugin name constant for data dir

---------

Co-authored-by: Rat0323 <rat0323@users.noreply.github.com>
Co-authored-by: Rat0323 <261020116+Rat0323@users.noreply.github.com>
This commit is contained in:
Rat
2026-07-08 11:04:19 +08:00
committed by GitHub
co-authored by Rat0323 Rat0323
parent 27f0e9e838
commit d5b0c26289
5 changed files with 21 additions and 74 deletions
+7 -29
View File
@@ -45,6 +45,7 @@ from .src.infrastructure.platform.template_preview import (
)
from .src.infrastructure.reporting.generators import ReportGenerator
from .src.infrastructure.scheduler.auto_scheduler import AutoScheduler
from .src.shared.constants import PLUGIN_NAME
from .src.shared.trace_context import TraceContext, TraceLogFilter
from .src.utils.logger import logger
from .src.utils.resilience import GlobalRateLimiter
@@ -77,10 +78,6 @@ class GroupDailyAnalysis(Star):
super().__init__(context)
self.config = config
from pathlib import Path
from astrbot.core.utils.astrbot_path import get_astrbot_data_path
# 1. 基础设施层
self.config_manager = ConfigManager(config)
self.bot_manager = BotManager(self.config_manager)
@@ -88,15 +85,7 @@ class GroupDailyAnalysis(Star):
self.bot_manager.set_plugin_instance(self)
self.history_manager = HistoryManager(self)
try:
plugin_data_dir = StarTools.get_data_dir()
except Exception:
# 回退逻辑:手动构造满足规范的路径
plugin_data_dir = (
Path(get_astrbot_data_path())
/ "plugin_data"
/ "astrbot_plugin_qq_group_daily_analysis"
)
plugin_data_dir = StarTools.get_data_dir(PLUGIN_NAME)
self.report_generator = ReportGenerator(self.config_manager, plugin_data_dir)
@@ -640,23 +629,12 @@ class GroupDailyAnalysis(Star):
# 若用户配置为空,使用默认目录
if not html_output_dir:
try:
from astrbot.api.star import StarTools
from astrbot.api.star import StarTools
html_output_dir = os.path.join(
StarTools.get_data_dir(), "self_hosted_html_reports"
)
except Exception:
from astrbot.core.utils.astrbot_path import (
get_astrbot_data_path,
)
html_output_dir = os.path.join(
get_astrbot_data_path(),
"plugin_data",
"astrbot_plugin_qq_group_daily_analysis",
"self_hosted_html_reports",
)
html_output_dir = os.path.join(
StarTools.get_data_dir(PLUGIN_NAME),
"self_hosted_html_reports",
)
# 计算相对路径并转换为URL
rel_path = os.path.relpath(html_path, html_output_dir)