rendered paste bodyon *:dialog:whois:init:*:{
set %title Whois
.dialog -t Whois %title
}
dialog Whois {
size -1 -1 295 130
option dbu
text "Nick", 1, 5 6 25 8
combo 2, 30 5 100 10, drop
text "Address", 3, 5 16 25 8
edit "", 4, 30 15 150 10
text "Name", 5, 5 26 25 8
edit "", 6, 30 25 150 10
text "Modes", 7, 5 36 25 8
edit "", 8, 30 35 100 10
text "IP", 9, 5 46 25 8
edit "", 10, 30 45 50 10
text "Away", 15, 5 106 25 8
edit "", 16, 30 105 150 21, multi
edit "", 17, 132 75 50 10, center
text "Registered", 11, 5 86 30 8, center
text "Server", 12, 5 76 25 8
edit "", 18, 30 75 100 10
text "", 19, 5 95 90 8
text "Help", 20, 35 86 30 8, center
text "Secure", 21, 65 86 30 8, center
text "Sign In", 22, 5 66 25 8
text "Sign Out", 29, 5 66 25 8
edit "", 23, 30 65 80 10
text "Idle", 24, 132 67 50 8, center
button "Exit", 25, 135 2 37 12, default ok
text "Not found in /whois or /whowas listings", 26, 30 15 150 10, center
edit "", 28, 132 85 50 10, center
list 30, 190 79 100 50, size check
text "0 Common out of 0 Channels", 31, 190 71 100 8, center
text "0 Clones detected", 32, 190 5 100 8, center
list 33, 190 13 100 55, size
text "DNS", 34, 5 56 25 8
edit "", 35, 30 55 100 10
}
#whois off
raw *:*:{
.dialog -t Whois %title
var %raw = $numeric
if $istok(402 311 401 379 378 307 319 312 301 313 310 671 317,$event,32) { haltdef }
if %raw == 402 { .whois $name }
if %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
didtok Whois 30 32 $3-
var %a = 1, %b = $comchan($did(whois,2).seltext,0)
while %a <= %b {
did -s Whois 30 $didwm(Whois,30,$+(*,$comchan($did(whois,2).seltext,%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 -h Whois 29
did -v Whois 22
did -rva whois 23 $asctime($4,ddd mmm d yyyy @ HH:nn:ss)
if $3 > 0 {
did -v Whois 24
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 -h Whois 22
did -v Whois 12,29
did -rva Whois 18 $3
did -rva whois 23 $asctime($ctime($4-),ddd mmm d yyyy @ HH:nn:ss)
}
elseif %raw == 406 { did -v Whois 26 }
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,30,16,17,18,27,28
did -h whois 3,4,5,6,7,8,9,10,11,12,13,30,15,16,17,18,19,20,21,22,23,24,26,27,28,29
if %chan { clones %chan }
.enable #whois
.whois $name $name
if $name == $me {
did -v $dname 7
did -rva $dname 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
}
if $did(Whois,33).lines == 1 {
did -ra Whois 32 1 Clone detected
}
else did -ra Whois 32 $did(Whois,33).lines Clones detected
}
on *:dialog:whois:*:30:{
var %chan = $+($chr(35),$gettok($did($dname,$did).seltext,-1,35))
if $devent == dclick {
.join %chan
}
elseif $devent == sclick {
did -rva $dname 28 $iif($me !ison %chan,N/A,$idle($nick(%chan,$name).idle))
}
}
menu * {
Who2 : {
set %chan $iif($chan,$v1,$null)
.who2 $snicks
}
}
;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")
dialog $iif(!$dialog(Whois),-md,-eno) Whois Whois
var %nicks = $replace($1-,$chr(44),$chr(32))
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,24,26,28,29
did -ca Whois 2 $gettok(%nicks,1,32)
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)
}
}
on *:start:{
if $version < 6.17 {
echo 4 -a Sorry, but this script requires mIRC 6.17 or better
echo -a Auto-unload will now start
.unload -rs $script
}
}