From 1a9f6c189f696c99c9f44d3696555db8f0b30776 Mon Sep 17 00:00:00 2001 From: KeeganForelight Date: Fri, 13 Jan 2023 22:29:36 -0500 Subject: [PATCH] removed states --- client_weather.sh | 30 ++++++++++++++++++------------ 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/client_weather.sh b/client_weather.sh index ceab04b..eced61c 100755 --- a/client_weather.sh +++ b/client_weather.sh @@ -60,10 +60,10 @@ print_weather() { temp_icon=$(echo -e '\ufa04') fi # printing - printf '%s %.1f%s%d\ue373 in %s, %s\n' $icon $TEMPERATURE "$temp_icon" "$HUMIDITY" "$CITY" "$STATE" + printf '%s %.1f%s%d\ue373 in %s\n' $icon $TEMPERATURE "$temp_icon" "$HUMIDITY" "$CITY" else # default printing - printf "%.1f *$UNIT %d%% Humidity in %s, %s\n" $TEMPERATURE $HUMIDITY "$CITY" "$STATE" + printf "%.1f *$UNIT %d%% Humidity in %s\n" $TEMPERATURE $HUMIDITY "$CITY" fi # save before exiting @@ -74,6 +74,7 @@ check_expiration() { # checks if the info is expired if [[ $TIME -gt $EXPIRATION ]] ; then # expired + echo "expired" get_weather fi } @@ -81,9 +82,9 @@ check_expiration() { get_location() { # searching for user location - if [[ -n "$QUERY" ]] ; then + if [[ -n "$SEARCH" ]] ; then # search - RESULTS=$($WEATHER_CALL $QUERY | gojq "del(.[].local_names)") + RESULTS=$($WEATHER_CALL -s "$SEARCH" | gojq "del(.[].local_names)") NUM_RESULTS=$(echo "$RESULTS" | gojq '. | length') SELECTION=0 @@ -129,17 +130,22 @@ get_location() { LAT=$(echo "$RESULTS" | gojq ".[$SELECTION].lat") LON=$(echo "$RESULTS" | gojq ".[$SELECTION].lon") CITY=$(echo "$RESULTS" | gojq ".[$SELECTION].name" | tr -d '"') - STATE=$(echo "$RESULTS" | gojq ".[$SELECTION].state" | tr -d '"') + elif [[ -n "$ZIPCODE" ]] ; then + # searching for zipcode + + RESULTS=$($WEATHER_CALL -z "$ZIPCODE") + LAT=$(echo "$RESULTS" | gojq ".lat") + LON=$(echo "$RESULTS" | gojq ".lon") + CITY=$(echo "$RESULTS" | gojq ".name" | tr -d '"') + else # no search, default to user IP - url="http://ip-api.com/csv/?fields=252" res=$(curl --silent -fL "$url") LAT=$(awk -F , '{print $5}' <<<"$res") LON=$(awk -F , '{print $6}' <<<"$res") CITY=$(awk -F , '{print $3}' <<<"$res") - STATE=$(awk -F , '{print $1}' <<<"$res") fi # check @@ -154,7 +160,6 @@ get_location() { get_weather() { # calls server for weather based on $LAT, $LONG - if [[ -z "$LAT" || -z "$LON" ]] ; then # no lat or lon get_location @@ -172,10 +177,12 @@ get_weather() { fi WEATHER=$($WEATHER_CALL "-c $LAT,$LON -u $UNITS") + echo "$WEATHER" | gojq '.' TEMPERATURE=$(echo $WEATHER | gojq -r '.main.temp') HUMIDITY=$(echo $WEATHER | gojq -r '.main.humidity') WEATHER_ICON=$(echo $WEATHER | gojq -r '.weather[0].icon') EXPIRATION=$(($TIME+$TIMEOUT)) + echo "$TEMPERATURE $HUMIDITY $WEATHER_ICON" } save_info() { @@ -184,7 +191,6 @@ save_info() { "LAT=$LAT" \ "LON=$LON" \ "CITY=$CITY" \ -"STATE=$STATE" \ "TEMPERATURE=$TEMPERATURE" \ "HUMIDITY=$HUMIDITY" \ "WEATHER_ICON=$WEATHER_ICON" \ @@ -293,10 +299,10 @@ while getopts "chpiz:s:u:" opt; do UNIT="$OPTARG" ;; 'z' ) - [ -n "$QUERY" ] && usage 1 || QUERY="-z $OPTARG" + [ -n "$ZIPCODE" ] && usage 1 || ZIPCODE="$OPTARG" ;; 's' ) - [ -n "$QUERY" ] && usage 1 || QUERY="-s $OPTARG" + [ -n "$SEARCH" ] && usage 1 || SEARCH="$OPTARG" ;; 'p' ) PRETTY=true @@ -316,7 +322,7 @@ done load_info -if [[ -n "$QUERY" ]] ; then +if [[ -n "$ZIPCODE" || -n "$SEARCH" ]] ; then # perform search get_location fi