"""图片消息解析""" from __future__ import annotations import logging import os from pathlib import Path logger = logging.getLogger(__name__) # 微信图片缓存默认路径 _WECHAT_IMAGE_DIRS = [ Path(os.environ.get("APPDATA", "")) / "Tencent" / "WeChat" / "Image", Path(os.environ.get("USERPROFILE", "")) / "Documents" / "WeChat Files", ] class ImageParser: """解析图片消息,尝试定位本地缓存文件""" @staticmethod def is_image_message(content: str) -> bool: tag = content.strip("[]") return "图片" in tag or "image" in tag.lower() @staticmethod def find_cached_image(filename: str) -> Path | None: """在常见微信缓存目录中查找图片文件""" for base_dir in _WECHAT_IMAGE_DIRS: if not base_dir.exists(): continue for p in base_dir.rglob(filename): if p.is_file(): return p return None @staticmethod def get_image_info(path: Path) -> dict: """获取图片基本信息""" stat = path.stat() return { "path": str(path), "size": stat.st_size, "suffix": path.suffix, }