From 4f968d38432c25be95ce1c83abbc095fd3e430c1 Mon Sep 17 00:00:00 2001 From: XargonWan Date: Fri, 19 Jul 2024 00:33:09 +0900 Subject: [PATCH] CHEEVOS: enhanced script to handle multiple games --- functions/cheevos_show.sh | 26 ++++++++++++++++++-------- 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/functions/cheevos_show.sh b/functions/cheevos_show.sh index 1bbddf13..93045deb 100755 --- a/functions/cheevos_show.sh +++ b/functions/cheevos_show.sh @@ -6,16 +6,11 @@ API_KEY="" # Funzione per ottenere i retroachievements get_achievements() { - curl -s "https://retroachievements.org/API/API_GetUserSummary.php?z=$cheevos_username&u=$cheevos_username&y=$API_KEY&g=1&a=2" + curl -s "https://retroachievements.org/API/API_GetUserSummary.php?z=$cheevos_username&u=$cheevos_username&y=$API_KEY&g=10&a=2" } # Ottieni i dati degli achievements response=$(get_achievements) -game_title=$(echo "$response" | jq -r '.RecentAchievements[][].GameTitle') -cheevos_badge="https://retroachievements.org/Badge/"$(echo "$response" | jq -r '.RecentAchievements[][].BadgeName')".png" -cheevos_title=$(echo "$response" | jq -r '.RecentAchievements[][].Title') -cheevos_desc=$(echo "$response" | jq -r '.RecentAchievements[][].Description') - # Verifica che la risposta non sia vuota o null if [ -z "$response" ] || [ "$response" == "null" ]; then @@ -23,10 +18,25 @@ if [ -z "$response" ] || [ "$response" == "null" ]; then exit 1 fi -# Estrai e formatta i dati per Zenity -achievement_list=("" "$game_title" "$cheevos_title" "$cheevos_desc") +game_titles=$(echo "$response" | jq -r '.RecentAchievements[][].GameTitle') +cheevos_badges=$(echo "$response" | jq -r '.RecentAchievements[][].BadgeName') +#cheevos_badges="https://retroachievements.org/Badge/"$(echo "$response" | jq -r '.RecentAchievements[][].BadgeName')".png" +cheevos_titles=$(echo "$response" | jq -r '.RecentAchievements[][].Title') +cheevos_descs=$(echo "$response" | jq -r '.RecentAchievements[][].Description') +IFS=$'\n' read -r -d '' -a game_title_array < <(printf '%s\0' "$game_titles") +IFS=$'\n' read -r -d '' -a cheevos_badge_array < <(printf '%s\0' "$cheevos_badges") +IFS=$'\n' read -r -d '' -a cheevos_title_array < <(printf '%s\0' "$cheevos_titles") +IFS=$'\n' read -r -d '' -a cheevos_desc_array < <(printf '%s\0' "$cheevos_descs") +# Costruisci l'elenco degli achievement +achievement_list=() +for i in "${!game_title_array[@]}"; do + achievement_list+=("\""https://retroachievements.org/Badge/"${cheevos_badge_array[i]}".png"\"") + achievement_list+=("\"${game_title_array[i]}\"") + achievement_list+=("\"${cheevos_title_array[i]}\"") + achievement_list+=("\"${cheevos_desc_array[i]}\"") +done # Mostra la lista in una finestra di dialogo Zenity zenity --list \