From 9b760eec66f3c144baf047f8c4043e1234f36d5b Mon Sep 17 00:00:00 2001 From: port19 Date: Sat, 5 Sep 2026 15:36:14 +0200 Subject: [PATCH] feat: http error codes upon connection errors Co-authored-by: DavidsonRafaelK Co-authored-by: Claude Opus 5 Co-authored-by: GPT 6 Astra --- ani-cli | 27 +++++++++++++++++++-------- 1 file changed, 19 insertions(+), 8 deletions(-) diff --git a/ani-cli b/ani-cli index fd0df972a..57f03100b 100755 --- a/ani-cli +++ b/ani-cli @@ -1,6 +1,6 @@ #!/bin/sh -version_number="5.0.3" +version_number="5.0.4" # UI @@ -150,13 +150,23 @@ cleanup() { #shellcheck disable=SC2086 anidb_curl() { - $curl_exe -sL -A "$agent" --max-time 10 $cipher_flag "$@" + _response="$($curl_exe -sL -A "$agent" --max-time 10 $cipher_flag -w ' %{http_code}' "$@")" || + die "Connection error: could not fetch $1 (curl exit $?)" + _http_code=${_response##* } + _response=${_response% *} + case "$_http_code" in + 2??) ;; + *) printf "%s" "$_response" | grep -qi "Just a moment" || die "Request failed: HTTP $_http_code from $1" ;; + esac + printf "%s" "$_response" } # search the query and give results. format is (id \t name) anidb_search() { #shellcheck disable=SC2059 - _page="$(anidb_curl "$(printf "$search_api" "$1")" | tr '\n' ' ' | sed 's|/dev/null && result=$(printf "%s" "$anime_list" | sed -n "${index}p") [ -z "$index" ] && result=$(printf "%s" "$anime_list" | nl -w 2 | sed 's/^[[:space:]]//' | nth "Select anime: ") @@ -561,7 +572,7 @@ case "$source" in anime_title="$(printf "%s" "$result" | cut -f 2)" anime_id="$(printf "%s" "$result" | cut -f 1)" anidb_desc "$anime_id" || true - episode_maps="$(anidb_episodes "$anime_id")" + episode_maps="$(anidb_episodes "$anime_id")" || exit 1 ep_list="$(printf '%s' "$episode_maps" | cut -f 2)" [ -z "$ep_no" ] && ep_no=$(printf "%s" "$ep_list" | nth "Select episode: " "$menu_multi_flag") [ -z "$ep_no" ] && die "Invalid episode selection" @@ -590,7 +601,7 @@ while cmd=$(printf "next\nreplay\nprevious\nselect$seasons_option\nchange_qualit anime_title="$(printf "%s" "$new_anime" | cut -f 2)" anime_id="$(printf "%s" "$new_anime" | cut -f 1)" anidb_desc "$anime_id" || true - episode_maps="$(anidb_episodes "$anime_id")" + episode_maps="$(anidb_episodes "$anime_id")" || exit 1 ep_list="$(printf '%s' "$episode_maps" | cut -f 2)" ep_no=$(printf "%s" "$ep_list" | nth "Select episode: " "$menu_multi_flag") [ -z "$ep_no" ] && die "Invalid episode selection"