Files
dotfiles/scripts/shell/furry-commission-ideas-add-entry.sh
2024-05-07 20:53:37 -03:00

118 lines
2.9 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/gdrive-zakdragonbites/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))
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
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 grep -qE "$media_url" -i "$furry_commission_ideas_urls_filename"; then
echo "[INFO] This folder already has the media informed."
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