function peers::format_status() { local name="${1:-}" public_key="${2:-}" is_blocked="${3:-false}" local is_restricted="${4:-false}" handshake_ts="${5:-0}" last_ts="${6:-}" local connected=false modifier="" color if [[ "$is_blocked" == "true" ]]; then local now attempt_ts diff now=$(date +%s) attempt_ts=$(json::iso_to_ts "$last_ts") diff=$(( now - attempt_ts )) (( diff < "$(config::handshake_time_sec)" )) && connected=true modifier=" (blocked)" color="\033[1;31m" elif [[ "$is_restricted" == "true" ]]; then local now diff now=$(date +%s) diff=$(( now - handshake_ts )) (( diff < "$(config::handshake_time_sec)" )) && connected=true modifier=" (restricted)" color="\033[1;33m" else local now diff now=$(date +%s) diff=$(( now - handshake_ts )) (( diff < "$(config::handshake_time_sec)" )) && connected=true if $connected; then color="\033[1;32m"; else color="\033[0;37m"; fi fi local conn_str $connected && conn_str="online" || conn_str="offline" echo -e "${color}${conn_str}${modifier}\033[0m" } function peers::format_last_seen() { local name="${1:-}" pubkey="${2:-}" is_blocked="${3:-false}" local last_ts="${4:-}" last_evt="${5:-}" handshake_ts="${6:-0}" if [[ "$is_blocked" == "true" ]]; then if [[ -n "$last_ts" && "$last_ts" != "0" && "$last_ts" != "null" ]]; then local formatted formatted=$(fmt::datetime_iso "$last_ts") echo "${formatted} (dropped)" else echo "—" fi else if [[ -z "$handshake_ts" || "$handshake_ts" == "0" ]]; then echo "—" else local formatted formatted=$(fmt::datetime "$handshake_ts") echo "${formatted} (handshake)" fi fi }