From 6584a5dadf85cf45b93aa94839aa1a42ba11ae60 Mon Sep 17 00:00:00 2001 From: Robert Date: Mon, 28 Apr 2025 21:23:29 -0400 Subject: [PATCH] . --- dedup.py | 2 +- get_dups.bat | 5 ++++ get_dups.sh | 65 ++++++++-------------------------------------------- 3 files changed, 15 insertions(+), 57 deletions(-) diff --git a/dedup.py b/dedup.py index f6aa3d0..f42dd55 100644 --- a/dedup.py +++ b/dedup.py @@ -82,7 +82,7 @@ def main(): delibs.exit_timer(9) if size2 != None: print(f"ERROR: {size2}") - delibs.exit_timer(4) # Mark as Skipped + delibs.exit_timer(3) # Mark as Skipped with delibs.Timer("Hashing"): # Quick hashes diff --git a/get_dups.bat b/get_dups.bat index 3360d4b..6db867e 100644 --- a/get_dups.bat +++ b/get_dups.bat @@ -46,7 +46,12 @@ for /l %%i in (1,1,%count%) do ( echo %~1\!outer_image!>> alike.txt goto :break_inner ) + if !errorlevel! equ 3 ( + echo %~1\!inner_image!>> size.txt + goto :break_inner + ) if !errorlevel! equ 4 ( + echo %~1\!inner_image!>> invalid.txt goto :break_inner ) if !errorlevel! equ 5 ( diff --git a/get_dups.sh b/get_dups.sh index 7e4ba70..1f4bb80 100755 --- a/get_dups.sh +++ b/get_dups.sh @@ -18,65 +18,17 @@ if [ "$2" = "forreal" ]; then mkdir -p "$path/dups" fi -# Get list of images +# Get list of images for only png shopt -s nullglob pushd "$path" || exit 1 -images=(*.jpg *.png) +images=(*.png) popd || exit 1 - -# Check if we found any images -if [ ${#images[@]} -eq 0 ]; then - echo "No images found." - exit 1 -fi - -# Outer loop -for ((i = 0; i < ${#images[@]}; i++)); do - outer_image="${images[$i]}" - - # Inner loop (only later images to avoid double-checks) - for ((j = i + 1; j < ${#images[@]}; j++)); do - inner_image="${images[$j]}" - - echo -e "\nCompairing files: $outer_image TO $inner_image" - python3 dedup.py "$path/$outer_image" "$path/$inner_image" "$2" - exit_code=$? - if [ $exit_code -eq 1 ]; then - echo "$path/$outer_image # $inner_image" >> dups.txt - if [ "$2" = "forreal" ]; then - mv "$path/$outer_image" "$path/dups" - fi - break # No need to check more once found duplicate - fi - if [ $exit_code -eq 2 ]; then - echo "$path/$outer_image # $inner_image" >> alike.txt - break # No need to check more once found close match to duplicate - fi - if [ $exit_code -eq 4 ]; then - break # Skip Invaild inner Image - fi - if [ $exit_code -eq 5 ]; then - echo "$path/$outer_image # $inner_image" >> sameGPS.txt - break # No need to check more once found matching GPS image - fi - if [ $exit_code -eq 6 ]; then - echo "$path/$outer_image # $inner_image" >> sameGPSmile.txt - break # No need to check more once found matching GPS image - fi - if [ $exit_code -eq 8 ]; then - echo "$path/$outer_image" >> invalid.txt - if [ "$2" = "forreal" ]; then - echo "To remove bad image run: rm $path/$outer_image" - fi - break # No need to check more once found bad image - fi - if [ $exit_code -eq 9 ]; then - echo "$path/$outer_image" >> size.txt - break # No need to check more once found image too Small or Large - fi - - done -done +source do_dups.inc +# Get list of images for only jpg +pushd "$path" || exit 1 +images=(*.jpg) +popd || exit 1 +source do_dups.inc end_time=$(date +%s) elapsed=$((end_time - start_time)) @@ -89,6 +41,7 @@ seconds=$((elapsed % 60)) printf "Total time to dedup everything: %02d:%02d:%02d\n" $hours $minutes $seconds if [ "$2" != "forreal" ] && [ -f "dups.txt" ]; then + echo "Here are your duplicate files:" more dups.txt else echo "No Dups found"