scripts/source/gdl/gdl_mv
2024-12-06 13:37:00 -06:00

69 lines
2.2 KiB
Plaintext
Executable File

#! /usr/bin/env nix-shell
#! nix-shell -i fish -p fish
set d_parent '/srv/disk2/scrapping/JawZ'
set d_gdl 'gallery-dl'
set d_gdl_filtered 'organized'
function _get_parent
dirname (dirname $argv[1])
end
function _replace_path
string replace $argv[1] $argv[2] $argv[3]
end
function _mv_files -a d
for f in (find $d -type f)
set f_name (basename $f)
# Search for video files
if test (string match -r "\.mp4|\.webm\$" $f_name)
set f_dest (dirname $f)/Videos/(basename $f)
# Loop until the parent directory isn't named Videos|mp4
while test (string match -r "Videos|mp4" (basename (_get_parent $f_dest)))
set f_dest (_get_parent $f_dest)/(basename $f_dest)
end
# Place videos in their own subdirectory
set f_dest (_replace_path $d_gdl $d_gdl_filtered $f_dest)
else # Not a video file
set f_dest (_replace_path $d_gdl $d_gdl_filtered $f)
echo $f_dest
end
set d_dest (dirname $f_dest)
# Strip dirname for logging
set d_name (string replace $d_parent "" $d_dest)
# Check if destination exists
if test ! -e $d_dest
echo (set_color green)$d_name(set_color normal) \
"Doesn't exist, creating..."
mkdir -p $d_dest
end
# If destination exists, and basename isn't duplicated
if test \( -e $d_dest \) -a \( (basename $f) = (basename $f_dest) \)
echo "Moving the file" (set_color green)$f_name(set_color normal) \
into (set_color green)$d_name(set_color normal)
echo "Original path:"
echo (set_color brblue)$f(set_color normal)
echo "New path:"
echo (set_color brblue)$f_dest | grep -F "$d_name"
echo (set_color yellow)__________________________________(set_color normal)
# Move files
mv $f $f_dest
end
end
end
# TEST IF THE SCRIPT RAN WITH ARGUMENTS
if test -z "$argv[1]"
echo "Please drag a few directories!"
# _mv_files $d_gdl false
end
if test -n "$argv[1]"
for d in $argv
_mv_files $d true
end
end