Sync working tree before initial Gitea push
Includes: - cli.py path fix (parents[1]) for config/catalog resolution - Library cleanup feature design docs (TODO.md, mockup) - Audit + bug-queue markdowns from May 2026 reliability pass - .gitignore expanded for transient artifacts
This commit is contained in:
+19
-1
@@ -12,6 +12,7 @@ import re
|
||||
import subprocess
|
||||
import sys
|
||||
import threading
|
||||
import time
|
||||
from pathlib import Path
|
||||
|
||||
from rcjav.ids import RANGE_RE, expand_range, extract_id, normalize_id
|
||||
@@ -24,7 +25,10 @@ RCLONE_BIN = "rclone"
|
||||
# extension popup. walk_remote checks for it every CANCEL_CHECK_INTERVAL files
|
||||
# and exits cleanly if found.
|
||||
CANCEL_FLAG = Path(__file__).resolve().parents[1] / "scan-cancel.flag"
|
||||
CANCEL_CHECK_INTERVAL = 100 # check / emit progress every N files
|
||||
CANCEL_CHECK_INTERVAL = 25
|
||||
PROGRESS_EMIT_MIN_FILES = 25
|
||||
PROGRESS_EMIT_MIN_GAP_S = 0.25
|
||||
PROGRESS_EMIT_MAX_GAP_S = 1.0
|
||||
|
||||
# Toggled from rc-jav.py main() when --basic is passed. Affects whether
|
||||
# walk_remote emits machine-parseable progress lines on stderr.
|
||||
@@ -234,6 +238,8 @@ def walk_remote(remote: str, source_label: str,
|
||||
)
|
||||
_stderr_thread.start()
|
||||
_cancelled = False
|
||||
last_emit_n = 0
|
||||
last_emit_ts = time.monotonic()
|
||||
try:
|
||||
for line in proc.stdout:
|
||||
line = line.rstrip("\n").rstrip("\r")
|
||||
@@ -272,12 +278,24 @@ def walk_remote(remote: str, source_label: str,
|
||||
proc.kill()
|
||||
_cancelled = True
|
||||
break
|
||||
if BASIC and n > 0:
|
||||
now = time.monotonic()
|
||||
files_since_emit = n - last_emit_n
|
||||
elapsed_since_emit = now - last_emit_ts
|
||||
should_emit_progress = (
|
||||
files_since_emit >= PROGRESS_EMIT_MIN_FILES
|
||||
and elapsed_since_emit >= PROGRESS_EMIT_MIN_GAP_S
|
||||
) or elapsed_since_emit >= PROGRESS_EMIT_MAX_GAP_S
|
||||
if not should_emit_progress:
|
||||
continue
|
||||
sys.stderr.write("SCAN_FILE_PROGRESS " + json.dumps({
|
||||
"remote": remote, "label": source_label,
|
||||
"files": len(entries), "skipped": len(local_skipped),
|
||||
"total": total,
|
||||
}) + "\n")
|
||||
sys.stderr.flush()
|
||||
last_emit_n = n
|
||||
last_emit_ts = now
|
||||
except KeyboardInterrupt:
|
||||
proc.terminate()
|
||||
try:
|
||||
|
||||
Reference in New Issue
Block a user