From d670327c8a354f4b745b9b3c8ca34457d441b6a2 Mon Sep 17 00:00:00 2001 From: RandomNinjaAtk Date: Thu, 3 Aug 2023 09:52:11 -0400 Subject: [PATCH] Create Downloader.bash --- ra-rom-downloader/Downloader.bash | 166 ++++++++++++++++++++++++++++++ 1 file changed, 166 insertions(+) create mode 100644 ra-rom-downloader/Downloader.bash diff --git a/ra-rom-downloader/Downloader.bash b/ra-rom-downloader/Downloader.bash new file mode 100644 index 0000000..237e6a6 --- /dev/null +++ b/ra-rom-downloader/Downloader.bash @@ -0,0 +1,166 @@ +# This script is for dev purposes +sleep infinity +UrlDecode () { : "${*//+/ }"; echo -e "${_//%/\\x}"; } + +url="https://archive.org/download/retroachievements_collection_v5/SNES/Super%20Mario%20Kart/Super%20Mario%20Kart%20%28U%29%20%5B%21%5D.zip" +decodedUrl="$(UrlDecode "$url")" +echo $decodedUrl + + +url="https://archive.org/download/retroachievements_collection_v5/SNES" +decodedUrl="$(UrlDecode "$url")" +echo $decodedUrl + + +if [ -f romlist ]; then + rm romlist +fi + +if [ -f romfilelist ]; then + rm romfilelist +fi + +outputdir="/home/steveno/Nextcloud/Gaming/ROMs/megadrive" + +archiveContentsUrl="https://archive.org/download/retroachievements_collection_v5/SNES/" + + + +archiveContentsUrl="https://archive.org/download/retroachievements_collection_v5/NES/" + + +archiveContentsUrl="https://archive.org/download/retroachievements_collection_v5/Mega%20Drive/" +archiveUrl="$(wget -qO- "$archiveContentsUrl" | grep -io '> romlist +romlist=$(cat romlist) +echo "$romlist" | while read -r rom; do + archiveContentsUrl="$rom/" + archiveUrl="$(wget -qO- "$archiveContentsUrl" | grep -i ".zip" | grep -io '> romfilelist + romfiles="$(cat romfilelist | awk '{ print length, $0 }' | sort -n | cut -d" " -f2-)" + # debugging + #echo "original list: " + #cat romfilelist + #echo "" + #echo "rom file list sorted by length: " + #echo "$romfiles" + #filteredUsaRoms="$(echo "$romfiles" | grep "%20%28U%29" | head -n 1)" + #echo "" + #echo "filtered:" + #echo "$filteredUsaRoms" + #if [ -f romfilelist ]; then + # rm romfilelist + #fi + #continue\ + + echo "==========================================================================" + + filteredUsaRoms="$(echo "$romfiles" | grep -i "%20%28U%29" | head -n 1)" + filteredUsaRomscount="$(echo "$romfiles" | grep -i "%20%28U%29" | head -n 1 | wc -l)" + filteredUsa2Roms="$(echo "$romfiles" | grep -i "%20%28USA%29" | head -n 1)" + filteredUsa2Romscount="$(echo "$romfiles" | grep -i "%20%28USA%29" | head -n 1 | wc -l)" + filteredEuropRoms="$(echo "$romfiles" | grep -i "%20%28E%29" | head -n 1)" + filteredEuropRomscount="$(echo "$romfiles" | grep -i "%20%28E%29" | head -n 1 | wc -l)" + filteredWorldRoms="$(echo "$romfiles" | grep -i "%20%28W%29" | head -n 1)" + filteredWorldRomscount="$(echo "$romfiles" | grep -i "%20%28W%29" | head -n 1 | wc -l)" + filteredJapanRoms="$(echo "$romfiles" | grep -i "%20%28J%29" | head -n 1)" + filteredJapanRomscount="$(echo "$romfiles" | grep -i "%20%28J%29" | head -n 1 | wc -l)" + filteredOtherRoms="$(echo "$romfiles" | head -n 1)" + filteredOtherRomscount="$(echo "$romfiles" | head -n 1 | wc -l)" + filteredOtherRomsDecoded="$(UrlDecode "$filteredOtherRoms")" + subFolder="$(dirname "$filteredOtherRomsDecoded")" + subFolder="$(basename "$subFolder")" + + if echo "$subFolder" | grep "~" | read; then + subFolder="/$(echo "$subFolder" | cut -d "~" -f 2)/" + else + subFolder="/" + fi + + if [ ! -d "${outputdir}${subFolder}" ]; then + echo "Creating \"${subFolder}\" folder... " + mkdir -p "${outputdir}${subFolder}" + chmod 777 "${outputdir}${subFolder}" + fi + + if [ $filteredUsaRomscount -eq 1 ]; then + echo "USA (U) ROM FOUND" + fileName="$(basename "$filteredUsaRoms")" + fileName="$(UrlDecode "$fileName")" + echo "${outputdir}${subFolder}${fileName}" + if [ ! -f "${outputdir}${subFolder}${fileName}" ]; then + wget "$filteredUsaRoms" -O "${outputdir}${subFolder}${fileName}" + fi + elif [ $filteredUsa2Romscount -eq 1 ]; then + echo "USA (USA) ROM FOUND" + fileName="$(basename "$filteredUsa2Roms")" + fileName="$(UrlDecode "$fileName")" + echo "${outputdir}${subFolder}${fileName}" + if [ ! -f "${outputdir}${subFolder}${fileName}" ]; then + wget "$filteredEuropRoms" -O "${outputdir}${subFolder}${fileName}" + fi + elif [ $filteredEuropRomscount -eq 1 ]; then + echo "EUROPE ROM FOUND" + fileName="$(basename "$filteredEuropRoms")" + fileName="$(UrlDecode "$fileName")" + echo "${outputdir}${subFolder}${fileName}" + if [ ! -f "${outputdir}${subFolder}${fileName}" ]; then + wget "$filteredEuropRoms" -O "${outputdir}${subFolder}${fileName}" + fi + elif [ $filteredWorldRomscount -eq 1 ]; then + echo "WORLD ROM FOUND" + fileName="$(basename "$filteredWorldRoms")" + fileName="$(UrlDecode "$fileName")" + echo "${outputdir}${subFolder}${fileName}" + if [ ! -f "${outputdir}${subFolder}${fileName}" ]; then + wget "$filteredWorldRoms" -O "${outputdir}${subFolder}${fileName}" + fi + elif [ $filteredJapanRomscount -eq 1 ]; then + echo "JAPAN ROM FOUND" + fileName="$(basename "$filteredJapanRoms")" + fileName="$(UrlDecode "$fileName")" + echo "${outputdir}${subFolder}${fileName}" + if [ ! -f "${outputdir}${subFolder}${fileName}" ]; then + wget "$filteredJapanRoms" -O "${outputdir}${subFolder}${fileName}" + fi + elif [ $filteredOtherRomscount -eq 1 ]; then + echo "OTHER ROM FOUND" + fileName="$(basename "$filteredOtherRoms")" + fileName="$(UrlDecode "$fileName")" + echo "${outputdir}${subFolder}${fileName}" + if [ ! -f "${outputdir}${subFolder}${fileName}" ]; then + wget "$filteredOtherRoms" -O "${outputdir}${subFolder}${fileName}" + fi + else + echo "ERROR :: No Filtered Roms Found..." + fi + + if [ -f "${outputdir}${subFolder}${fileName}" ]; then + echo "Setting Permissions on: ${fileName}" + chmod 666 "${outputdir}${subFolder}${fileName}" + fi + + if [ -f romfilelist ]; then + rm romfilelist + fi + +done + +exit +archiveContentsUrl="https://archive.org/download/retroachievements_collection_v5/SNES/World Heroes/" +archiveUrl="$(wget -qO- "$archiveContentsUrl" | grep -i ".zip" | grep -io '> romfilelist +romfiles=$(cat romfilelist) +echo "$romfiles" +echo "" + +if [ -f romlist ]; then + rm romlist +fi + +if [ -f romfilelist ]; then + rm romfilelist +fi + +exit +#curl -s "https://archive.org/download/retroachievements_collection_v5/SNES/Super%20Mario%20Kart/Super%20Mario%20Kart%20%28U%29%20%5B%21%5D.zip"