added prefix ignore
This commit is contained in:
@ -72,6 +72,9 @@ DATESTAMP=$(date +%y%m%d)
|
||||
LOG_DIR="$HOME/log"
|
||||
LOG_FILE="$LOG_DIR/videocmp_select.${DATESTAMP}.log"
|
||||
|
||||
# Add to defaults section
|
||||
IGNORE_PATTERN=""
|
||||
|
||||
# -------- helpers --------
|
||||
need() { command -v "$1" >/dev/null 2>&1 || { echo "Missing dependency: $1" >&2; exit 3; }; }
|
||||
v() { [[ $VERBOSE -eq 1 ]] && echo "[LOG]" "$@" >&2; }
|
||||
@ -123,6 +126,7 @@ while (( i < ${#ARGS[@]} )); do
|
||||
fi
|
||||
;;
|
||||
--recursive|-r) RECURSIVE=1; i=$((i+1));;
|
||||
--ignore-prefix) IGNORE_PATTERN="${ARGS[i+1]:-}"; i=$((i+2));;
|
||||
--help|-h)
|
||||
grep -E '^# ' "$0" | sed 's/^# //' ; exit 0 ;;
|
||||
*)
|
||||
@ -288,19 +292,52 @@ same_movie_or_skip() { # A B -> 0 if same (SSIM>=thr), else 1
|
||||
}
|
||||
|
||||
# ----- directory scan helpers/drivers -----
|
||||
#scan_and_collect() {
|
||||
# if [[ $RECURSIVE -eq 1 ]]; then
|
||||
# mapfile -t FILES < <(find "$SCAN_DIR" -type f \( -iname '*.mp4' -o -iname '*.m4v' -o -iname '*.mov' -o -iname '*.mkv' \))
|
||||
# else
|
||||
# mapfile -t FILES < <(find "$SCAN_DIR" -maxdepth 1 -type f \( -iname '*.mp4' -o -iname '*.m4v' -o -iname '*.mov' -o -iname '*.mkv' \))
|
||||
# fi
|
||||
#}
|
||||
|
||||
scan_and_collect() {
|
||||
if [[ $RECURSIVE -eq 1 ]]; then
|
||||
mapfile -t FILES < <(find "$SCAN_DIR" -type f \( -iname '*.mp4' -o -iname '*.m4v' -o -iname '*.mov' -o -iname '*.mkv' \))
|
||||
mapfile -t FILES < <(find "$SCAN_DIR" -type f \( -iname '*.mp4' -o -iname '*.m4v' -o -iname '*.mov' -o -iname '*.mkv' \) ! -name '._*')
|
||||
else
|
||||
mapfile -t FILES < <(find "$SCAN_DIR" -maxdepth 1 -type f \( -iname '*.mp4' -o -iname '*.m4v' -o -iname '*.mov' -o -iname '*.mkv' \))
|
||||
mapfile -t FILES < <(find "$SCAN_DIR" -maxdepth 1 -type f \( -iname '*.mp4' -o -iname '*.m4v' -o -iname '*.mov' -o -iname '*.mkv' \) ! -name '._*')
|
||||
fi
|
||||
}
|
||||
|
||||
# key = first token of basename (without extension) before the first underscore; lowercased
|
||||
#first_underscore_key() {
|
||||
# local base extless key
|
||||
# base="$(basename -- "$1")"
|
||||
# extless="${base%.*}"
|
||||
# if [[ "$extless" == *_* ]]; then
|
||||
# key="${extless%%_*}"
|
||||
# else
|
||||
# key="$extless"
|
||||
# fi
|
||||
# echo "${key,,}"
|
||||
#}
|
||||
|
||||
first_underscore_key() {
|
||||
local base extless key
|
||||
base="$(basename -- "$1")"
|
||||
extless="${base%.*}"
|
||||
|
||||
# Strip ignore pattern if specified
|
||||
if [[ -n "$IGNORE_PATTERN" ]]; then
|
||||
# Convert pattern to regex: idx* becomes idx[0-9]+
|
||||
local pattern="$IGNORE_PATTERN"
|
||||
pattern="${pattern//\*/[0-9]+}" # Replace * with [0-9]+
|
||||
|
||||
if [[ "$extless" =~ ^${pattern}_ ]]; then
|
||||
# Remove the matched prefix and underscore
|
||||
extless="${extless#"${BASH_REMATCH[0]}"}"
|
||||
fi
|
||||
fi
|
||||
|
||||
if [[ "$extless" == *_* ]]; then
|
||||
key="${extless%%_*}"
|
||||
else
|
||||
|
||||
Reference in New Issue
Block a user