From 2c412e4d00505aaf4da2253c478b58f2f1cece89 Mon Sep 17 00:00:00 2001 From: Matheus Albino Date: Tue, 10 Dec 2024 20:57:50 -0300 Subject: [PATCH] images-indexer.sh stores in multiple folders now --- scripts/shell/images-indexer.sh | 86 +++++++++++++++++++-------------- 1 file changed, 51 insertions(+), 35 deletions(-) diff --git a/scripts/shell/images-indexer.sh b/scripts/shell/images-indexer.sh index 60c47c2..dbd4ab5 100755 --- a/scripts/shell/images-indexer.sh +++ b/scripts/shell/images-indexer.sh @@ -56,6 +56,7 @@ if [ ${#commands_not_found[@]} -ne 0 ]; then fi furry_commission_ideas_path=/mnt/e/clouds/nextcloud/furry-downloads +# furry_commission_ideas_path=/mnt/e/home/downloads/furry-downloads furry_commission_ideas_urls_filename="urls.txt" scripts_path=/home/cloud/repos/personal-devboot/scripts/shell @@ -118,14 +119,18 @@ input_create_folder() { echo "$new_foldername" } -input_select_folder() { - read_command_message="Please select a folder" +selected_folders=() - selected_option=$(read_command $read_command_message) - while [ -z "$selected_option" ]; do - selected_option=$(read_command $read_command_message) +input_selected_folders_and_fill_selected_folders_variable() { + read_command_message="Please select a folder (separation by comma)" + + selected_options_arg=$(read_command $read_command_message) + while [ -z "$selected_options_arg" ]; do + selected_options_arg=$(read_command $read_command_message) done + selected_options=($(convert_csv_to_array "$selected_options_arg")) + if [ "$selected_option" == 'n' ]; then new_folder_input_message="Please create a new folder" @@ -136,12 +141,21 @@ input_select_folder() { mkdir --parents "$new_foldername" - selected_folder=$new_foldername + selected_folders=("$new_foldername") else - selected_folder=${existing_folders[$selected_option]} - fi + for selected_option in ${selected_options[@]}; do + selected_folder=${existing_folders[$selected_option]} - echo "$selected_folder" + if [ -z "$selected_folder" ]; then + echo "" + echo "A selected option is not valid ('$selected_option')" + echo "Exiting..." + exit 1 + fi + + selected_folders+=("$selected_folder") + done + fi } show_folder_selection_list_and_fill_selected_folder_variable() { @@ -184,9 +198,9 @@ show_folder_selection_list_and_fill_selected_folder_variable() { printf "\n" - selected_folder=$(input_select_folder) + input_selected_folders_and_fill_selected_folders_variable while [ -z "$selected_folder" ]; do - selected_folder=$(input_select_folder) + input_selected_folders_and_fill_selected_folders_variable done fi else @@ -204,9 +218,9 @@ show_folder_selection_list_and_fill_selected_folder_variable() { printf "\n" - selected_folder=$(input_select_folder) - while [ -z "$selected_folder" ]; do - selected_folder=$(input_select_folder) + input_selected_folders_and_fill_selected_folders_variable + while [ -z "$selected_folders" ]; do + input_selected_folders_and_fill_selected_folders_variable done fi fi @@ -237,8 +251,6 @@ fill_existing_folders_array() { existing_folders=($(eval $find_command)) - selected_folder='' - if [ -z "${existing_folders}" ]; then echo "" echo "[INFO] There are no folders in the 'furry-commission-ideas' folder." @@ -400,27 +412,28 @@ generate_random_string_with_suffix() { image_download_steps() { url_to_download=$1 - if [ -f "$furry_commission_ideas_urls_filename" ] && grep -qE "$url_to_download" -i "$furry_commission_ideas_urls_filename"; then - echo "" + tmp_dir="/tmp" - if [ $interactive_mode ]; then + for folder in "${selected_folders[@]}"; do + cd "${furry_commission_ideas_path}/${folder}" + + if [ -f "$furry_commission_ideas_urls_filename" ] && grep -qE "$url_to_download" -i "$furry_commission_ideas_urls_filename"; then + echo "" echo "[INFO] The folder informed already has the URL informed" echo " URL: ${url_to_download}" - else - echo "[INFO] This folder already has the url informed." - fi + echo " Folder: ${folder}" - return - fi + continue + fi + done media_extension=$(get_information_from_gallery_dl_media "$url_to_download" "extension") - temp_dirpath="/tmp" - temp_filename=$(generate_random_string_with_suffix "$media_extension") + tmp_filename=$(generate_random_string_with_suffix "$media_extension") echo "" echo "Download starting..." - gallery-dl --quiet --directory ${temp_dirpath} --filename ${temp_filename} $url_to_download + gallery-dl --quiet --directory ${tmp_dir} --filename ${tmp_filename} $url_to_download if [[ $? -ne 0 ]]; then unsucessful_downloads+="$url_to_download" @@ -429,15 +442,21 @@ image_download_steps() { echo "Download finished." - final_temp_filepath="${temp_dirpath}/${temp_filename}" + for folder in "${selected_folders[@]}"; do + cd "${furry_commission_ideas_path}/${folder}" - final_temp_filepath_md5=($(md5sum $final_temp_filepath)) + final_temp_filepath="${tmp_dir}/${tmp_filename}" - final_filename="${final_temp_filepath_md5}.${media_extension}" + final_temp_filepath_md5=($(md5sum $final_temp_filepath)) - mv ${final_temp_filepath} ./${final_filename} + final_filename="${final_temp_filepath_md5}.${media_extension}" - echo "$final_filename,$url_to_download" >>$furry_commission_ideas_urls_filename + cp $final_temp_filepath ./${final_filename} + + echo "$final_filename,$url_to_download" >>$furry_commission_ideas_urls_filename + done + + rm $tmp_dir/$tmp_filename } fill_existing_folders_array @@ -470,9 +489,6 @@ else done show_folder_selection_list_and_fill_selected_folder_variable - - cd "${furry_commission_ideas_path}/${selected_folder}" - image_download_steps "${url}" done fi