From 08a60471819d5fdf90356a348bcd518b87bb128e Mon Sep 17 00:00:00 2001
From: deuce <>
Date: Mon, 12 Sep 2011 01:07:47 +0000
Subject: [PATCH] Look up US special event calls via arrl.org

---
 exec/ircbots/ham/ham.js | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

diff --git a/exec/ircbots/ham/ham.js b/exec/ircbots/ham/ham.js
index 370d1f0a12..844fe9f93c 100644
--- a/exec/ircbots/ham/ham.js
+++ b/exec/ircbots/ham/ham.js
@@ -192,9 +192,27 @@ Bot_Commands["CALLSIGN"].command = function (target,onick,ouh,srv,lvl,cmd) {
 		}
 	}
 
+	function USSpecialEvent(callsign,src,target) {
+		var today=strftime("%m%%2F%d%%2F%Y", time());
+		var result=new HTTPRequest().Post('http://www.arrl.org/special-event-stations', '_method=POST&data%5BSearch%5D%5Bcall_sign%5D='+callsign+'&data%5BSearch%5D%5Bkeywords%5D=&data%5BLocation%5D%5Bzip%5D=&data%5BLocation%5D%5Barea%5D=&data%5BLocation%5D%5Bcity%5D=&data%5BLocation%5D%5Bstate%5D=&data%5BLocation%5D%5Bdivision_id%5D=&data%5BLocation%5D%5Bsection_id%5D=&data%5BLocation%5D%5Bcountry%5D=&data%5BDate%5D%5Bstart%5D='+today+'&data%5BDate%5D%5Bend%5D=&=Search');
+		var m=result.match(/<h3>\s*([\x00-\xff]*?)<\/p/);
+		if(m!=null) {
+			m[1]=m[1].replace(/<[^>]*>/g,'');
+			m[1]=m[1].replace(/[\r\n]/g,' ');
+			m[1]=m[1].replace(/\s+/g,' ');
+			srv.o(target, m[1]);
+		}
+		else {
+			srv.o(target, "Unable to match US special event callsign!");
+		}
+	}
+
 	if(callsign.search(/(C[F-K]|C[Y-Z]|V[A-GOXY]|X[J-O])/)==0) {
 		CanadaCallsign(callsign, srv, target);
 	}
+	else if(callsign.search(/^\s*(K|N|W)[0-9].\s*$/)==0) {
+		USSpecialEvent(callsign,srv,target);
+	}
 	else if(callsign.search(/(A[A-L]|K|N|W)/)==0) {
 		USCallsign(callsign,srv,target);
 	}
@@ -206,6 +224,7 @@ Bot_Commands["CALLSIGN"].command = function (target,onick,ouh,srv,lvl,cmd) {
 }
 
 //var dumb={o:function(x,y) {log(y);}};
+//Bot_Commands["CALLSIGN"].command(undefined, undefined, undefined,dumb,undefined,['asdf','n0l']);
 //Bot_Commands["CALLSIGN"].command(undefined, undefined, undefined,dumb,undefined,['asdf','kj6pxy']);
 //Bot_Commands["CALLSIGN"].command(undefined, undefined, undefined,dumb,undefined,['asdf','va6rrx']);
 //Bot_Commands["CALLSIGN"].command(undefined, undefined, undefined,dumb,undefined,['asdf','g1xkz']);
-- 
GitLab