Skip to content

Commit 29edfca

Browse files
committed
fix(database): 过滤聊天搜索索引库
- 将 chat_search_index.db 和 chat_search_index.tmp.db 视为内部索引库 - 避免搜索索引文件被误识别为账号数据库 - 补充数据库扫描和账号信息过滤测试 - 顺手整理系统辅助路由格式
1 parent c6b2a3f commit 29edfca

3 files changed

Lines changed: 17 additions & 6 deletions

File tree

src/wechat_decrypt_tool/database_filters.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,12 @@
44

55

66
_IGNORED_SOURCE_DATABASE_NAMES = frozenset({"key_info.db"})
7-
_INDEX_DATABASE_NAMES = frozenset({"chat_search_index.db", "chat_search_index.tmp.db"})
7+
_INDEX_DATABASE_NAMES = frozenset(
8+
{
9+
"chat_search_index.db",
10+
"chat_search_index.tmp.db",
11+
}
12+
)
813
_INDEX_DATABASE_SUFFIXES = ("_fts.db",)
914
_INTERNAL_OUTPUT_DATABASE_NAMES = frozenset(
1015
{

src/wechat_decrypt_tool/routers/system.py

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,10 @@
1-
from fastapi import APIRouter, HTTPException
2-
from pydantic import BaseModel
1+
from __future__ import annotations
2+
33
import asyncio
44
from concurrent.futures import ThreadPoolExecutor
5+
from fastapi import APIRouter, HTTPException
6+
from pydantic import BaseModel
7+
58
from ..img_helper import IMG_HELPER
69
from .wechat_detection import check_wechat_status
710

@@ -39,9 +42,7 @@ async def pick_directory(title: str = "请选择目录", initial_dir: str = ""):
3942

4043
@router.get("/api/system/img_helper/status", summary="获取大图下载辅助插件状态")
4144
async def get_img_helper_status():
42-
return {
43-
"enabled": IMG_HELPER.is_enabled
44-
}
45+
return {"enabled": IMG_HELPER.is_enabled}
4546

4647

4748
class ImgHelperToggleRequest(BaseModel):

tests/test_database_filters.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,8 @@ def test_scan_account_databases_skips_index_databases(self):
4848
_seed_sqlite(db_storage / "contact_fts.db")
4949
_seed_sqlite(db_storage / "favorite_fts.db")
5050
_seed_sqlite(db_storage / "message_fts.db")
51+
_seed_sqlite(db_storage / "chat_search_index.db")
52+
_seed_sqlite(db_storage / "chat_search_index.tmp.db")
5153
_seed_sqlite(db_storage / "key_info.db")
5254

5355
result = scan_account_databases_from_path(str(db_storage))
@@ -68,6 +70,8 @@ def test_collect_account_databases_skips_index_databases(self):
6870
_seed_sqlite(data_dir / "contact_fts.db")
6971
_seed_sqlite(data_dir / "favorite_fts.db")
7072
_seed_sqlite(data_dir / "message_fts.db")
73+
_seed_sqlite(data_dir / "chat_search_index.db")
74+
_seed_sqlite(data_dir / "chat_search_index.tmp.db")
7175

7276
databases = collect_account_databases(str(data_dir), "wxid_demo")
7377
db_names = sorted(db["name"] for db in databases)
@@ -93,6 +97,7 @@ def test_chat_account_info_hides_index_and_internal_databases(self):
9397
_seed_sqlite(account_dir / "session.db", "session_table")
9498
_seed_sqlite(account_dir / "message_fts.db")
9599
_seed_sqlite(account_dir / "chat_search_index.db")
100+
_seed_sqlite(account_dir / "chat_search_index.tmp.db")
96101
_seed_sqlite(account_dir / "session_last_message.db")
97102

98103
result = chat_router.get_chat_account_info("wxid_demo")

0 commit comments

Comments
 (0)