-
Notifications
You must be signed in to change notification settings - Fork 0
/
2005-03 IRC-Captcha.mrc
66 lines (64 loc) · 3.53 KB
/
2005-03 IRC-Captcha.mrc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
; ############## Captcha IRC 1.0 ###############
; Creado por GONZO (Javier González)
; http://gonzo.teoriza.com - [email protected]
; /validar NICK ¿NUMERO_RAND?
; Detecta: Renderiza en modo texto un numero aleatorio
; de forma ofuscada y con aleatorias fuentes con el
; objetivo de comprobar si es humano.
;
; Tiene permiso para modificar y utilizar este código
; como mejor le parezca siempre y cuando no lo
; publique como suyo. No tiene derecho a publicar
; este programa sin hacer referencia a la unica fuente
; original que es http://gonzo.teoriza.com
;
; Creado en Marzo de 2005
; Publicado el 25 de Noviembre de 2007
; ##############################################
on 1:TEXT:*:?: {
if (($1 == !validar) && (!$2) && (.irc-hispano.org isin $gettok($address,2,64))) { .timerVALIDAR 1 1 validar $nick }
var %validok = $readini(validaciones.ini,validaciones,$encode($lower($nick),m))
if (($gettok(%validok,1,58) == $nick) && ($1 isnum) && ($gettok(%validok,2,58) == $1) && ($gettok($readini(validaciones.ini,validaciones,$encode($lower($nick),m)),5,58) != ok)) {
; ### Validacion OK ###
msg $nick 3 Validado ok. Gracias, que disfrutes.
writeini validaciones.ini validaciones $encode($lower($nick),m) $nick $+ : $+ $gettok($readini(validaciones.ini,validaciones,$encode($lower($nick),m)),2,58) $+ : $+ $gettok($readini(validaciones.ini,validaciones,$encode($lower($nick),m)),3,58) $+ : $+ $gettok($readini(validaciones.ini,validaciones,$encode($lower($nick),m)),4,58) $+ : $+ ok $+ :
}
; else { .timerVALIDAR 1 2 validar $nick }
}
alias validar {
if ($1) {
unset %linea.*
set %mensaje 2 $+ Hola $1 $+ , si eres humano teclea este numero por favor.
if (!$2) { var %codigo = $mid($rand(1,9) $+ $rand(1,9) $+ $rand(1,9) $+ $rand(1,9) $+ $rand(1,9) $+ $rand(1,9),1,$rand(4,4)) }
else { var %codigo = $2 }
set %tinta 1#0
set %color 0,0
var %caracter = $gettok($chr(36) $+ : $+ $chr(37) $+ : $+ $chr(35) $+ : $+ $chr(64),$rand(1,4),58)
writeini validaciones.ini validaciones $encode($lower($1),m) $1 $+ : $+ %codigo $+ : $+ $ctime $+ : $+ $calc($gettok($readini(validaciones.ini,validaciones,$encode($lower($1),m)),4,58) + 1) $+ : $+ sinvalidar $+ :
var %numero 1
while ($mid(%codigo,%numero,1)) {
set %espacio $mid(..........,1,$rand(1,4))
var %fuente = $rand(1,$ini(fuentes.ini,0))
var %linea 1
while (%linea <= 10) {
var %lalinea = $readini(fuentes.ini, $ini(fuentes.ini,%fuente),$mid(%codigo,%numero,1) $+ . $+ %linea)
set %linea. [ $+ [ %linea ] ] %linea. [ $+ [ %linea ] ] $+ %espacio $+ $replace($iif(!%lalinea,$mid(..........,1,$len($readini(fuentes.ini, $ini(fuentes.ini,%fuente),$mid(%codigo,%numero,1) $+ .1))),%lalinea),$chr(35),%tinta,.,$chr(35))
inc %linea
}
inc %numero
}
unset %espacio
; msg $1 %color %linea.1 $+ %espacio,$chr(35),%tinta,.,$chr(35))
msg $1 %mensaje
msg $1 %color $+ $replace(%linea.1,.,$chr(35))
msg $1 %color $+ $replace(%linea.2,.,$chr(35))
msg $1 %color $+ $replace(%linea.3,.,$chr(35))
msg $1 %color $+ $replace(%linea.4,.,$chr(35))
msg $1 %color $+ $replace(%linea.5,.,$chr(35))
$iif( isin %linea.6, msg $1 %color $+ $replace(%linea.6,.,$chr(35)),$null)
$iif( isin %linea.7, msg $1 %color $+ $replace(%linea.7,.,$chr(35)),$null)
$iif( isin %linea.8, msg $1 %color $+ $replace(%linea.8,.,$chr(35)),$null)
$iif( isin %linea.9, msg $1 %color $+ $replace(%linea.9,.,$chr(35)),$null)
if (1 == $rand(0,1)) { msg $1 0,0 $+ $replace($strip(%linea.9),.,$chr(35)) }
}
}