diff --git a/main.py b/main.py index 973c860..8bc59da 100644 --- a/main.py +++ b/main.py @@ -328,7 +328,10 @@ class GroupDailyAnalysis(Star): parts = image_url.split(",", 1) data = base64.b64decode(parts[1]) if len(parts) == 2 else None elif os.path.isfile(image_url): - image_file = os.path.abspath(image_url) + if os.path.isabs(image_url): + image_file = image_url + else: + image_file = os.path.abspath(image_url) data = None else: return diff --git a/src/infrastructure/platform/adapters/onebot_adapter.py b/src/infrastructure/platform/adapters/onebot_adapter.py index 984b774..94cd1ed 100644 --- a/src/infrastructure/platform/adapters/onebot_adapter.py +++ b/src/infrastructure/platform/adapters/onebot_adapter.py @@ -474,7 +474,12 @@ class OneBotAdapter(PlatformAdapter): # 1) 优先尝试物理路径;2) 路径失败则回退 Base64 file_str = image_path if not image_path.startswith(("http://", "https://", "base64://")): - file_str = f"file:///{os.path.abspath(image_path)}" + if os.path.isabs(image_path): + # 如果是绝对路径,保持原样(兼容 Docker 中的 /AstrBot/ 路径) + file_str = f"file:///{image_path}" + else: + # 如果是相对路径,转为绝对路径 + file_str = f"file:///{os.path.abspath(image_path)}" try: message = list(base_message)