dialog Whois {
size -1 -1 805 382
option pixels
icon $scriptdirCanada.ico, 0
button "Nick:", 1, 5 10 30 20
combo 2, 55 10 335 20, edit drop
text "Address:", 3, 5 35 42 16
text "", 4, 55 35 335 20
text "Name:", 5, 5 122 32 16
text "", 6, 55 120 335 20, right
text "Modes:", 7, 5 147 38 16
text "", 8, 55 145 335 20
text "IP:", 9, 5 172 16 16
text "", 10, 55 170 335 20
text "Away:", 15, 5 272 30 16
text "", 16, 55 270 335 40
text "", 17, 705 175 95 16
text "Registered", 11, 5 60 60 16, center
text "Server:", 12, 5 247 38 16
text "", 18, 55 245 335 20
text "", 19, 5 80 190 16
text "Help", 20, 70 60 60 16, center
text "Secure", 21, 135 60 60 16, center
text "", 22, 5 222 46 16
text "", 23, 55 220 335 20
button "E&xit", 25, 715 275 75 24, ok
list 30, 395 195 200 170, size check
text "0 Common out of 0 Channels:", 31, 395 175 196 16, center
text "0 Clones detected:", 32, 395 10 200 16, center
list 33, 395 30 200 140, size
text "DNS:", 34, 5 197 26 16
text "", 35, 55 195 335 20
radio "Kill", 13, 205 60 44 16, group
radio "K-Line", 14, 205 80 50 16
radio "Z-Line", 27, 255 80 50 16
radio "G-Line", 36, 305 60 50 16
radio "Shun", 37, 255 60 44 16
radio "GZ-Line", 38, 305 80 56 16
icon 39, 730 195 48 48, $scriptdirFace.jpg, 0
link "Russel Bairstow", 40, 715 250 75 16
text "Idle Time", 41, 600 175 100 16, center
button "Send Results to Channel(s)", 42, 600 8 200 20, multi
text "", 43, 5 315 386 50
text "", 44, 5 100 385 16
list 28, 600 195 100 170, size check
list 46, 600 30 200 140, size check
}
on *:dialog:whois:init:*:{
dialog -t Whois Who Is/Who Was
var %a = 1
while %a <= $chan(0) {
did -a Whois 46 $chan(%a)
inc %a
}
did $iif($countcs($usermode,o,O,C,A,a,N),-ev,-bh) Whois 13,14,27,36,37,38
}
on *:dialog:Whois:sclick:46:{
set %chan.msg $iif($did(46,$did(46).sel).cstate,$addtok(%chan.msg,$did(46).seltext,44),$remtok(%chan.msg,$did(46).seltext,1,44))
}
#whois off
raw *:*:{
var %raw = $numeric
if $istok(402 311 401 379 378 307 319 312 301 313 310 671 317 320,$event,32) { haltdef }
if %raw == 402 {
ctcp $name time
.whois $name
}
elseif %raw == 320 { did -ra Whois 44 $2- }
elseif %raw == 311 {
did -v Whois 3,5
did -rva Whois 4 $+($3,@,$4)
did -rva Whois 6 $6-
}
elseif %raw == 401 {
.enable #whowas
.whowas $iif($did(Whois,2).seltext,$v1,$did(Whois,2))
}
elseif %raw == 379 {
did -v Whois 7
did -rva Whois 8 $6-
}
elseif %raw == 378 {
if $gettok($iif(!$7,$6,$7),1,46) isnum && $gettok($iif(!$7,$6,$7),2,46) isnum && $gettok($iif(!$7,$6,$7),3,46) isnum && $gettok($iif(!$7,$6,$7),4,46) isnum {
did -v Whois 9
did -rva Whois 10 $iif(!$7,$6,$7)
dns $iif(!$7,$6,$7)
}
}
elseif %raw == 307 { did -v Whois 11 }
elseif %raw == 319 {
did -rv Whois 30,28
didtok Whois 30 32 $3-
var %a = 1, %b = $numtok($3-,32)
while %a <= %b {
did $iif($me ison $right($gettok($3-,%a,32),-1),-s,-l) Whois 30 %a
did $iif($me ison $right($gettok($3-,%a,32),-1),-sa,-la) Whois 28 $iif($me ison %chan,$idle($nick(%chan,$name).idle),N/A)
inc %a
}
did -rva Whois 31 $did(whois,30,0).csel Common out of $did(whois,30).lines Channels
}
elseif %raw == 312 {
did -v Whois 12
did -rva Whois 18 $3
}
elseif %raw == 301 {
did -v Whois 15
did -rva Whois 16 $3-
}
elseif %raw == 313 { did -rva Whois 19 $strip($5-) }
elseif %raw == 310 { did -v whois 20 }
elseif %raw == 671 { did -v whois 21 }
elseif %raw == 317 {
did -ra Whois 22 Sign In:
did -rva whois 23 $asctime($4,ddd mmm d yyyy @ HH:nn:ss)
if $3 > 0 {
did -rva whois 17 $idle($3)
}
}
elseif %raw == 318 {
did -e Whois 25
.disable #whois
haltdef
}
}
#whois end
on *:dns:{
if $dialog(whois) {
did -ra Whois 35 $iif($dns(0).addr,$v1,Unable to Resolve)
}
}
#whowas off
raw *:*:{
dialog -t Whois Who Was
var %raw = $numeric
if $istok(301 312 314 406,$event,32) { haltdef }
if %raw == 314 {
did -v Whois 3,5
did -rva Whois 4 $+($3,@,$4)
did -rva Whois 6 $6-
}
elseif %raw == 312 {
did -ra Whois 22 Sign Out:
did -v Whois 12
did -rva Whois 18 $3
did -rva whois 23 $asctime($ctime($4-),ddd mmm d yyyy @ HH:nn:ss)
}
elseif %raw == 406 { did -ra Whois 4 Not found in /whois or /whowas listings }
elseif %raw == 369 {
did -e Whois 25
.disable #whowas
haltdef
}
}
#whowas end
on *:dialog:whois:sclick:2:{
did -b whois 25
did -r whois 4,6,8,10,35,23,18,16,17,33,30,28,46
did -h whois 3-23,27,28,44,30-38,41,42,46
var %comchan = 1
while %comchan <= $comchan($name,0) {
clones $comchan($name,%a)
inc %comchan
}
.enable #whois
.whois $name $name
if $name == $me {
did -v Whois 7
did -rva Whois 8 $usermode
}
}
alias -l clones {
var %mask = 0
while %mask <= 9 {
var %a = 1, %b = $nick($1,0)
while %a <= %b {
if ($address($name,%mask) iswm $address($nick($1,%a),5)) && ($nick($1,%a) != $name) && !$didwm(Whois,33,$nick($1,%a)) {
did -a Whois 33 $nick($1,%a)
}
inc %a
}
inc %mask
}
did -ra Whois 32 $did(Whois,33).lines Clone $+ $iif($did(Whois,33).lines > 1,s) detected
}
on *:dialog:whois:*:30:{
var %chan = $+($chr(35),$gettok($did(Whois,$did).seltext,-1,35))
if $devent == dclick { .join %chan }
}
menu * {
Who2 : {
set %chan $iif($chan,$v1,$null)
.who2 $iif($snick(%chan,0),$snicks,$iif($nick,$nick))
}
}
;ALIASES SECTION
alias -l idle {
var %idle = $duration($1)
return $iif($numtok(%idle,32) < 4,$duration($1,3),$+($gettok(%idle,1--3,32),$chr(32),$duration($duration($gettok(%idle,-3-,32)),3)))
}
alias -l name {
return $iif($did(Whois,2).seltext,$v1,$did(Whois,2))
}
alias who2 {
var %nicks = $iif($1,$1-,$$?="Enter nick(s) comma or space separated")
%nicks = $replace(%nicks,$chr(44),$chr(32))
dialog $iif(!$dialog(Whois),-md,-eno) Whois Whois
did -b whois 25
did -r whois 2,4,6,8,10,30,16,17,18,28
did -h whois 3,4,5,6,7,8,9,10,11,12,30,15,16,17,18,19,20,21,22,23,28
didtok Whois 2 32 %nicks
did -kc Whois 2 1
if %chan { clones %chan }
.enable #whois
.whois $name $name
if $name == $me {
did -v whois 7
did -rva whois 8 $usermode
}
if $numtok(%nicks,32) > 1 {
didtok Whois 2 32 $gettok(%nicks,2-,32)
}
}