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