fix(state): marker and file cleanup overwriting it's own filtering
This commit is contained in:
@@ -71,28 +71,31 @@ def remove_marker_from_state(marker_name: str) -> None:
|
|||||||
|
|
||||||
def cleanup_state(max_age_seconds: float) -> None:
|
def cleanup_state(max_age_seconds: float) -> None:
|
||||||
state = load_state()
|
state = load_state()
|
||||||
files = state.get("files", [])
|
|
||||||
markers = state.get("markers", [])
|
|
||||||
now = datetime.datetime.now().timestamp()
|
now = datetime.datetime.now().timestamp()
|
||||||
|
|
||||||
# Remove files that do not exist
|
files = state.get("files", [])
|
||||||
state["files"] = [
|
markers = state.get("markers", [])
|
||||||
file for file in files
|
|
||||||
if os.path.exists(file["path"])
|
# First filter by existence
|
||||||
|
files = [
|
||||||
|
f for f in files
|
||||||
|
if os.path.exists(f["path"])
|
||||||
]
|
]
|
||||||
|
|
||||||
# Remove files and markers beyond max age
|
# Then filter by age
|
||||||
state["files"] = [
|
files = [
|
||||||
file for file in files
|
f for f in files
|
||||||
if now - file["timestamp"] <= max_age_seconds
|
if now - f["timestamp"] <= max_age_seconds
|
||||||
]
|
]
|
||||||
|
|
||||||
|
markers = [
|
||||||
state["markers"] = [
|
m for m in markers
|
||||||
marker for marker in markers
|
if now - m["timestamp"] <= max_age_seconds
|
||||||
if now - marker["timestamp"] <= max_age_seconds
|
|
||||||
]
|
]
|
||||||
|
|
||||||
|
state["files"] = files
|
||||||
|
state["markers"] = markers
|
||||||
|
|
||||||
write_state(state)
|
write_state(state)
|
||||||
|
|
||||||
def create_state_file_if_needed() -> None:
|
def create_state_file_if_needed() -> None:
|
||||||
|
|||||||
Reference in New Issue
Block a user