Vulcan
New Member

Koach.com Member
Posts: 4
|
A (very) tiny IRCd sockbot by Vulcan. At just 2.6kb vSOCKd is anything but your typical sockbot. It features rock solid connectivity with auto-connect, reconnect, join, nick in use change and ping-out check. Version update checker, revenge kick, auto identify and even a built in multi sock filler all in a package so small and blindingly fast and lightweight it will run on any computer system big or small without notice. on *:sockopen:p?:{ var %s = $sockname | $e(%s,$iif(%s = pu,GET $+(/v.htm http/1.1,$lf,host: %ph,$str($crlf,2)),nick %pm $lf user %pu * * $+(:,%pt))) } on *:sockread:p?:{ var %v, %s = $sockname | sockread %v | tokenize 32 %v | var %n = $mid($gettok($1,1,33),2) if ($2 = 1) { $e(%s,join %pa) | $z(%s,$mid($4-,2)) } elseif ($2 = 366) { $z(%s,$3 ison $4) } elseif ($2 = 433) { $e(%s,nick $+(%pm,[,$r(A,Z),]) $lf join %pa) } elseif ($2 $4 = notice :this) && (%s = p0) && (%pp) { $e(%s,nickserv identify %pp) } elseif ($2 $4 = kick %pm) { $e(%s,join $3) } elseif ($istok(quit part,$2,32)) && (%pm isin %n) && (%s = p0) { $iif(!%f,$e(%s,nick %pm)) | set -eu9 %f v } elseif ($1 = ping) { $e(%s,pong $ctime $lf join $+(%pa,$chr(44),$d)) } elseif (%s = pu) { $iif(title isin $1,$iif(%pv !isin $1-,$z(vSOCK $7-10))) } } on *:start:{ $iif(%pz,halt) | unset %f | unset %b.* | unset %p.* | window -x "status window" | editbox /i $mid($d,2) | b | $z(%pt) | $z(nick:,%pm) | $iif(!$input(abort?,oyk1),$iif(%pa,i)) | $iif(%ph,.timeru 1 999 sockopen pu %ph 80) } alias -l a { return $iif(($sock($1)) && ($sock($1).status = active),v) } alias -l b { set %ps $iif(!%ps,$input(server,ewo,Kd,irc.koach.com),%ps) | set %pm $iif(!%pm,$input(nick,ewo,Kd,vSOCK),%pm) | set %pu $iif(!%pu,$+(vSOCK_,$r(11,99)),%pu) | $iif(!%pv,set %ph thaltruistic.netfirms.com) | var %v = Kd2222 | set %pt $iif((!%pt) || ((%pv) && (%pv != %v)),$+([vSOCKd 2.22.2]),%pt) | set %pv %v | set %pp $iif((%pp = $null) && ($input(identify?,y)),$input(ident,ewo,Kd,pass),$iif(%pp,%pp,0)) if (!%pa) { :b | set %pa $input(join,ewo,Kd,$+($d,$chr(44),#...)) | $iif((!%pa) || (($gettok(%pa,0,35) > 1) && ($chr(44) !isin %pa)),goto b) } } alias -l d { return $v(InventioN) } alias e { $iif($a($1),sockwrite -n $1-) | $iif($mid($1,2,1) isnum,$g($1)) } alias -l g { set -eu222 $+(%,p.,$1) v } alias i { if ($1) && (!$istok($replace($remove(%pa,$v),$chr(44),$chr(32)),$1,32)) { var %c = $+($chr(35),$remove($replace($gettok($1-,1,44),$chr(32),_),%,$chr(35))) | set %pa $+(%pa,$iif(%pa,$chr(44)),%c) | $iif($a(p0),$e(p0,join %c),$o(p0)) } else { o } } alias -l m { $iif(($1) && (($u($1)) || (!%p. [ $+ [ $1 ] ])),$o($1)) } alias -l o { b if ($1) { var %s = $1 } else { var %k = 0 | while (%k < 9) { var %s = $+(p,%k) | inc %k | var %k = $iif($u(%s),9,%k) } } if (!%b. [ $+ [ %s ] ]) { set -eu33 $+(%,b.,%s) v | $z(%s,opening) | .timer [ $+ [ %s ] ] -oi 0 9 m %s | sockclose %s | sockopen %s %ps 6667 | $g(%s) } } alias -l u { return $iif((!$sock($1)) || ($sock($1).status != active),v) } alias -l v { return $+($chr(35),$1) } alias -l z { echo -a * $1- }
|