Skip to content

Commit fccdf89

Browse files
committed
refactor(state, scanner): 移除过滤跳过缓存相关逻辑,简化文件检测流程
1. 删除StateManager中mark_filter_skipped和get_filter_skipped_mtime方法 2. 移除scanner中基于过滤跳过缓存的重复检测逻辑 3. 调整新文件日志输出时机,直接在处理到新文件时打印
1 parent e2f81a9 commit fccdf89

2 files changed

Lines changed: 3 additions & 31 deletions

File tree

modules/scanner.py

Lines changed: 3 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -83,13 +83,6 @@ def scan(self, task_config, state_manager, logger):
8383
)
8484
continue
8585

86-
skipped_mtime = state_manager.get_filter_skipped_mtime(filepath)
87-
if skipped_mtime is not None and skipped_mtime == file_mtime:
88-
logger.debug(
89-
f"【{task_name}】跳过 {rel_path},原因: 文件之前已被过滤条件拒绝且 mtime 未变化"
90-
)
91-
continue
92-
9386
media_info = None
9487

9588
if classification != "direct_move":
@@ -103,7 +96,6 @@ def scan(self, task_config, state_manager, logger):
10396
if not file_filter.match(
10497
media_info, logger, rel_path, task_name
10598
):
106-
state_manager.mark_filter_skipped(filepath, file_mtime)
10799
continue
108100

109101
entry = ScanEntry(
@@ -113,17 +105,13 @@ def scan(self, task_config, state_manager, logger):
113105
media_info=media_info,
114106
)
115107
report.entries.append(entry)
108+
logger.info(
109+
f"【{task_name}】在 {source_dir} 中监测到新文件: {rel_path}"
110+
)
116111
logger.debug(
117112
f"【{task_name}{rel_path} 进入处理队列 (动作: {classification})"
118113
)
119114
except OSError as e:
120115
logger.error(f"读取文件失败: {filepath}\n{e}")
121116

122-
if report.entries:
123-
for entry in report.entries:
124-
rel_path = os.path.relpath(entry.filepath, source_dir)
125-
logger.info(
126-
f"【{task_name}】在 {source_dir} 中监测到新文件: {rel_path}"
127-
)
128-
129117
return report

modules/state.py

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -83,22 +83,6 @@ def get_success_time(self, filepath):
8383
return None
8484
return val.get("success_time", None)
8585

86-
def mark_filter_skipped(self, filepath, mtime):
87-
"""记录文件因未通过过滤条件而被跳过,并缓存文件当时的修改时间"""
88-
val = self.state.get(filepath, {})
89-
if isinstance(val, int):
90-
val = {"failures": val, "ffmpeg_failures": 0}
91-
val["filter_skipped_mtime"] = mtime
92-
self.state[filepath] = val
93-
self._save()
94-
95-
def get_filter_skipped_mtime(self, filepath):
96-
"""获取文件被条件过滤跳过时的 mtime,如果没有则返回 None"""
97-
val = self.state.get(filepath, {})
98-
if isinstance(val, int):
99-
return None
100-
return val.get("filter_skipped_mtime", None)
101-
10286
def remove_record(self, filepath):
10387
"""完全删除指定文件的记录"""
10488
if filepath in self.state:

0 commit comments

Comments
 (0)