rendered paste body
alias cscan {
if (!$chan(0)) { errdialog you are not on any channel you could scan for clones! }
else {
if ($1 ischan) { set %cscan.pchan $1 }
nndlg -m clonescan
}
}
dialog clonescan {
title CloneScan on $curconserv [/cscan]
size -1 -1 364 206
option pixels
icon script\pics\nntray.ico
box "Channel", 2, 4 0 144 48
combo 7, 12 16 128 144, sort size drop
box "Statistics", 5, 4 54 144 118
text "Total users", 15, 14 74 58 16
edit "", 14, 84 70 56 22, read autohs center
text "Clones", 8, 14 98 36 16
edit "", 9, 84 94 56 22, read autohs center
text "Percentage", 10, 14 122 62 16
edit "", 11, 84 118 56 22, read autohs center
text "Scan time", 12, 14 146 50 16
edit "", 13, 84 142 56 22, read autohs center
box "Clones (right-click for options)", 4, 156 0 204 172
list 6, 164 16 188 148, size
button "&Ok", 1, 280 178 80 24, ok
menu "&File", 17
item "&Close", 18, 17
menu "&Settings", 19
item "&Update IAL", 20, 19
item "&Refresh clones", 21, 19
}
on *:dialog:clonescan:*:*:{
if ($devent == init) {
mdx SetControlMDX $dname 6 TreeView haslines hasbuttons showsel nohscroll > script\dlls\views.mdx
var %c = $chan(0)
while (%c) {
did -a $dname 7 $chan(%c)
dec %c
}
did -c $dname 7 $iif($didwm(7,$iif(%cscan.pchan,$v1,$active)),$v1,1)
unset %cscan.pchan
cscan.do
}
elseif ($devent == sclick) {
if ($did == 7) { cscan.do }
elseif ($did == 6) {
tokenize 32 $did($did,1)
if ($1 == rclick) && ($5) {
did -i $dname $did 1 cb root $3-4
did -c $dname 6 $5
var %c = $did(7).seltext,%o = $iif(!$ccontrol(%c),+d,+),%n
noop $regsub($wd($gettok($gettok($did($did,$5),2,9),1,13),2),$+(/[,$prefix,]/g),,%n)
popdll.new popup
popdll.add popup +d 0 0 $shorten(10,%n)
popdll.add popup
popdll.add popup + 0 0 Whois $cr we %n
popdll.add popup
popdll.add popup %o 0 0 Kick $cr k %c %n Clones are not welcome in %c $+ !
popdll.add popup %o 0 0 Kickban $cr kb %c %n Clones are not welcome in %c $+ , banned!
popdll.add popup %o 0 0 Timekickban $cr tkb %c %n Clones are not welcome in %c $+ , tempbanned!
popdll.disp popup
}
}
}
elseif ($devent == menu) {
if ($did == 20) {
if ($remc(who)) { errdialog there is already another /who request going on. Please wait for it to finish. }
else { .who $did(7).seltext }
}
elseif ($did == 18) { dialog -c $dname }
elseif ($did == 21) { cscan.do }
}
}
alias cscan.do {
did -r clonescan 6
did -i clonescan 6 1 cb root
did -a clonescan 6 +be 1 1 0 0 0 Hostnames
did -i clonescan 6 1 cb last
var %m = $nnticks,%x = $did(clonescan,7).seltext,%s = $ialchan(*,%x,0),%c = 0,%v = $nick(%x,0)
did -ra clonescan 14 %v
if (%s != %v) {
did -a clonescan 6 + 1 1 0 0 0 IAL for %x not filled!
did -bra clonescan 9,11,13 n/a
did -b clonescan 4,5,6,8,10,12,14,15
}
else {
did -e clonescan 4,5,6,8,9,10,11,12,13,14,15
_hmake clonescan
while (%s) {
hinc clonescan *@ $+ $gettok($ialchan(*,%x,%s),2-,64)
dec %s
}
var %s = $hget(clonescan,0).item
while (%s) {
var %l = 1,%t = $hget(clonescan,%s).item,%h = $hget(clonescan,%t)
if (%h > 1) {
did -a clonescan 6 + 1 1 0 0 0 $+($gettok(%t,2-,64), Host: $gettok(%t,2-,64),$cr,Users:) %h
did -i clonescan 6 1 cb last
while (%l <= %h) {
var % = $ialchan(%t,%x,%l).nick,%g = $iif(% !isreg %x,$left($nick(%x,%).pnick,1)) $+ %
did -a clonescan 6 + 1 1 0 0 0 $+(%g, Nickname: $ialchan(%t,%x,%l).nick,$cr,Clone #: %l,/,%h,$cr,Address: $gettok($ialchan(%t,%x,%l),2-,33),$cr,Idle) time: $sduration($nick(%x,%).idle)
inc %l
}
did -i clonescan 6 1 sort
did -i clonescan 6 1 cb up
inc %c $calc(%h -1)
}
dec %s
}
if (!%c) { did -a clonescan 6 + 1 1 0 0 0 No clones on %x found. }
else { did -i clonescan 6 1 sort }
did -ra clonescan 9 %c
did -ra clonescan 11 $percent(%c,$nick(%x,0),0)
did -ra clonescan 13 $round($calc(($nnticks - %m)/1000),2) $+ s
hfree clonescan
}
}