Unregistered nicks - 16/09/07 08:54 PM
Is it possible to have a script that will scan the nick list and get the result in a @window for unregistered nicks in the channel? Just like scanning for who list for exemple.
alias nonregistered { if ($me ison #$1) { ; enable group to grab raw replies .enable #nonregistered ; secure disable of that group .timernonregistered 1 30 .disable #nonregistered ; store channel to check set -e %nonregisteredchan #$1 ; request users list who #$1 ; create hidden sorted list window for that chans nonregistered users (or hide&clear existing window) if ($window($+(@,nonregistered,$chr(160),#$1))) { window -h $v1 | clear $v1 } else { window -hlsCk0z $+(@,nonregistered,$chr(160),#$1) -1 -1 300 500 } } else { echo -a Syntax: /nonregistered <channel>. You have to be on that channel. } } #nonregistered off ; who replies raw 352:*: { if ($2 == %nonregisteredchan) { ; add nonregistered nicks to the hidden listwindow if (r !isincs $7) { aline $+(@,nonregistered,$chr(160),$2) $6 } haltdef } } ; end of who raw 315:*: { if ($2 == %nonregisteredchan) { ; show the formerly hidden window, unset stored channel, execute "secure disable" window -a $+(@,nonregistered,$chr(160),$2) unset %nonregisteredchan .timernonregistered -e haltdef } } #nonregistered end
alias unregistered { if ($me ison #$1) { if (%unregistered.chan) { echo -a Sorry, I'm still looking up the nicks of %unregistered.chan | return } set %unregistered.chan #$1 ; create a hash table storing all nicks if (!$hget(unregistered)) { hmake unregistered 50 } var %nr = 1 while ($nick(#$1,%nr)) { hadd unregistered $v1 | inc %nr } ; create / clear output window var %w = $+(@,unregistered,$chr(160),#$1) $iif(($window(%w)),clear %w,window -lsCk0z %w -1 -1 300 500) aline %w $str($chr(160),3) $+ Looking up: nick 001 of $base($hget(unregistered,0).item,10,10,3) ... ; start masswhois .enable #unregistered unregistered.whois #$1 } else { echo -a Syntax: /unregistered <channel>. You need to be on that channel. } } alias -l unregistered.whois { ; whois next nick...until finished if (($me ison $1) && ($hget(unregistered,1).item)) { whois $v1 } else { var %w = $+(@,unregistered,$chr(160),$1) rline %w 1 $str($chr(160),3) $+ $iif(($me ison $1),Scan finished. $& $iif(($line(%w,2)),They did not register:,All nicks on $1 registered.),Scan aborted.) hfree unregistered .disable #unregistered unset %unregistered.* } } #unregistered off raw *:*:{ if ($hget(unregistered,$2).item) { ; nick has registered: store that nick if ($numeric == 307) { set %unregistered.regnick $2 haltdef } ; end of whois for that nick or no such nick elseif ($istok(318 401,$numeric,32)) { var %w = $+(@,unregistered,$chr(160),%unregistered.chan) ; nick has not registered: add the nick to the window if (($numeric == 318) && (%unregistered.regnick != $2)) { aline %w $2 } ; update count rline %w 1 $str($chr(160),3) $+ Looking up: nick $& $base($calc($gettok($line(%w,1),6,32) - $hget(unregistered,0).item +1),10,10,3) of $gettok($line(%w,1),6,32) ... ; proceed with next nick and additional 200ms delay hdel unregistered $2 .timerunregistered -m 1 200 unregistered.whois %unregistered.chan haltdef } ; halt the other whois lines as well elseif ($int($calc($numeric / 100)) == 3) { haltdef } } } #unregistered end