diff --git a/ra-rom-downloader/Downloader.bash b/ra-rom-downloader/Downloader.bash index f9dfa5b..6e8965f 100644 --- a/ra-rom-downloader/Downloader.bash +++ b/ra-rom-downloader/Downloader.bash @@ -1,18 +1,9 @@ -#!/usr/bin/env bash -# This script is for dev purposes -scriptVersion="1.1" +#!/usr/bin/with-contenv bash +scriptVersion="1.0" scriptName="RA-ROM-Downloader" - -#### Import Settings -source /config/extended.conf - +romPath="$romPath/RA_collection" #### Funcitons -log () { - m_time=`date "+%F %T"` - echo $m_time" :: $scriptName :: $scriptVersion :: "$1 2>&1 | tee -a /config/$scriptName.log -} - logfileSetup () { # auto-clean up log file to reduce space usage if [ -f "/config/$scriptName.log" ]; then @@ -27,671 +18,48 @@ logfileSetup () { fi } -UrlDecode () { : "${*//+/ }"; echo -e "${_//%/\\x}"; } - -CreatePlatformRomList () { - if [ -f /config/romlist ]; then - rm /config/romlist - fi - archiveUrl="$(wget -qO- "$1" | grep -io '> /config/romlist - sed -i '/#maincontent/d' /config/romlist - sed -i '/blog.archive.org/d' /config/romlist -} - -DownloadFile () { - # $1 = URL - # $2 = Output Folder/file - # $3 = Number of concurrent connections to use - axel -n $3 --output="$2" "$1" | awk -W interactive '$0~/\[/{printf "%s'$'\r''", $0}' - #wget -q --show-progress --progress=bar:force 2>&1 "$1" -O "$2" - if [ ! -f "$2" ]; then - log "$processNumber/$platformToProcessNumber :: $platformName :: $romProcessNumber/$romListCount :: ${fileName} :: Download Failed ($1)" - fi -} - -DownloadFileVerification () { - log "$processNumber/$platformToProcessNumber :: $platformName :: $romProcessNumber/$romListCount :: ${fileName} :: Verifing Download..." - case "$1" in - *.zip|*.ZIP) - verify="$(unzip -t "$1" &>/dev/null; echo $?)" - ;; - *.rar|*.RAR) - verify="$(unrar t "$1" &>/dev/null; echo $?)" - ;; - *.7z|*.7Z) - verify="$(7z t "$1" &>/dev/null; echo $?)" - ;; - *.chd|*.CHD) - verify="$(chdman verify -i "$1" &>/dev/null; echo $?)" - ;; - *.iso|*.ISO|*.hex|*.HEX|*.wasm|*.WASM|*.sv|*.SV) - echo "No methdod to verify this type of file (iso,hex,wasm,sv)" - verify="0" - ;; - esac - - if [ "$verify" != "0" ]; then - log "$processNumber/$platformToProcessNumber :: $platformName :: $romProcessNumber/$romListCount :: ${fileName} :: ERROR :: Failed Verification!" - rm "$1" - else - log "$processNumber/$platformToProcessNumber :: $platformName :: $romProcessNumber/$romListCount :: ${fileName} :: Download Verified!" - fi -} - -PlatformSelection () { - if [ "$platform" == "snes" ]; then - PlatformSnes - elif [ "$platform" == "apple2" ]; then - PlatformApple2 - elif [ "$platform" == "megadrive" ]; then - PlatformMegadrive - elif [ "$platform" == "n64" ]; then - PlatformN64 - elif [ "$platform" == "megaduck" ]; then - PlatformMegaduck - elif [ "$platform" == "pokemini" ]; then - PlatformPokemini - elif [ "$platform" == "virtualboy" ]; then - PlatformVirtualboy - elif [ "$platform" == "nes" ]; then - PlatformNes - elif [ "$platform" == "arduboy" ]; then - PlatformArduboy - elif [ "$platform" == "sega32x" ]; then - PlatformSega32x - elif [ "$platform" == "mastersystem" ]; then - PlatformMastersystem - elif [ "$platform" == "sg1000" ]; then - PlatformSg1000 - elif [ "$platform" == "atarilynx" ]; then - PlatformAtarilynx - elif [ "$platform" == "jaguar" ]; then - PlatformJaguar - elif [ "$platform" == "gb" ]; then - PlatformGameBoy - elif [ "$platform" == "gbc" ]; then - PlatformGameBoyColor - elif [ "$platform" == "gba" ]; then - PlatformGameBoyAdvance - elif [ "$platform" == "gamegear" ]; then - PlatformGameGear - elif [ "$platform" == "atari2600" ]; then - PlatformAtari2600 - elif [ "$platform" == "atari7800" ]; then - PlatformAtari7800 - elif [ "$platform" == "nds" ]; then - PlatformNintendoDS - elif [ "$platform" == "colecovision" ]; then - PlatformColecoVision - elif [ "$platform" == "intellivision" ]; then - PlatformIntellivision - elif [ "$platform" == "ngp" ]; then - PlatformNeoGeoPocket - elif [ "$platform" == "ndsi" ]; then - PlatformNintendoDSi - elif [ "$platform" == "wasm4" ]; then - PlatformNintendoWASM-4 - elif [ "$platform" == "channelf" ]; then - PlatformNintendoChannelF - elif [ "$platform" == "o2em" ]; then - PlatformO2em - elif [ "$platform" == "arcadia" ]; then - PlatformArcadia - elif [ "$platform" == "supervision" ]; then - PlatformSupervision - elif [ "$platform" == "wswan" ]; then - PlatformWonderSwan - elif [ "$platform" == "vectrex" ]; then - PlatformVectrex - else - log "ERROR :: No Platforms Selected, exiting..." - exit - fi -} DownloadRomCountSummary () { - log "Summarizing ROM counts..." - romCount=$(find "$romPath" -type f | wc -l) + OIFS="$IFS" + IFS=$'\n' + romCount=$(find "$romPath" -type f -iname "*.zip" | wc -l) platformCount=$(find "/$romPath" -maxdepth 1 -mindepth 1 -type d | wc -l) - log "$romCount ROMS downloaded on $platformCount different platforms!!!" - log "Platform breakdown...." - echo "Platforms ($platformCount):;Total:;Released:;Hack/Homebrew/Proto/Unlicensed:" > /config/temp + echo "################## ROM SUMMARY ##################" 2>&1 | tee -a /config/$scriptName.log + echo "$romCount ROMS downloaded on $platformCount different platforms!!!" 2>&1 | tee -a /config/$scriptName.log + echo "############### DETAILED SUMMARY ################" 2>&1 | tee -a /config/$scriptName.log + echo "Platforms ($platformCount):;Total:" > /config/temp for romfolder in $(find "/$romPath" -maxdepth 1 -mindepth 1 -type d); do platform="$(basename "$romfolder")" - PlatformSelection - platformRomCount=$(find "$romPath/$platformFolder" -type f | wc -l) - platformRomSubCount=$(find "$romPath/$platformFolder" -mindepth 2 -type f | wc -l) - platformMainRomCount=$(( $platformRomCount - $platformRomSubCount )) - echo "$platformName;$platformRomCount;$platformMainRomCount;$platformRomSubCount" >> /config/temp + platformRomCount=$(find "$romfolder" -type f -iname "*.zip" | wc -l) + echo "$platform;$platformRomCount" >> /config/temp done - platformRomSubCount=$(find "$romPath" -mindepth 3 -type f | wc -l) - platformMainRomCount=$(( $romCount - $platformRomSubCount )) - echo "Totals:;$romCount;$platformMainRomCount;$platformRomSubCount" >> /config/temp + echo "Totals:;$romCount;" >> /config/temp data=$(cat /config/temp | column -s";" -t) - echo "$data" + rm /config/temp + echo "$data" 2>&1 | tee -a /config/$scriptName.log + IFS="$OIFS" } -#### Platforms -PlatformVectrex () { - platformName="Vectrex" - platformArchiveContentsUrl="https://archive.org/download/retroachievements_collection_v5/Vectrex/" - platformFolder="vectrex" - consoleRomFileExt=".bin, .gam, .vec, .zip, .7z" - raConsoleId="46" - uncompressRom="false" - compressRom="false" +DownloadRoms () { + echo "############### UPDATING ROMS #################" 2>&1 | tee -a /config/$scriptName.log + rclone sync -P --http-url https://ia902505.us.archive.org ":http:/27/items/retroachievements_collection_v5" "$romPath" --filter="- SNES/**" --filter="- NES/**" --filter="- PlayStation Portable/**" --filter="- PlayStation/**" --filter="- PlayStation 2/**" --filter "- retroachievements_collection*" --filter "- TamperMonkeyRetroachievements*" --filter "- __ia_thumb.jpg" --filter "- rclone.txt" --local-case-sensitive --delete-before --transfers $downloadTransfers --checkers $downloadCheckers --tpslimit $downloadTpslimit --log-file="/config/rclong.log" + rclone sync -P --http-url https://ia902701.us.archive.org ":http:/29/items/retroachievements_collection_NES/NES" "$romPath/NES" --local-case-sensitive --delete-before --transfers $downloadTransfers --checkers $downloadCheckers --tpslimit $downloadTpslimit --log-file="/config/rclong.log" + rclone sync -P --http-url https://ia802606.us.archive.org ":http:/25/items/retroachievements_collection_SNES/SNES" "$romPath/SNES" --local-case-sensitive --delete-before --transfers $downloadTransfers --checkers $downloadCheckers --tpslimit $downloadTpslimit --filter="- *(MSU)*" --log-file="/config/rclong.log" + rclone sync -P --http-url https://ia902607.us.archive.org ":http:/23/items/retroachievements_collection_PlayStation_Portable/PlayStation Portable" "$romPath/PlayStation Portable" --local-case-sensitive --delete-before --transfers $downloadTransfers --checkers $downloadCheckers --tpslimit $downloadTpslimit --log-file="/config/rclong.log" + rclone sync -P --http-url https://ia902709.us.archive.org ":http:/31/items/retroachievements_collection_PlayStation/PlayStation" "$romPath/PlayStation" --local-case-sensitive --delete-before --transfers $downloadTransfers --checkers $downloadCheckers --tpslimit $downloadTpslimit --log-file="/config/rclong.log" + rclone sync -P --http-url https://ia904707.us.archive.org ":http:/16/items/retroachievements_collection_PS2/PlayStation 2" "$romPath/PlayStation 2" --local-case-sensitive --delete-before --transfers $downloadTransfers --checkers $downloadCheckers --tpslimit $downloadTpslimit --log-file="/config/rclong.log" } -PlatformSupervision () { - platformName="Watara Supervision" - platformArchiveContentsUrl="https://archive.org/download/retroachievements_collection_v5/Watara%20Supervision/" - platformFolder="supervision" - consoleRomFileExt=".sv, .zip, .7z" - raConsoleId="63" - uncompressRom="false" - compressRom="false" -} - -PlatformWonderSwan () { - platformName="WonderSwan" - platformArchiveContentsUrl="https://archive.org/download/retroachievements_collection_v5/WonderSwan/" - platformFolder="wswan" - consoleRomFileExt=".ws, .zip, .7z" - raConsoleId="53" - uncompressRom="false" - compressRom="false" -} - -PlatformApple2 () { - platformName="Apple II" - platformArchiveContentsUrl="https://archive.org/download/retroachievements_collection_v5/Apple%20II/" - platformFolder="apple2" - consoleRomFileExt=".nib, .do, .po, .dsk, .mfi, .dfi, .rti, .edd, .woz, .wav, .zip, .7z" - raConsoleId="38" - uncompressRom="false" - compressRom="false" -} - -PlatformArcadia () { - platformName="Arcadia 2001" - platformArchiveContentsUrl="https://archive.org/download/retroachievements_collection_v5/Arcadia%202001/" - platformFolder="arcadia" - consoleRomFileExt=".bin, .zip, .7z" - raConsoleId="73" - uncompressRom="false" - compressRom="false" -} - -PlatformO2em () { - platformName="Magnavox Odyssey 2" - platformArchiveContentsUrl="https://archive.org/download/retroachievements_collection_v5/Magnavox%20Odyssey%202/" - platformFolder="o2em" - consoleRomFileExt=".bin, .zip, .7z" - raConsoleId="23" - uncompressRom="false" - compressRom="false" -} - -PlatformSnes () { - platformName="Super Nintentdo" - platformArchiveContentsUrl="https://archive.org/download/retroachievements_collection_SNES/SNES/" - platformFolder="snes" - consoleRomFileExt=".smc, .fig, .sfc, .gd3, .gd7, .dx2, .bsx, .swc, .zip, .7z" - raConsoleId="3" - uncompressRom="false" - compressRom="false" -} - -PlatformMegadrive () { - platformName="Mega Drive" - platformArchiveContentsUrl="https://archive.org/download/retroachievements_collection_v5/Mega%20Drive/" - platformFolder="megadrive" - consoleRomFileExt=".bin, .gen, .md, .sg, .smd, .zip, .7z" - raConsoleId="1" - uncompressRom="false" - compressRom="false" -} - -PlatformN64 () { - platformName="Nintendo 64" - platformArchiveContentsUrl="https://archive.org/download/retroachievements_collection_v5/Nintendo%2064/" - platformFolder="n64" - consoleRomFileExt=".z64, .n64, .v64, .zip, .7z" - raConsoleId="2" - uncompressRom="false" - compressRom="false" -} - -PlatformMegaduck () { - platformName="Mega Duck" - platformArchiveContentsUrl="https://archive.org/download/retroachievements_collection_v5/Mega%20Duck/" - platformFolder="megaduck" - consoleRomFileExt=".bin, .zip, .7z" - raConsoleId="69" - uncompressRom="false" - compressRom="false" -} - -PlatformPokemini () { - platformName="Pokemon Mini" - platformArchiveContentsUrl="https://archive.org/download/retroachievements_collection_v5/Pokemon%20Mini/" - platformFolder="pokemini" - consoleRomFileExt=".min, .zip, .7z" - raConsoleId="24" - uncompressRom="false" - compressRom="false" -} - -PlatformVirtualboy () { - platformName="Virtual Boy" - platformArchiveContentsUrl="https://archive.org/download/retroachievements_collection_v5/Virtual%20Boy/" - platformFolder="virtualboy" - consoleRomFileExt=".vb, .zip, .7z" - raConsoleId="28" - uncompressRom="false" - compressRom="false" -} - -PlatformNes () { - platformName="Nintendo Entertainment System" - platformArchiveContentsUrl="https://archive.org/download/retroachievements_collection_NES/NES/" - platformFolder="nes" - consoleRomFileExt=".nes, .unif, .unf, .zip, .7z" - raConsoleId="7" - uncompressRom="false" - compressRom="false" -} - -Platform3do () { - platformName="3DO Interactive Multiplayer" - platformArchiveContentsUrl="https://archive.org/download/retroachievements_collection_v5/3DO%20Interactive%20Multiplayer/" - platformFolder="3do" - consoleRomFileExt=".iso, .chd, .cue" - raConsoleId="43" - uncompressRom="false" - compressRom="false" -} - -PlatformArduboy () { - platformName="Arduboy" - platformArchiveContentsUrl="https://archive.org/download/retroachievements_collection_v5/Arduboy/" - platformFolder="arduboy" - consoleRomFileExt=".hex, .zip, .7z" - raConsoleId="71" - uncompressRom="false" - compressRom="false" -} - -PlatformSega32x () { - platformName="Sega 32X" - platformArchiveContentsUrl="https://archive.org/download/retroachievements_collection_v5/32X/" - platformFolder="sega32x" - consoleRomFileExt=".32x, .smd, .bin, .md, .zip, .7z" - raConsoleId="10" - uncompressRom="false" - compressRom="false" -} - -PlatformMastersystem () { - platformName="Sega Master System" - platformArchiveContentsUrl="https://archive.org/download/retroachievements_collection_v5/Master%20System/" - platformFolder="mastersystem" - consoleRomFileExt=".bin, .sms, .zip, .7z" - raConsoleId="11" - uncompressRom="false" - compressRom="false" -} - -PlatformSg1000 () { - platformName="SG-1000" - platformArchiveContentsUrl="https://archive.org/download/retroachievements_collection_v5/SG-1000/" - platformFolder="sg1000" - consoleRomFileExt=".bin, .sg, .zip, .7z" - raConsoleId="33" - uncompressRom="false" - compressRom="false" -} - -PlatformAtarilynx () { - platformName="Atari Lynx" - platformArchiveContentsUrl="https://archive.org/download/retroachievements_collection_v5/Atari%20Lynx/" - platformFolder="atarilynx" - consoleRomFileExt=".lnx, .zip, .7z" - raConsoleId="13" - uncompressRom="false" - compressRom="false" -} - -PlatformJaguar () { - platformName="Atari Jaguar" - platformArchiveContentsUrl="https://archive.org/download/retroachievements_collection_v5/Atari%20Jaguar/" - platformFolder="jaguar" - consoleRomFileExt=".cue, .j64, .jag, .cof, .abs, .cdi, .rom, .zip, .7z" - raConsoleId="17" - uncompressRom="false" - compressRom="false" -} - -PlatformGameBoy () { - platformName="Game Boy" - platformArchiveContentsUrl="https://archive.org/download/retroachievements_collection_v5/Game%20Boy/" - platformFolder="gb" - consoleRomFileExt=".gb, .zip, .7z" - raConsoleId="4" - uncompressRom="false" - compressRom="false" -} - -PlatformGameBoyColor () { - platformName="Game Boy Color" - platformArchiveContentsUrl="https://archive.org/download/retroachievements_collection_v5/Game%20Boy%20Color/" - platformFolder="gbc" - consoleRomFileExt=".gbc, .zip, .7z" - raConsoleId="6" - uncompressRom="false" - compressRom="false" -} - -PlatformGameBoyAdvance () { - platformName="Game Boy Advance" - platformArchiveContentsUrl="https://archive.org/download/retroachievements_collection_v5/Game%20Boy%20Advance/" - platformFolder="gba" - consoleRomFileExt=".gba, .zip, .7z" - raConsoleId="5" - uncompressRom="false" - compressRom="false" -} - -PlatformGameGear () { - platformName="Game Gear" - platformArchiveContentsUrl="https://archive.org/download/retroachievements_collection_v5/Game%20Gear/" - platformFolder="gamegear" - consoleRomFileExt=".bin, .gg, .zip, .7z" - raConsoleId="15" - uncompressRom="false" - compressRom="false" -} - -PlatformAtari2600 () { - platformName="Atari 2600" - platformArchiveContentsUrl="https://archive.org/download/retroachievements_collection_v5/Atari%202600/" - platformFolder="atari2600" - consoleRomFileExt=".a26, .bin, .zip, .7z" - raConsoleId="25" - uncompressRom="false" - compressRom="false" -} - -PlatformAtari7800 () { - platformName="Atari 7800" - platformArchiveContentsUrl="https://archive.org/download/retroachievements_collection_v5/Atari%207800/" - platformFolder="atari7800" - consoleRomFileExt=".a78, .bin, .zip, .7z" - raConsoleId="51" - uncompressRom="false" - compressRom="false" -} - -PlatformNintendoDS () { - platformName="Nintendo DS" - platformArchiveContentsUrl="https://archive.org/download/retroachievements_collection_v5/Nintendo%20DS/" - downloadExtension="zip" - platformFolder="nds" - consoleRomFileExt=".nds, .bin, .zip, .7z" - raConsoleId="18" - uncompressRom="false" - compressRom="false" -} - -PlatformNintendoDSi () { - platformName="Nintendo DSi" - platformArchiveContentsUrl="https://archive.org/download/retroachievements_collection_v5/Nintendo%20DSi/" - downloadExtension="zip" - platformFolder="ndsi" - consoleRomFileExt=".nds, .bin, .zip, .7z" - raConsoleId="78" - uncompressRom="false" - compressRom="false" -} - -PlatformColecoVision () { - platformName="ColecoVision" - platformArchiveContentsUrl="https://archive.org/download/retroachievements_collection_v5/ColecoVision/" - downloadExtension="zip" - platformFolder="colecovision" - consoleRomFileExt=".bin, .col, .rom, .zip, .7z" - raConsoleId="44" - uncompressRom="false" - compressRom="false" -} - -PlatformIntellivision () { - platformName="Intellivision" - platformArchiveContentsUrl="https://archive.org/download/retroachievements_collection_v5/Intellivision/" - downloadExtension="zip" - platformFolder="intellivision" - consoleRomFileExt=".int, .bin, .rom, .zip, .7z" - raConsoleId="45" - uncompressRom="false" - compressRom="false" -} - -PlatformNeoGeoPocket () { - platformName="Neo Geo Pocket" - platformArchiveContentsUrl="https://archive.org/download/retroachievements_collection_v5/Neo%20Geo%20Pocket/" - downloadExtension="zip" - platformFolder="ngp" - consoleRomFileExt=".ngp, .zip, .7z" - raConsoleId="14" - uncompressRom="false" - compressRom="false" -} - -PlatformNintendoWASM-4 () { - platformName="WASM-4" - platformArchiveContentsUrl="https://archive.org/download/retroachievements_collection_v5/WASM-4/" - downloadExtension="zip" - platformFolder="wasm4" - consoleRomFileExt=".wasm" - raConsoleId="72" - uncompressRom="false" - compressRom="false" -} - -PlatformNintendoChannelF () { - platformName="Fairchild Channel F" - platformArchiveContentsUrl="https://archive.org/download/retroachievements_collection_v5/Fairchild%20Channel%20F/" - downloadExtension="zip" - platformFolder="channelf" - consoleRomFileExt=".zip, .rom, .bin, .chf" - raConsoleId="57" - uncompressRom="false" - compressRom="false" -} - -DownloadRomCountSummary -log "######################################" -log "Processing platforms..." -platform="" -platformsToProcessNumber=0 -IFS=',' read -r -a filters <<< "$platforms" -for platform in "${filters[@]}" -do - platformToProcessNumber=$(( $platformToProcessNumber + 1 )) +# Loop Script +for (( ; ; )); do + let i++ + logfileSetup + echo "Script starting..." 2>&1 | tee -a /config/$scriptName.log + DownloadRomCountSummary + DownloadRoms + DownloadRomCountSummary + echo "Script sleeping for $downloadScriptInterval..." 2>&1 | tee -a /config/$scriptName.log + DownloadRomCountSummary + sleep $downloadScriptInterval done - -platform="" -processNumber=0 -IFS=',' read -r -a filters <<< "$platforms" -for platform in "${filters[@]}" -do - processNumber=$(( $processNumber + 1 )) - PlatformSelection - log "$processNumber/$platformToProcessNumber :: $platformName :: Starting..." - log "$processNumber/$platformToProcessNumber :: $platformName :: Finding ROMS..." - CreatePlatformRomList "$platformArchiveContentsUrl" - outputdir="$romPath/$platformFolder" - - romlist=$(cat /config/romlist) - romListCount=$(echo "$romlist" | wc -l) - log "$processNumber/$platformToProcessNumber :: $platformName :: $romListCount ROMS Found!" - romProcessNumber=0 - echo "$romlist" | while read -r rom; do - - romProcessNumber=$(( $romProcessNumber + 1 )) - archiveContentsUrl="$rom/" - #echo "$rom" - archiveUrl="$(wget -qO- "$archiveContentsUrl" | grep -i ".zip" | grep -io ' /config/romfilelist - romfiles="$(cat /config/romfilelist | awk '{ print length, $0 }' | sort -n | cut -d" " -f2-)" - #echo $romfiles - - # 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\ - - 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)" - filteredUsa3Roms="$(echo "$romfiles" | grep -i "%20%28UE%29" | head -n 1)" - filteredUsa3Romscount="$(echo "$romfiles" | grep -i "%20%28UE%29" | head -n 1 | wc -l)" - filteredEuropeRoms="$(echo "$romfiles" | grep -i "%20%28E%29" | head -n 1)" - filteredEuropeRomscount="$(echo "$romfiles" | grep -i "%20%28E%29" | head -n 1 | wc -l)" - filteredEurope2Roms="$(echo "$romfiles" | grep -i "%20%28Europe%29" | head -n 1)" - filteredEurope2Romscount="$(echo "$romfiles" | grep -i "%20%28Europe%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)" - filteredWorld2Roms="$(echo "$romfiles" | grep -i "%20%28World%29" | head -n 1)" - filteredWorld2Romscount="$(echo "$romfiles" | grep -i "%20%28World%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)" - filteredJapan2Roms="$(echo "$romfiles" | grep -i "%20%28Japan%29" | head -n 1)" - filteredJapan2Romscount="$(echo "$romfiles" | grep -i "%20%28Japan%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")" - romUrl="" - if echo "$subFolder" | grep "~" | read; then - subFolder="/$(echo "$subFolder" | cut -d "~" -f 2)/" - else - subFolder="/" - fi - - if [ ! -d "${outputdir}${subFolder}" ]; then - log "$processNumber/$platformToProcessNumber :: $platformName :: $romProcessNumber/$romListCount :: Creating \"${subFolder}\" folder... " - mkdir -p "${outputdir}${subFolder}" - chmod 777 "${outputdir}${subFolder}" - fi - - log "$processNumber/$platformToProcessNumber :: $platformName :: $romProcessNumber/$romListCount :: Searching Archive URL ROM Folder" - - if [ $filteredUsaRomscount -eq 1 ]; then - fileName="$(basename "$filteredUsaRoms")" - fileName="$(UrlDecode "$fileName")" - romUrl="$filteredUsaRoms" - log "$processNumber/$platformToProcessNumber :: $platformName :: $romProcessNumber/$romListCount :: USA (U) ROM FOUND ($fileName)" - elif [ $filteredUsa2Romscount -eq 1 ]; then - fileName="$(basename "$filteredUsa2Roms")" - fileName="$(UrlDecode "$fileName")" - romUrl="$filteredUsa2Roms" - log "$processNumber/$platformToProcessNumber :: $platformName :: $romProcessNumber/$romListCount :: USA (USA) ROM FOUND ($fileName)" - elif [ $filteredUsa3Romscount -eq 1 ]; then - fileName="$(basename "$filteredUsa3Roms")" - fileName="$(UrlDecode "$fileName")" - romUrl="$filteredUsa3Roms" - log "$processNumber/$platformToProcessNumber :: $platformName :: $romProcessNumber/$romListCount :: USA (USA) ROM FOUND ($fileName)" - elif [ $filteredEuropeRomscount -eq 1 ]; then - fileName="$(basename "$filteredEuropeRoms")" - fileName="$(UrlDecode "$fileName")" - romUrl="$filteredEuropeRoms" - log "$processNumber/$platformToProcessNumber :: $platformName :: $romProcessNumber/$romListCount :: EUROPE ROM FOUND ($fileName)" - elif [ $filteredEurope2Romscount -eq 1 ]; then - fileName="$(basename "$filteredEurope2Roms")" - fileName="$(UrlDecode "$fileName")" - romUrl="$filteredEurope2Roms" - log "$processNumber/$platformToProcessNumber :: $platformName :: $romProcessNumber/$romListCount :: EUROPE ROM FOUND ($fileName)" - elif [ $filteredWorldRomscount -eq 1 ]; then - fileName="$(basename "$filteredWorldRoms")" - fileName="$(UrlDecode "$fileName")" - romUrl="$filteredWorldRoms" - log "$processNumber/$platformToProcessNumber :: $platformName :: $romProcessNumber/$romListCount :: WORLD ROM FOUND ($fileName)" - elif [ $filteredWorld2Romscount -eq 1 ]; then - fileName="$(basename "$filteredWorld2Roms")" - fileName="$(UrlDecode "$fileName")" - romUrl="$filteredWorld2Roms" - log "$processNumber/$platformToProcessNumber :: $platformName :: $romProcessNumber/$romListCount :: WORLD ROM FOUND ($fileName)" - elif [ $filteredJapanRomscount -eq 1 ]; then - fileName="$(basename "$filteredJapanRoms")" - fileName="$(UrlDecode "$fileName")" - romUrl="$filteredJapanRoms" - log "$processNumber/$platformToProcessNumber :: $platformName :: $romProcessNumber/$romListCount :: JAPAN ROM FOUND ($fileName)" - elif [ $filteredJapan2Romscount -eq 1 ]; then - fileName="$(basename "$filteredJapan2Roms")" - fileName="$(UrlDecode "$fileName")" - romUrl="$filteredJapan2Roms" - log "$processNumber/$platformToProcessNumber :: $platformName :: $romProcessNumber/$romListCount :: JAPAN ROM FOUND ($fileName)" - elif [ $filteredOtherRomscount -eq 1 ]; then - fileName="$(basename "$filteredOtherRoms")" - fileName="$(UrlDecode "$fileName")" - romUrl="$filteredOtherRoms" - if [ ! -z "$fileName" ]; then - log "$processNumber/$platformToProcessNumber :: $platformName :: $romProcessNumber/$romListCount :: OTHER ROM FOUND ($fileName)" - fi - fi - - if [ -z "$fileName" ]; then - log "$processNumber/$platformToProcessNumber :: $platformName :: $romProcessNumber/$romListCount :: ERROR :: No Filtered Roms Found ($archiveContentsUrl)..." - continue - fi - - # verify download - if [ -f "${outputdir}${subFolder}${fileName}" ]; then - DownloadFileVerification "${outputdir}${subFolder}${fileName}" - fi - - # download file - if [ ! -f "${outputdir}${subFolder}${fileName}" ]; then - log "$processNumber/$platformToProcessNumber :: $platformName :: $romProcessNumber/$romListCount :: ${fileName} :: ROM downloading to \"${outputdir}${subFolder}\"..." - #wget "$romUrl" -O "${outputdir}${subFolder}${fileName}" - DownloadFile "$romUrl" "${outputdir}${subFolder}${fileName}" "$concurrentConnectionCount" - - # verify download - if [ -f "${outputdir}${subFolder}${fileName}" ]; then - DownloadFileVerification "${outputdir}${subFolder}${fileName}" - fi - else - log "$processNumber/$platformToProcessNumber :: $platformName :: $romProcessNumber/$romListCount :: ${fileName} :: ROM previously downloaded..." - fi - - # set permisions - if [ -f "${outputdir}${subFolder}${fileName}" ]; then - log "$processNumber/$platformToProcessNumber :: $platformName :: $romProcessNumber/$romListCount :: ${fileName} :: Setting Permissions to 666" - chmod 666 "${outputdir}${subFolder}${fileName}" - fi - - if [ -f /config/romfilelist ]; then - rm /config/romfilelist - fi - done - downloadedRomCount=$(find "$outputdir" -type f | wc -l) - log "$processNumber/$platformToProcessNumber :: $platformName :: $downloadedRomCount ROMS Successfully Downloaded!!" -done - -DownloadRomCountSummary - exit