fix: 修复 Cross-Review 发现的问题
This commit is contained in:
+13
-1
@@ -6,6 +6,7 @@ Cross-Debate 统计报告模块
|
||||
|
||||
import json
|
||||
import os
|
||||
import sys
|
||||
import fcntl
|
||||
from datetime import datetime, timezone
|
||||
from pathlib import Path
|
||||
@@ -49,6 +50,12 @@ class StatsManager:
|
||||
filtered[key] = '***REDACTED***'
|
||||
elif isinstance(value, dict):
|
||||
filtered[key] = self._filter_sensitive_data(value)
|
||||
elif isinstance(value, list):
|
||||
# 处理列表中的字典元素
|
||||
filtered[key] = [
|
||||
self._filter_sensitive_data(item) if isinstance(item, dict) else item
|
||||
for item in value
|
||||
]
|
||||
else:
|
||||
filtered[key] = value
|
||||
return filtered
|
||||
@@ -75,7 +82,12 @@ class StatsManager:
|
||||
# 获取共享锁(读锁)
|
||||
fcntl.flock(f.fileno(), fcntl.LOCK_SH)
|
||||
try:
|
||||
data = json.load(f)
|
||||
try:
|
||||
data = json.load(f)
|
||||
except json.JSONDecodeError as e:
|
||||
# 文件损坏时返回空数据结构
|
||||
print(f"⚠️ 警告: 统计文件损坏,将返回空数据: {e}", file=sys.stderr)
|
||||
return {"events": []}
|
||||
finally:
|
||||
# 释放锁
|
||||
fcntl.flock(f.fileno(), fcntl.LOCK_UN)
|
||||
|
||||
Reference in New Issue
Block a user