mirror of
https://github.com/aclist/dztui.git
synced 2025-07-18 13:38:48 +02:00
fix: fallback logic for network traversal (#128)
This commit is contained in:
parent
523ff2c32d
commit
3e1170ffd8
3 changed files with 44 additions and 4 deletions
helpers
|
@ -285,7 +285,15 @@ a2s(){
|
|||
local qport="$2"
|
||||
local mode="$3"
|
||||
logger INFO "Querying '$ip:$qport' with mode '$mode'"
|
||||
python3 "$query_helper" "$ip" "$qport" "$mode"
|
||||
local res
|
||||
res=$(python3 "$query_helper" "$ip" "$qport" "$mode")
|
||||
if [[ $? -eq 1 ]]; then
|
||||
res=$(try_fallback "$ip" "$qport" "$mode")
|
||||
if [[ $? -eq 1 ]]; then
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
printf "%s\n" "$res"
|
||||
}
|
||||
is_in_favs(){
|
||||
shift
|
||||
|
@ -1064,6 +1072,34 @@ update_symlinks(){
|
|||
legacy_symlinks
|
||||
symlinks
|
||||
}
|
||||
try_fallback(){
|
||||
local ip="$1"
|
||||
local qport="$2"
|
||||
local mode="$3"
|
||||
if [[ $mode != "rules" ]] && [[ $mode != "names" ]]; then
|
||||
return 1
|
||||
fi
|
||||
[[ -z $api_key ]] && return 1
|
||||
local res=$(curl -s "$bm_api" -H "Authorization: Bearer "$api_key"" \
|
||||
-G -d "filter[game]=$game" \
|
||||
-d "filter[search]=%22${ip}:${qport}%22")
|
||||
[[ -z $res ]] && return 1
|
||||
local len=$(<<< "$res" jq '.data|length')
|
||||
[[ $len -eq 0 ]] && return 1
|
||||
local record=$(<<< "$res" jq -r '
|
||||
.data[].attributes
|
||||
|select(.status != "removed").details')
|
||||
case "$mode" in
|
||||
"rules")
|
||||
<<< "$record" jq '.modIds[]'
|
||||
;;
|
||||
"names")
|
||||
<<< "$record" jq '
|
||||
[.modNames, .modIds] as [$n, $i]
|
||||
| {names: $n, ids: $i}'
|
||||
;;
|
||||
esac
|
||||
}
|
||||
try_connect(){
|
||||
local record="$1"
|
||||
local ip=$(<<< $record awk -F: '{print $1}')
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue