Adds gallery-dl, mmm and utils related scripts
This commit is contained in:
50
scripts/shell/create-urls-txt-files-for-gallery-dl-twitter-files.sh
Executable file
50
scripts/shell/create-urls-txt-files-for-gallery-dl-twitter-files.sh
Executable file
@@ -0,0 +1,50 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
cur_dirname=`pwd`
|
||||||
|
|
||||||
|
if [[ $cur_dirname != *"gallery-dl/twitter" ]]; then
|
||||||
|
echo 'Not a valid path'
|
||||||
|
echo 'Are you inside a gallery-dl/twitter directory?'
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# creates a .txt file for each .png file
|
||||||
|
if false; then
|
||||||
|
files=($(find * -type f -not -name '*.txt'))
|
||||||
|
|
||||||
|
for f in ${files[@]}; do
|
||||||
|
filenameSplit=(${f//\// })
|
||||||
|
|
||||||
|
account_name=${filenameSplit[0]}
|
||||||
|
file_name=${filenameSplit[1]}
|
||||||
|
post_id=`echo $file_name | cut -f1 -d"_"`
|
||||||
|
|
||||||
|
tweet_url="https://twitter.com/$account_name/status/$post_id"
|
||||||
|
|
||||||
|
echo $tweet_url > $account_name/$post_id.txt
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
|
# creates a .txt file for each artist folder
|
||||||
|
if true; then
|
||||||
|
artists=($(find * -type d))
|
||||||
|
|
||||||
|
for account_name in ${artists[@]}; do
|
||||||
|
echo "Doing \"$account_name\" now..."
|
||||||
|
files=($(find $account_name -type f -not -name '*.txt'))
|
||||||
|
|
||||||
|
urls_filename="$account_name/urls.txt"
|
||||||
|
rm --force $urls_filename
|
||||||
|
|
||||||
|
for f in ${files[@]}; do
|
||||||
|
filenameSplit=(${f//\// })
|
||||||
|
|
||||||
|
file_name=${filenameSplit[1]}
|
||||||
|
post_id=`echo $file_name | cut -f1 -d"_"`
|
||||||
|
|
||||||
|
tweet_url="https://twitter.com/$account_name/status/$post_id"
|
||||||
|
|
||||||
|
echo "$file_name: $tweet_url" >> $urls_filename
|
||||||
|
done
|
||||||
|
done
|
||||||
|
fi
|
||||||
18
scripts/shell/loop.sh
Executable file
18
scripts/shell/loop.sh
Executable file
@@ -0,0 +1,18 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
command="$@"
|
||||||
|
|
||||||
|
if [ -z "$command" ]; then
|
||||||
|
echo "Please provide a command. Example: loop.sh echo foo"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
while true; do
|
||||||
|
clear
|
||||||
|
eval $command
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echo "[loop.sh] Done!"
|
||||||
|
echo "[loop.sh] Press any key to continue..."
|
||||||
|
read
|
||||||
|
done
|
||||||
290
scripts/shell/mmm-iterate-modlist.sh
Executable file
290
scripts/shell/mmm-iterate-modlist.sh
Executable file
@@ -0,0 +1,290 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
show_help() {
|
||||||
|
echo "Usage: $0 [--mods-names|-m mods] [--include-default-mods|-d true] [--interactive-mode|-i true]"
|
||||||
|
echo "Options:"
|
||||||
|
echo " --mods-names|-m (required) Specify mods names list, separation by comma (,)."
|
||||||
|
echo " Run \"--use-ids true\" to use ids instead of names for mod installations"
|
||||||
|
echo " --include-default-mods|-d (optional) Includes a list of default mods."
|
||||||
|
echo " Run \"--list-default-mods true\" to list the default mods."
|
||||||
|
echo " --interactive-mode|-i (optional) The script will ask for installation for each mod and show warnings."
|
||||||
|
}
|
||||||
|
|
||||||
|
if ! test -f modlist.json; then
|
||||||
|
echo "This script uses the mmm (meza/minecraft-mod-manager) tool to detect and install mods."
|
||||||
|
echo "Please ensure that you are inside a .minecraft folder that contains an initialized mmm setup."
|
||||||
|
echo "mmm's GitHub repository: https://github.com/meza/minecraft-mod-manager"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
modsnames_csv=''
|
||||||
|
use_ids=false
|
||||||
|
should_include_default_mods=false
|
||||||
|
list_default_mods=false
|
||||||
|
interactive_mode=false
|
||||||
|
|
||||||
|
while [ "$#" -gt 0 ]; do
|
||||||
|
case "$1" in
|
||||||
|
--help|-h) show_help; exit ;;
|
||||||
|
--mods-names|-m) modsnames_csv="$2"; shift 2 ;;
|
||||||
|
--use-ids) use_ids=true; shift 2 ;;
|
||||||
|
--include-default-mods|-d) should_include_default_mods=true; shift 2 ;;
|
||||||
|
--list-default-mods) list_default_mods=true; shift 2 ;;
|
||||||
|
--interactive-mode|-i) interactive_mode=true; shift 2 ;;
|
||||||
|
*) shift ;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
default_mods_ids=(
|
||||||
|
"P7dR8mSH", # Fabric API
|
||||||
|
)
|
||||||
|
|
||||||
|
if $list_default_mods; then
|
||||||
|
echo "Default mods to be installed:"
|
||||||
|
for mod_id in ${default_mods_ids[@]}; do
|
||||||
|
mod_title=(http --verify no "https://api.modrinth.com/v2/project/$mod_id" | jq -r ".title")
|
||||||
|
mod_url="https://modrinth.com/mod/$mod_id"
|
||||||
|
|
||||||
|
echo " $mod_title: $mod_url"
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
|
if $should_include_default_mods; then
|
||||||
|
for mod_id in ${default_mods_ids[@]}; do
|
||||||
|
mmm add modrinth $mod_id
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
|
modsnames=()
|
||||||
|
|
||||||
|
while [ -z "$modsnames_csv" ]; do
|
||||||
|
echo "Enter mods list, separation by comma (,)"
|
||||||
|
read modsnames_csv
|
||||||
|
done
|
||||||
|
|
||||||
|
modsnames+=(${modsnames_csv//,/ })
|
||||||
|
|
||||||
|
resource_packs=()
|
||||||
|
skipped_mods=()
|
||||||
|
|
||||||
|
mods_length="${#modsnames[@]}"
|
||||||
|
|
||||||
|
for (( i=0; i<${mods_length}; i++ )); do
|
||||||
|
mod=${modsnames[$i]}
|
||||||
|
|
||||||
|
clear
|
||||||
|
|
||||||
|
echo "Doing \"$mod\" now... ($((i+1))/$((mods_length+1)))"
|
||||||
|
|
||||||
|
if $use_ids; then
|
||||||
|
echo "yes n | mmm add modrinth $mod"
|
||||||
|
|
||||||
|
if [ $? -ne 0 ]; then
|
||||||
|
skipped_mods+=($mod)
|
||||||
|
fi
|
||||||
|
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
|
||||||
|
req_output=`http --verify no "https://api.modrinth.com/v2/search?query=$mod&index=relevance"`
|
||||||
|
echo $req_output | jq empty
|
||||||
|
|
||||||
|
if [ $? -ne 0 ]; then
|
||||||
|
if $interactive_mode; then
|
||||||
|
echo "The query for mod \"$mod\" resulted in a invalid JSON response."
|
||||||
|
|
||||||
|
mod_search_url=${mod// /+}
|
||||||
|
echo "Please search for it manually: https://modrinth.com/mods?q=$mod_search_url"
|
||||||
|
echo "Press any key to continue..."
|
||||||
|
read
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
|
||||||
|
skipped_mods+=($mod)
|
||||||
|
fi
|
||||||
|
|
||||||
|
mod_search_hits=$(jq -r '.hits' <<< "$req_output")
|
||||||
|
mod_search_count=$(jq length <<< "$mod_search_hits")
|
||||||
|
|
||||||
|
mod_id_selected=''
|
||||||
|
|
||||||
|
should_install_mod=false
|
||||||
|
should_skip_mod=false
|
||||||
|
should_continue_matches=false
|
||||||
|
|
||||||
|
if [ $mod_search_count -eq 0 ]; then
|
||||||
|
skipped_mods+=($mod)
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
|
||||||
|
for ((j=0; j < mod_search_count; j++)); do
|
||||||
|
mod_search_hit=$(jq -r ".[$j]" <<< "$mod_search_hits")
|
||||||
|
|
||||||
|
mod_id=$(jq -r ".project_id" <<< "$mod_search_hit")
|
||||||
|
mod_slug=$(jq -r ".slug" <<< "$mod_search_hit")
|
||||||
|
mod_project_type=$(jq -r ".project_type" <<< "$mod_search_hit")
|
||||||
|
|
||||||
|
if $interactive_mode; then
|
||||||
|
echo "We found a match for the \"$mod\" mod! ($((j+1))/$((mod_search_count+1)))"
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
mod_url="https://modrinth.com/mod/${mod_id// /+}"
|
||||||
|
|
||||||
|
echo "Mod's URL: $mod_url"
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
echo "Mod's info:"
|
||||||
|
echo "$mod_search_hit" | jq
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $mod_project_type == "resourcepack" ]; then
|
||||||
|
if $interactive_mode; then
|
||||||
|
echo ""
|
||||||
|
echo "The found match relates to a resource pack instead of a mod."
|
||||||
|
echo "Please input 'yes' if you want the script to remind you to install the resource pack separately and skip to the next mod."
|
||||||
|
echo "Please input 'no' if you want the script to continue looking for more matches for the mod."
|
||||||
|
|
||||||
|
while true; do
|
||||||
|
read -p "Please answer: (y/n): " yn
|
||||||
|
|
||||||
|
case $yn in
|
||||||
|
[Yy]* ) resource_packs+=($mod); should_skip_mod=true; break;;
|
||||||
|
[Nn]* ) clear; should_continue_matches=true; echo "Looking for more matches..."; sleep 1; echo ""; break;;
|
||||||
|
* ) echo "Please answer yes or no."; echo "";;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
|
resource_packs+=($mod)
|
||||||
|
should_continue_matches=true
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $mod_project_type != "mod" ]; then
|
||||||
|
if $interactive_mode; then
|
||||||
|
echo ""
|
||||||
|
echo "The found match relates to project type that is not a mod (\"$mod_project_type\")."
|
||||||
|
echo "Please input 'yes' if you want the script to remind you to install the project separately and skip to the next mod."
|
||||||
|
echo "Please input 'no' if you want the script to continue looking for more matches for the mod."
|
||||||
|
|
||||||
|
while true; do
|
||||||
|
read -p "Please answer: (y/n): " yn
|
||||||
|
|
||||||
|
case $yn in
|
||||||
|
[Yy]* ) resource_packs+=($mod); should_skip_mod=true; break;;
|
||||||
|
[Nn]* ) clear; should_continue_matches=true; echo "Looking for more matches..."; sleep 1; echo ""; break;;
|
||||||
|
* ) echo "Please answer yes or no."; echo "";;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
|
should_continue_matches=true
|
||||||
|
fi
|
||||||
|
|
||||||
|
if $should_continue_matches; then
|
||||||
|
should_continue_matches=false
|
||||||
|
clear
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
|
||||||
|
if $should_skip_mod; then
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
|
||||||
|
should_install_mod=true
|
||||||
|
|
||||||
|
if $interactive_mode; then
|
||||||
|
while true; do
|
||||||
|
read -p "Does this look right? (y/n/c): " yn
|
||||||
|
|
||||||
|
case $yn in
|
||||||
|
[Yy]* ) should_install_mod=true; break;;
|
||||||
|
[Nn]* ) clear; echo "Looking for more matches..."; sleep 1; echo ""; break;;
|
||||||
|
[Cc]* ) should_skip_mod=true; break;;
|
||||||
|
* ) echo "Please answer yes, no or cancel."; echo "";;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
|
if $should_skip_mod; then
|
||||||
|
skipped_mods+=($mod)
|
||||||
|
fi
|
||||||
|
|
||||||
|
if $should_install_mod || $should_skip_mod; then
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
if $should_install_mod; then
|
||||||
|
clear
|
||||||
|
|
||||||
|
grep --quiet $mod_slug modlist.json
|
||||||
|
|
||||||
|
if [ $? -eq 0 ]; then
|
||||||
|
if $interactive_mode; then
|
||||||
|
echo "The selected mod is already installed."
|
||||||
|
echo "Skipping..."
|
||||||
|
echo "Press any key to continue..."
|
||||||
|
read
|
||||||
|
fi
|
||||||
|
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
|
||||||
|
if $interactive_mode; then
|
||||||
|
echo "The following mod will be intalled: \"$mod_slug\""
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "yes n | mmm add modrinth $mod_id"
|
||||||
|
read
|
||||||
|
|
||||||
|
if [ $? -ne 0 ]; then
|
||||||
|
skipped_mods+=($mod)
|
||||||
|
|
||||||
|
if $interactive_mode; then
|
||||||
|
echo ""
|
||||||
|
echo "It seems that the mod installation was not successful."
|
||||||
|
echo "The script will log this mod as not installed after all mods are processed."
|
||||||
|
echo "Press any key to continue..."
|
||||||
|
read
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if $should_skip_mod; then
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -z "$mod_info_selected" ]; then
|
||||||
|
skipped_mods+=($mod)
|
||||||
|
|
||||||
|
if $interactive_mode; then
|
||||||
|
echo ""
|
||||||
|
echo "No match was selected for installation."
|
||||||
|
echo "The mod \"$mod\" wasn't installed by the script."
|
||||||
|
echo "This will be logged when all mods are finished."
|
||||||
|
echo "Press any key to continue..."
|
||||||
|
read
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
if (( ${#resource_packs[@]} )); then
|
||||||
|
echo ""
|
||||||
|
echo "[INFO] There were resource packs found:"
|
||||||
|
|
||||||
|
for r in ${resource_packs[@]}; do
|
||||||
|
echo " $r"
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
|
if (( ${#skipped_mods[@]} )); then
|
||||||
|
echo ""
|
||||||
|
echo "[INFO] There were mods that had their installations skipped:"
|
||||||
|
|
||||||
|
for mod in ${skipped_mods[@]}; do
|
||||||
|
echo " $mod"
|
||||||
|
done
|
||||||
|
fi
|
||||||
Reference in New Issue
Block a user