From 7fdb54aac7f9dedeca26a2ff6a6f5ff6f5c2584f Mon Sep 17 00:00:00 2001 From: Michael Clemens Date: Wed, 25 Nov 2020 12:42:29 +0000 Subject: [PATCH] added lookup of latest lotw upload date --- qrz.sh | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/qrz.sh b/qrz.sh index 1261b66..ba654f0 100755 --- a/qrz.sh +++ b/qrz.sh @@ -40,7 +40,7 @@ session_xml=$(curl -s -X GET 'http://xmldata.qrz.com/xml/current/?username='${us # check for login errors #e=$(printf %s "$session_xml" | grep -oP "(?<=).*?(?=)" ) # only works with GNU grep -e=$(printf %s "$session_xml" | awk -v FS="(|<\/Error>)" '{print $2}' | sed -e ':a' -e 'N' -e '$!ba' -e 's/\n//g') +e=$(printf %s "$session_xml" | awk -v FS="(|<\/Error>)" '{print $2}' 2>/dev/null | sed -e ':a' -e 'N' -e '$!ba' -e 's/\n//g') if [ "$e" != "" ] then echo "The following error has occured: $e" @@ -49,14 +49,14 @@ if [ "$e" != "" ] # extract session key from response #session_key=$(printf %s "$session_xml" |grep -oP '(?<=).*?(?=)') # only works with GNU grep -session_key=$(printf %s "$session_xml" | awk -v FS="(|<\/Key>)" '{print $2}' | sed -e ':a' -e 'N' -e '$!ba' -e 's/\n//g') +session_key=$(printf %s "$session_xml" | awk -v FS="(|<\/Key>)" '{print $2}' 2>/dev/null | sed -e ':a' -e 'N' -e '$!ba' -e 's/\n//g') # lookup callsign at qrz.com lookup_result=$(curl -s -X GET 'http://xmldata.qrz.com/xml/current/?s='${session_key}';callsign='${call}'') # check for login errors #e=$(printf %s "$lookup_result" | grep -oP "(?<=).*?(?=)" ) # only works with GNU grep -e=$(printf %s "$lookup_result" | awk -v FS="(|<\/Error>)" '{print $2}' | sed -e ':a' -e 'N' -e '$!ba' -e 's/\n//g') +e=$(printf %s "$lookup_result" | awk -v FS="(|<\/Error>)" '{print $2}' 2>/dev/null | sed -e ':a' -e 'N' -e '$!ba' -e 's/\n//g') if [ "$e" != "" ] then echo "$e" @@ -67,7 +67,7 @@ if [ "$e" != "" ] for f in "call" "fname" "name" "addr1" "addr2" "country" "grid" "email" "user" "lotw" "mqsl" "eqsl" "qslmgr" do #z=$(printf %s "$lookup_result" | grep -oP "(?<=<${f}>).*?(?=)" ) # only works with GNU grep - z=$(printf %s "$lookup_result" | awk -v FS="(<${f}>|<\/${f}>)" '{print $2}' | sed -e ':a' -e 'N' -e '$!ba' -e 's/\n//g') + z=$(printf %s "$lookup_result" | awk -v FS="(<${f}>|<\/${f}>)" '{print $2}' 2>/dev/null | sed -e ':a' -e 'N' -e '$!ba' -e 's/\n//g') eval "$f='${z}'"; done @@ -97,7 +97,12 @@ if [ "$eqsl" == "1" ] fi if [ "$lotw" == "1" ] then - echo "LoTW: yes" + lotwdate=$(curl -s https://lotw.arrl.org/lotw-user-activity.csv | grep -i $call | cut -d ',' -f 2) + if [ "$lotwdate" != "" ] + then + lotwdate="(last uploaded: $lotwdate)" + fi + echo "LoTW: yes $lotwdate" fi if [ "$mqsl" == "1" ] then