Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- # Author: drpaneas@gmail.com
- 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)}')
- 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&action=settings§ion=%23&system=$console&v_us=1"
- else
- letterpage="https://vimm.net/vault/?p=list&action=settings§ion=$letter&system=$console&v_us=1"
- fi
- echo "$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 "vault/NES\|vault/$console"); do
- # Construct the gamepage URL
- gamepage="$baseURL$gamepage"
- skipit=false
- retries=0
- # Find the mediaID
- while true; do
- id=$(curl -s "$gamepage" | grep 'fileSize\[' | head -n 1 | cut -d \[ -f2 | cut -d \] -f1)
- if [ -z "$id" ]; then
- echo "\$id is empty. Retrying ...$retries"
- ((retries = retries + 1))
- if [[ "$retries" -gt 10 ]]; then
- skipit=true
- retries=0
- break
- fi
- else
- echo "\$id is $id"
- break
- fi
- done
- if [ "$skipit" = true ]; then
- echo 'Giving up on this one...'
- continue
- fi
- # Construct URL
- URL="https://download.vimm.net/download/?mediaId=$id"
- echo "Visiting $URL"
- # Check there is 404, so skip it
- skipit=false
- retries=0
- # Find the filename
- while true; do
- filename=$(curl -s -D - \
- -H "Referer: https://vimm.net/" \
- -H "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36" \
- "$URL" | grep "Content-Disposition" | awk -F '=' '{print substr($2,2,length($2)-3)}')
- if [ -z "$filename" ]; then
- echo "\$filename is empty. Retrying ... $retries"
- ((retries = retries + 1))
- if [[ "$retries" -gt 10 ]]; then
- skipit=true
- retries=0
- break
- fi
- else
- echo "\$filename is $filename"
- break
- fi
- done
- if [ "$skipit" = true ]; then
- echo 'Giving up on this one...'
- continue
- fi
- # Download it
- while true; do
- curl -s \
- -H "Referer: https://vimm.net/" \
- -H "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36" \
- "$URL" --output "$filename"
- # Test the file
- if test -f "$filename"; then
- echo "$filename has been downloaded"
- # Check if thefile is zip
- if file "$filename" | grep 'Zip archive data\|7-zip archive data' &>/dev/null; then
- echo "$filename is a valid Zip archive"
- break
- else
- echo "$filename is not a Zip archive. Retrying ..."
- fi
- else
- echo "$filename has not been downloaded. Retrying ..."
- fi
- done
- echo "---"
- done
- done
Add Comment
Please, Sign In to add comment