|
|
|
|
@ -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" |
|
|
|
|
|