RetroDECK/functions/cheevos_show.sh

47 lines
2 KiB
Bash
Executable file

#!/bin/bash
# Configura il tuo cheevos_username e la tua API key di RetroAchievements (sostituisci con i tuoi dati reali)
cheevos_username="Xargon"
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=10&a=2"
}
# Ottieni i dati degli achievements
response=$(get_achievements)
# Verifica che la risposta non sia vuota o null
if [ -z "$response" ] || [ "$response" == "null" ]; then
echo "Error: empty reply from the API."
exit 1
fi
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 \
--title="$USERNAME's RetroAchievements" \
--text="Here are your latest RetroAchievements:" \
--column="" --column="Game" --column="Achievement" --column="Description" \
--width=1280 --height=800 \
"${achievement_list[@]}"