121 lines
3.0 KiB
Bash
Executable File
121 lines
3.0 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# TODO: add interative selection of "kind of commission" for output folder
|
|
|
|
cur_dir=`pwd`
|
|
furry_commission_ideas_path=/mnt/e/home/Documents/sync/nextcloud-pudimxyz-cloud/furry-commission-ideas
|
|
furry_commission_ideas_urls_filename="urls.txt"
|
|
scripts_path=~/repos/cloudalb/personal-devboot/scripts/shell
|
|
|
|
input_media_url() {
|
|
read -p "[INFO] Please inform the media's url: " media_url
|
|
echo "$media_url"
|
|
}
|
|
|
|
media_url=`input_media_url`
|
|
while [ -z "$media_url" ]; do
|
|
media_url=`input_media_url`
|
|
done
|
|
|
|
# remove trailing slashes
|
|
media_url=`sed 's:/*$::' <<< "$media_url"`
|
|
|
|
cd $furry_commission_ideas_path
|
|
|
|
existing_folders=($(find * -type d -not -path artists -not -path kinks -not -path ideas))
|
|
|
|
filtered_existing_folders=()
|
|
|
|
# removing artists folder depth 2 only
|
|
for folder in "${existing_folders[@]}"; do
|
|
if [[ ! $folder =~ ^artists/[^/]+$ ]]; then
|
|
filtered_existing_folders+=( "$folder" )
|
|
fi;
|
|
done
|
|
|
|
existing_folders=("${filtered_existing_folders[@]}")
|
|
|
|
input_create_folder() {
|
|
read -p "[INFO] Please create one: " new_foldername
|
|
echo "$new_foldername"
|
|
}
|
|
|
|
selected_folder=''
|
|
|
|
if [ -z "${existing_folders}" ]; then
|
|
echo "[INFO] There are no folders in the 'furry-commission-ideas' folder."
|
|
|
|
new_foldername=$(input_create_folder)
|
|
while [ -z "$new_foldername" ]; do
|
|
new_foldername=$(input_create_folder)
|
|
done
|
|
|
|
mkdir --parents "$new_foldername"
|
|
selected_folder="$new_foldername"
|
|
fi
|
|
|
|
input_create_folder() {
|
|
read -p "[INFO] Please informe a name for the new folder: " new_foldername
|
|
echo "$new_foldername"
|
|
}
|
|
|
|
input_select_folder() {
|
|
read -p "[INFO] Please inform the desired option: " selected_option
|
|
|
|
if [ "$selected_option" == 'n' ]; then
|
|
selected_folder=`input_create_folder`
|
|
while [ -z "$selected_folder" ]; do
|
|
selected_folder=`input_create_folder`
|
|
done
|
|
|
|
mkdir --parents "$selected_folder"
|
|
else
|
|
selected_folder=${existing_folders[$selected_option]}
|
|
fi
|
|
|
|
echo "$selected_folder"
|
|
}
|
|
|
|
if [ -z "$selected_folder" ]; then
|
|
printf "\n"
|
|
echo "[INFO] Folders:"
|
|
for ((i = 0; i < ${#existing_folders[@]}; i++)); do
|
|
foldername=${existing_folders[$i]}
|
|
echo " $i) $foldername"
|
|
done
|
|
|
|
echo " n) (create a new folder)"
|
|
|
|
printf "\n"
|
|
|
|
selected_folder=`input_select_folder`
|
|
while [ -z "$selected_folder" ]; do
|
|
selected_folder=`input_select_folder`
|
|
done
|
|
fi
|
|
|
|
cd $selected_folder
|
|
|
|
if [ -f "$furry_commission_ideas_urls_filename" ] && grep -qE "$media_url" -i "$furry_commission_ideas_urls_filename"; then
|
|
printf "\n"
|
|
echo "[INFO] This folder already has the media informed."
|
|
echo "[INFO] Exiting..."
|
|
exit 0
|
|
fi
|
|
|
|
command_output=`$scripts_path/gdl.sh $media_url`
|
|
|
|
media_filenames=()
|
|
|
|
for ((i = 0; i < ${#command_output[@]}; i++)); do
|
|
filename=${command_output[$i]}
|
|
media_filenames+=$(basename "$filename")
|
|
done
|
|
|
|
|
|
for ((i = 0; i < ${#media_filenames[@]}; i++)); do
|
|
media_filename=${media_filenames[$i]}
|
|
|
|
echo "$media_filename: $media_url" >> $furry_commission_ideas_urls_filename
|
|
done
|