mirror of
https://github.com/aclist/dztui.git
synced 2024-12-29 13:52:03 +01:00
Improve distance algorithm
This commit is contained in:
parent
b92aa37eaf
commit
6a72fe1b68
1 changed files with 9 additions and 7 deletions
16
dzgui.sh
16
dzgui.sh
|
@ -888,12 +888,13 @@ choose_filters(){
|
||||||
}
|
}
|
||||||
get_dist(){
|
get_dist(){
|
||||||
local given_ip="$1"
|
local given_ip="$1"
|
||||||
local subnet="$(echo "$given_ip" | awk -F. '{OFS="."}{print $1,$2,$3}')"
|
local network="$(echo "$given_ip" | awk -F. '{OFS="."}{print $1"."$2}')"
|
||||||
local host="$(echo "$given_ip" | awk -F. '{print $4}')"
|
local binary=$(grep -E "^$network\." $geo_file)
|
||||||
local remote=$(grep -E "^$subnet\." "$geo_file" | awk -F[.,] -v var=$host '$4 < var {print $0}' \
|
local three=$(echo $given_ip | awk -F. '{print $3}')
|
||||||
| tail -n1 | awk -F, '{print $7,$8}')
|
local host=$(echo $given_ip | awk -F. '{print $4}')
|
||||||
local remote_lat=$(echo "$remote" | awk '{print $1}')
|
local res=$(echo "$binary" | awk -F[.,] -v three=$three -v host=$host '$3 <=three && $7 >= three{if($3>three || ($3==three && $4 > host) || $7 < three || ($7==three && $8 < host)){next}{print}}' | awk -F, '{print $7,$8}')
|
||||||
local remote_lon=$(echo "$remote" | awk '{print $2}')
|
local remote_lat=$(echo "$res" | awk '{print $1}')
|
||||||
|
local remote_lon=$(echo "$res" | awk '{print $2}')
|
||||||
if [[ -z $remote_lat ]]; then
|
if [[ -z $remote_lat ]]; then
|
||||||
local dist="Unknown"
|
local dist="Unknown"
|
||||||
echo "$dist"
|
echo "$dist"
|
||||||
|
@ -930,7 +931,8 @@ munge_servers(){
|
||||||
local addr=$(echo "$response" | jq -r '.[].addr' | awk -F: '{print $1}')
|
local addr=$(echo "$response" | jq -r '.[].addr' | awk -F: '{print $1}')
|
||||||
local gameport=$(echo "$response" | jq -r '.[].gameport')
|
local gameport=$(echo "$response" | jq -r '.[].gameport')
|
||||||
local qport=$(echo "$response" | jq -r '.[].addr' | awk -F: '{print $2}')
|
local qport=$(echo "$response" | jq -r '.[].addr' | awk -F: '{print $2}')
|
||||||
local name=$(echo "$response" | jq -r '.[].name')
|
#jq bug #1788, raw output cannot be used with ASCII
|
||||||
|
local name=$(echo "$response" | jq -a '.[].name' | sed 's/\\u[0-9]\{4\}//g;s/^"//;s/"$//')
|
||||||
local players=$(echo "$response" | jq -r '.[].players')
|
local players=$(echo "$response" | jq -r '.[].players')
|
||||||
local max=$(echo "$response" | jq -r '.[].max_players')
|
local max=$(echo "$response" | jq -r '.[].max_players')
|
||||||
local map=$(echo "$response" | jq -r '.[].map|ascii_downcase')
|
local map=$(echo "$response" | jq -r '.[].map|ascii_downcase')
|
||||||
|
|
Loading…
Reference in a new issue