on *: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 } }