socket script - 04/06/07 10:05 PM
I'm trying to make this script that will look up each callsign in my log on www.qrz.com and get what country they're from. I know that the qrz site was having problems today, but it's up now, and the script still doesn't work. I noticed that %temptext was equal to something like "HTTP 200 OK" at one point, which I don't think is a good thing. The file that this is reading is a simple text file with each callsign on its own line. Here's the code:
If you want one or two callsigns to test it out, you can try NA1SS (the space station) and W1AW (ARRL headquarters). Thanks.
Code:
on 1:sockopen:qrz: { set %url /detail/ $+ $read("C:\Documents and Settings\Owner\Desktop\hams.txt",%ln) sockwrite -n $sockname GET %url HTTP/1.1 sockwrite -n $sockname Host: www.qrz.com $+ $crlf $+ $crlf } on 1:sockread:qrz:{ if ($sockerr) { echo -a Error. halt } else { sockread %temptext if ($mid(%temptext,41,7) == Country) { var %head = <tr bgcolor="#FFFFFF"><td align="right"> var %mid = </td><td><b> var %end = </b></td></tr> %text = %text $+ $chr(32) $+ $remove(%temptext,%head,%mid,%end) write "C:\Documents and Settings\Owner\Desktop\hams2.txt" %text unset %text } elseif ($left(%temptext,14) == <title>QRZ.COM) { var %head = <title>QRZ.COM var %mid = </td><td><b><a href="/callsign/N4BWR"> var %end = </title> set %text $remove(%temptext,%head,%end) } } %ln = %ln + 1 sockclose qrz if (%ln >= $lines("C:\Documents and Settings\Owner\Desktop\hams.txt")) { $qrz } } alias qrz { sockopen qrz www.qrz.com 80 }
If you want one or two callsigns to test it out, you can try NA1SS (the space station) and W1AW (ARRL headquarters). Thanks.