#!/bin/bash if [ $# -eq 0 ]; then echo "No arguments supplied. Example: ./script.sh https://vimm.net/vault/GB" exit 1 fi arg="$1" console=$(echo "$arg" | awk -F '/' '{print $(NF)}') echo "$console" for letter in \# A B C D E F G H I J K L M N O P Q R S T U V W X Y Z; do # Construct letterpage if [ "$letter" = "#" ]; then letterpage="https://vimm.net/vault/?p=list&system=$console§ion=number" else letterpage="https://vimm.net/vault/$console/$letter" fi echo echo "$letter: $letterpage" echo "=======================" # Base URL (should be without trailing slash) baseURL="https://vimm.net" # find all gamepages in a letterpage for gamepage in $(curl -s "$letterpage" | grep 'a href="\/vault' | awk -F 'href="' '{print $2}' | cut -d '"' -f1 | grep -v '?p=' | grep -v "NES" | grep -v "$console" | grep -o '[[:digit:]]*'); do # Construct the gamepage URL gamepage="$baseURL/vault/$gamepage" skipit=false retries=1 # Find the mediaID for this specific game page while true; do echo "Looking for mediaID into: $gamepage" id=$(curl -s "$gamepage" | grep 'var media = {"ID":' | awk -F ':' '{ print $2}' | awk -F ',' '{print $1}') if [ -z "$id" ]; then echo "\$id is empty. Retrying ...$retries" ((retries = retries + 1)) # But ... if you re-tried 10 times already, then give up on this one if [[ "$retries" -gt 10 ]]; then skipit=true break fi else echo "FOUND! ID is: $id" break fi done # If you bailed out because the mediaID was not found, then proceed to the next gamepage if [ "$skipit" = true ]; then echo 'Giving up on this one...' echo "$id@$console@$gamepage" >>"$console.err" continue fi # Find Download URL skipit=false retries=1 while true; do echo "Looking for download URL" URL=$(curl -s "$gamepage" | grep '