更新
This commit is contained in:
@@ -0,0 +1,47 @@
|
||||
"""会话身份从「像素哈希」换成「昵称 md5」,旧键再也匹配不上,全部作废重建。
|
||||
|
||||
留着不清的后果就是日志里那个循环:待回复恢复找到一堆旧任务 → 按旧指纹去开 →
|
||||
「实际打开对象与目标不一致」→ 任务留在队列里,下一轮再来一遍,真正的新消息
|
||||
被挤在后面。原文件都留 .bak。
|
||||
"""
|
||||
import json
|
||||
import os
|
||||
import shutil
|
||||
import time
|
||||
|
||||
ROOT = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
|
||||
STAMP = time.strftime("%Y%m%d_%H%M%S")
|
||||
|
||||
TARGETS = {
|
||||
"pending_replies.json": {"pending": {}},
|
||||
"unrepliable_sessions.json": {},
|
||||
"conversations.json": {},
|
||||
"false_pos_cache.json": {},
|
||||
}
|
||||
|
||||
|
||||
def main() -> None:
|
||||
for name, empty in TARGETS.items():
|
||||
path = os.path.join(ROOT, name)
|
||||
if not os.path.exists(path):
|
||||
print(f" {name:28} 不存在,跳过")
|
||||
continue
|
||||
size = os.path.getsize(path)
|
||||
try:
|
||||
with open(path, encoding="utf-8") as handle:
|
||||
data = json.load(handle)
|
||||
count = len(data.get("pending", data)) if isinstance(data, dict) else 0
|
||||
except Exception:
|
||||
count = -1
|
||||
if size > 2:
|
||||
shutil.copy2(path, f"{path}.{STAMP}.bak")
|
||||
with open(path, "w", encoding="utf-8") as handle:
|
||||
json.dump(empty, handle, ensure_ascii=False, indent=2)
|
||||
print(f" {name:28} 清空(原有 {count} 条,{size} 字节,已备份)")
|
||||
|
||||
print()
|
||||
print("旧身份数据已作废。下一轮监听会按昵称重新建立会话身份和档案。")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Reference in New Issue
Block a user