diff --git a/data_from_portwine/scripts/get_images.sh b/data_from_portwine/scripts/get_images.sh
index 4a4be5d7..818551e5 100755
--- a/data_from_portwine/scripts/get_images.sh
+++ b/data_from_portwine/scripts/get_images.sh
@@ -2,18 +2,20 @@
 # AppName= AppId= SteamAppId= SteamGridDBId= SGGRIDDIR= ./get_images.sh
 
 if [[ -z "${SGDBAPIKEY}" || -z "${BASESTEAMGRIDDBAPI}" ]]; then
-	source "${PORT_SCRIPTS_PATH:-$(dirname "$(readlink --canonicalize-existing "$0")")}/var"
+	source "${PORT_SCRIPTS_PATH:-$(dirname "${BASH_SOURCE[0]}")}/var"
 fi
 
-function downloadImage {
+downloadImage() {
 	local path="${SGGRIDDIR:-${PWD}}"
 	local url="$1"
-	local files="$2"
+	local files=("$2")
 	local cur='';
 	if [[ -n "${url}" && -n "${files}" ]]; then
 		for file in ${files[@]}; do
 			if [[ -z "$cur" ]]; then
-				curl -Lf# -o "${path}/${file}" "${url}"
+				if ! curl -Lf# -o "${path}/${file}" "${url}"; then
+					return 1
+				fi
 			else
 				cp "${path}/${cur}" "${path}/${file}"
 			fi
@@ -22,40 +24,59 @@ function downloadImage {
 	fi
 }
 
-function downloadImageSteam {
-	downloadImage "https://cdn.cloudflare.steamstatic.com/steam/apps/$1" "$2"
-}
-
-function downloadImageSteamgriddb {
-	SGDBIMGRES=$(curl -Ls -H "Authorization: Bearer ${SGDBAPIKEY}" "${BASESTEAMGRIDDBAPI}/$1&limit=1")
-	if jq -e ".success == true and (.data | length > 0)" <<< "${SGDBIMGRES}" > /dev/null 2>&1; then
-		SGDBIMGURL=$(jq -r '.data[0].url' <<< "${SGDBIMGRES}")
-		downloadImage "${SGDBIMGURL}" "$2"
+downloadImageSteam() {
+	if [[ -n "${SteamAppId}" ]]; then
+		downloadImage "https://cdn.cloudflare.steamstatic.com/steam/apps/$1" "$2"
+	else
+		return 1
 	fi
 }
 
-if [[ -z "${SteamAppId}" && -z "${SteamGridDBId}" && -n "${AppName}" && -n "${SGDBAPIKEY}" ]]; then
+downloadImageSteamGridDB() {
+	if [[ -n "${SteamGridDBId}" && -n "${SGDBAPIKEY}" ]]; then
+		SGDBIMGAPI="${BASESTEAMGRIDDBAPI}/$1?limit=1"
+		[[ -n "$3" ]] && SGDBIMGAPI+="&$3"
+		[[ -n "$4" ]] && SGDBIMGAPI+="&$4"
+		SGDBIMGRES=$(curl -Ls -H "Authorization: Bearer ${SGDBAPIKEY}" "${SGDBIMGAPI}")
+		if jq -e ".success == true and (.data | length > 0)" <<< "${SGDBIMGRES}" > /dev/null 2>&1; then
+			SGDBIMGURL=$(jq -r '.data[0].url' <<< "${SGDBIMGRES}")
+			downloadImage "${SGDBIMGURL}" "$2"
+		elif [[ -n "$3" ]]; then
+			downloadImageSteamGridDB "$1" "$2" "" "$4"
+		else
+			return 1
+		fi
+	else
+		return 1
+	fi
+}
+
+getSteamId() {
+	SRES=$(curl -Ls -e "https://www.steamgriddb.com/game/${SteamGridDBId}" "https://www.steamgriddb.com/api/public/game/${SteamGridDBId}")
+	if jq -e ".success == true" <<< "${SRES}" > /dev/null 2>&1; then
+		export SteamAppId="$(jq -r '.data.platforms.steam.id' <<< "${SRES}")"
+	fi
+}
+
+getSteamGridDBId() {
 	SGDBRES=$(curl -Ls -H "Authorization: Bearer ${SGDBAPIKEY}" "${BASESTEAMGRIDDBAPI}/search/autocomplete/${AppName// /_}")
 	if jq -e ".success == true and (.data | length > 0)" <<< "${SGDBRES}" > /dev/null 2>&1; then
 		export SteamGridDBId="$(jq '.data[0].id' <<< "${SGDBRES}")"
 		if jq -e '.data[0].types | contains(["steam"])' <<< "${SGDBRES}" > /dev/null; then
-			SRES=$(curl -Ls -e "https://www.steamgriddb.com/game/${SteamGridDBId}" "https://www.steamgriddb.com/api/public/game/${SteamGridDBId}")
-			if jq -e ".success == true" <<< "${SRES}" > /dev/null 2>&1; then
-				export SteamAppId="$(jq -r '.data.platforms.steam.id' <<< "${SRES}")"
-			fi
+			getSteamId
 		fi
 	fi
+}
+
+if [[ -z "${SteamAppId}" && -z "${SteamGridDBId}" && -n "${AppName}" && -n "${SGDBAPIKEY}" ]]; then
+	getSteamGridDBId
 fi
 
-if [[ -n "${SteamAppId}" ]]; then
-	downloadImageSteam "${SteamAppId}/header.jpg" "${AppId:-0}.jpg"
-	downloadImageSteam "${SteamAppId}/library_600x900_2x.jpg" "${AppId:-0}p.jpg"
-	downloadImageSteam "${SteamAppId}/library_hero.jpg" "${AppId:-0}_hero.jpg"
-	downloadImageSteam "${SteamAppId}/logo.png" "${AppId:-0}_logo.png"
-elif [[ -n "${SteamGridDBId}" && -n "${SGDBAPIKEY}" ]]; then
-	downloadImageSteamgriddb "grids/game/${SteamGridDBId}?mimes=image/jpeg" "${AppId:-0}.jpg ${AppId:-0}p.jpg"
-	downloadImageSteamgriddb "heroes/game/${SteamGridDBId}?mimes=image/jpeg" "${AppId:-0}_hero.jpg"
-	downloadImageSteamgriddb "logos/game/${SteamGridDBId}?mimes=image/png" "${AppId:-0}_logo.png"
+if [[ -n "${SteamAppId}" ]] || [[ -n "${SteamGridDBId}" && -n "${SGDBAPIKEY}" ]]; then
+	downloadImageSteam "${SteamAppId}/header.jpg" "${AppId:-0}.jpg" || downloadImageSteamGridDB "grids/game/${SteamGridDBId}" "${AppId:-0}.jpg" "mimes=image/jpeg" "dimensions=460x215,920x430" || echo "Failed to load header.jpg"
+	downloadImageSteam "${SteamAppId}/library_600x900_2x.jpg" "${AppId:-0}p.jpg" || downloadImageSteamGridDB "grids/game/${SteamGridDBId}" "${AppId:-0}p.jpg" "mimes=image/jpeg" "dimensions=600x900,660x930" || echo "Failed to load library_600x900_2x.jpg"
+	downloadImageSteam "${SteamAppId}/library_hero.jpg" "${AppId:-0}_hero.jpg" || downloadImageSteamGridDB "heroes/game/${SteamGridDBId}" "${AppId:-0}_hero.jpg" "mimes=image/jpeg" || echo "Failed to load library_hero.jpg"
+	downloadImageSteam "${SteamAppId}/logo.png" "${AppId:-0}_logo.png" || downloadImageSteamGridDB "logos/game/${SteamGridDBId}" "${AppId:-0}_logo.png" "mimes=image/png" || echo "Failed to load logo.png"
 else
 	echo "Game is not found"
 fi