mirror of
https://github.com/aclist/dztui.git
synced 2024-12-29 13:52:03 +01:00
fix: wrong query port being returned
This commit is contained in:
parent
f1c1d65c28
commit
ac57770d87
1 changed files with 38 additions and 32 deletions
70
dzgui.sh
70
dzgui.sh
|
@ -682,7 +682,7 @@ history_table(){
|
||||||
|
|
||||||
ip_table(){
|
ip_table(){
|
||||||
while true; do
|
while true; do
|
||||||
sel=$(prepare_ip_list "$meta_file" | $steamsafe_zenity --width 1200 --height 800 --list --column=Name --column=IP --column=Players --column=Gametime --print-column=2 --separator=%% 2>/dev/null)
|
sel=$(prepare_ip_list "$meta_file" | $steamsafe_zenity --width 1200 --height 800 --text="Multiple maps found at this server. Select map from the list below" --title="DZGUI" --list --column=Name --column=IP --column=Players --column=Gametime --column=Qport --print-column=2 --separator=%% 2>/dev/null)
|
||||||
if [[ $? -eq 1 ]]; then
|
if [[ $? -eq 1 ]]; then
|
||||||
return_from_table=1
|
return_from_table=1
|
||||||
return
|
return
|
||||||
|
@ -701,20 +701,13 @@ ip_table(){
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
fetch_ip_metadata(){
|
fetch_ip_metadata(){
|
||||||
local meta_file=$(mktemp)
|
meta_file=$(mktemp)
|
||||||
source $config_file
|
source $config_file
|
||||||
url="https://api.steampowered.com/IGameServersService/GetServerList/v1/?filter=\appid\221100\gameaddr\\$ip&key=$steam_api"
|
url="https://api.steampowered.com/IGameServersService/GetServerList/v1/?filter=\appid\221100\gameaddr\\$ip&key=$steam_api"
|
||||||
curl -Ls "$url" > $meta_file
|
curl -Ls "$url" > $meta_file
|
||||||
json=$(mktemp)
|
json=$(mktemp)
|
||||||
< $meta_file jq '.response' > $json
|
< $meta_file jq '.response' > $json
|
||||||
res=$(< $meta_file jq -er '.response.servers[]' 2>/dev/null)
|
res=$(< $meta_file jq -er '.response.servers[]' 2>/dev/null)
|
||||||
if [[ ! $? -eq 0 ]]; then
|
|
||||||
warn "[ERROR] 96: Failed to retrieve IP metadata. Check IP or API key and try again."
|
|
||||||
echo "[DZGUI] 96: Failed to retrieve IP metadata"
|
|
||||||
|
|
||||||
else
|
|
||||||
ip_table
|
|
||||||
fi
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#TODO: local servers
|
#TODO: local servers
|
||||||
|
@ -773,6 +766,12 @@ connect_by_ip(){
|
||||||
[[ $? -eq 1 ]] && return
|
[[ $? -eq 1 ]] && return
|
||||||
if validate_ip "$ip"; then
|
if validate_ip "$ip"; then
|
||||||
fetch_ip_metadata
|
fetch_ip_metadata
|
||||||
|
if [[ ! $? -eq 0 ]]; then
|
||||||
|
warn "[ERROR] 96: Failed to retrieve IP metadata. Check IP or API key and try again."
|
||||||
|
echo "[DZGUI] 96: Failed to retrieve IP metadata"
|
||||||
|
else
|
||||||
|
ip_table
|
||||||
|
fi
|
||||||
else
|
else
|
||||||
continue
|
continue
|
||||||
fi
|
fi
|
||||||
|
@ -901,27 +900,37 @@ delete_by_id(){
|
||||||
source $config_file
|
source $config_file
|
||||||
}
|
}
|
||||||
delete_or_connect(){
|
delete_or_connect(){
|
||||||
if [[ $delete -eq 1 ]]; then
|
if [[ $delete -eq 1 ]]; then
|
||||||
server_name=$(echo "$sel" | awk -F"%%" '{print $1}')
|
server_name=$(echo "$sel" | awk -F"%%" '{print $1}')
|
||||||
server_id=$(echo "$sel" | awk -F"%%" '{print $2}')
|
server_id=$(echo "$sel" | awk -F"%%" '{print $2}')
|
||||||
$steamsafe_zenity --question --text="Delete this server? \n$server_name" --title=DZGUI --width=500 2>/dev/null
|
$steamsafe_zenity --question --text="Delete this server? \n$server_name" --title=DZGUI --width=500 2>/dev/null
|
||||||
if [[ $? -eq 0 ]]; then
|
if [[ $? -eq 0 ]]; then
|
||||||
delete_by_id $server_id
|
delete_by_id $server_id
|
||||||
fi
|
|
||||||
source $config_file
|
|
||||||
unset delete
|
|
||||||
else
|
|
||||||
#hotfix for bug #36
|
|
||||||
local lookup_ip=$(echo "$sel" | awk -F%% '{print $1}')
|
|
||||||
local lookup_port=$(echo "$lookup_ip" | awk -F: '{print $2}')
|
|
||||||
source $config_file
|
|
||||||
url="https://api.steampowered.com/IGameServersService/GetServerList/v1/?filter=\appid\221100\gameaddr\\$lookup_ip&key=$steam_api"
|
|
||||||
local qport_res=$(curl -Ls "$url" | jq -r --arg port $lookup_port '.response.servers[]|select(.gameport==($port|tonumber)).addr')
|
|
||||||
local qport=$(echo "$qport_res" | awk -F: '{print $2}')
|
|
||||||
qport_list="$lookup_ip%%$qport"
|
|
||||||
connect "$qport_list" "ip"
|
|
||||||
|
|
||||||
fi
|
fi
|
||||||
|
source $config_file
|
||||||
|
unset delete
|
||||||
|
else
|
||||||
|
local lookup_ip=$(echo "$sel" | awk -F: '{print $1}')
|
||||||
|
ip=$lookup_ip
|
||||||
|
fetch_ip_metadata
|
||||||
|
if [[ ! $? -eq 0 ]]; then
|
||||||
|
warn "[ERROR] 96: Failed to retrieve IP metadata. Check IP or API key and try again."
|
||||||
|
echo "[DZGUI] 96: Failed to retrieve IP metadata"
|
||||||
|
else
|
||||||
|
local jad=$(echo "$res" | jq -r '.addr')
|
||||||
|
if [[ $(<<< "$jad" wc -l ) -gt 1 ]]; then
|
||||||
|
ip_table
|
||||||
|
elif [[ $(<<< "$jad" wc -l ) -eq 1 ]]; then
|
||||||
|
local gameport="$(echo "$res" | jq -r '.gameport')"
|
||||||
|
local ip="$(echo "$jad" | awk -F: '{print $1}')"
|
||||||
|
local qport=$(echo "$jad" | awk -F: '{print $2}')
|
||||||
|
local sa_ip=$(echo "$ip:$gameport%%$qport")
|
||||||
|
qport_list="$sa_ip"
|
||||||
|
local sel="$ip:$gameport%%$qport"
|
||||||
|
connect "$sel" "ip"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
populate(){
|
populate(){
|
||||||
while true; do
|
while true; do
|
||||||
|
@ -1444,9 +1453,6 @@ mods_disk_size(){
|
||||||
main_menu(){
|
main_menu(){
|
||||||
print_news
|
print_news
|
||||||
set_mode
|
set_mode
|
||||||
# if [[ -n $fav ]]; then
|
|
||||||
# items[8]=" Change favorite server"
|
|
||||||
# fi
|
|
||||||
while true; do
|
while true; do
|
||||||
set_header ${FUNCNAME[0]}
|
set_header ${FUNCNAME[0]}
|
||||||
rc=$?
|
rc=$?
|
||||||
|
|
Loading…
Reference in a new issue