mirror of
https://github.com/LifeArchiveProject/WeChatDataAnalysis.git
synced 2026-02-21 23:30:49 +08:00
improvement(chat): 会话列表改用 session_last_message 缓存表
- 用 session.db::session_last_message 缓存会话最后一条消息预览,减少会话列表查询开销 - 增加缓存表构建/状态接口,列表缺失时自动补建 - 解密阶段支持自动构建,环境变量切换为 WECHAT_TOOL_BUILD_SESSION_LAST_MESSAGE - 移除 session_preview_index 实现
This commit is contained in:
@@ -441,20 +441,20 @@ def decrypt_wechat_databases(db_storage_path: str = None, key: str = None) -> di
|
||||
"failed_files": account_failed
|
||||
}
|
||||
|
||||
# 构建“会话最后一条消息”索引:把耗时挪到解密阶段,一劳永逸
|
||||
if os.environ.get("WECHAT_TOOL_BUILD_SESSION_PREVIEW", "1") != "0":
|
||||
# 构建“会话最后一条消息”缓存表:把耗时挪到解密阶段,后续会话列表直接查表
|
||||
if os.environ.get("WECHAT_TOOL_BUILD_SESSION_LAST_MESSAGE", "1") != "0":
|
||||
try:
|
||||
from .session_preview_index import build_session_preview_index
|
||||
from .session_last_message import build_session_last_message_table
|
||||
|
||||
account_results[account_name]["session_preview_index"] = build_session_preview_index(
|
||||
account_results[account_name]["session_last_message"] = build_session_last_message_table(
|
||||
account_output_dir,
|
||||
rebuild=True,
|
||||
include_hidden=True,
|
||||
include_official=True,
|
||||
)
|
||||
except Exception as e:
|
||||
logger.warning(f"构建会话预览索引失败: {account_name}: {e}")
|
||||
account_results[account_name]["session_preview_index"] = {
|
||||
logger.warning(f"构建会话最后一条消息缓存表失败: {account_name}: {e}")
|
||||
account_results[account_name]["session_last_message"] = {
|
||||
"status": "error",
|
||||
"message": str(e),
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user