------------------------------------------- LuNa SCRiPT ------------------------------------------- http://www.marblestation.com/aplicaciones/ http://lunascript.sourceforge.net ------------------------------------------- - Autores Sergio Blanco Cuaresma http://www.marblestation.com - Descripción LuNa es un script para el cliente de IRC de consola BitchX. Ha sido probado con las versiones: 75p3 1.0c18 1.1 Con todas parece funcionar correctamente aunque es recomendable usar la 1.1 ya que al ser la última esta libre de bugs. El script unicamente funciona con la versión de consola de BitchX, no es usable con la versión GTK (gtkBitchX). Para instalar en Gentoo: USE="-gnome -gtk" emerge bitchx NOTA: Versiones 1.0cXX de BitchX ----- En el caso de las versiones de BitchX 1.0cXX recomiendo compilarlo manualmente y no utilizar los paquetes precompilados que se pueden encontrar en distribuciones y en internet. De esta forma evitamos configuraciones indesadas, y podemos especificar en el archivo include/config.h: #define LATIN1 Y de esta forma poder ver los caracteres latinos (como los acentos) sin problemas. ----- El Script contiene muchos trozos de codigo escritos por terceras personas y modificados por mi (en cada archivo se hace referencia a quien escribio el codigo inicialmente). Ademas, muchos de los complementos (sonidos, textos, dibujos ascii...) han sido sacado de otros scripts como: IRCap, X-Cript e Ingenio (kvirc). - Configuración del nick con BitchX El nick, username y ident que queremos utilizar con BitchX se debe indicar utilizando variables de entorno antes de ejecutar BitchX, para esto solo hay que incluir en el fichero ~/.bash_profile o ~/.bashrc: IRCNICK="Nick" IRCUSER="Ident" IRCNAME="Nombre Real" export IRCNICK IRCUSER IRCNAME - Listado de servidores de BitchX BitchX tiene un listado de servidores por defecto propio, podemos especifiarle que coja un fichero con un listado de servidores definido por nosotros ejecutando indicando por ejemplo: BitchX -r ~/luna/irc.servers Donde ~/luna/irc.servers corresponde a un listado de servidores proporcionado por este script. En el caso de los servidores como iRC-Hispano que se debe especificar el password del nick antes de conectar, se deberá especificar en ese listado con el siguiente formato: servidor-irc:6667:password: En mis sistemas suelo indicar en el fichero ~/.bashrc o ~/.bash_profile: alias BitchX="BitchX -N -r ~/luna/irc.servers" De esta forma cuando ejecute 'BitchX' en una terminal, realmente se estará ejecutando con todos esos parámetros (-N significa no conectarse automáticamente). - Resolución de pantalla Para la consola es recomendable utilizar frame buffer con una resolucion de 1024x768 o 800x600 como mínimo. En modo texto o resoluciones inferiores tambien funcionaria pero, como es logico, no se aprobecha tan bien el espacio. En las X también puede ser ejecutado utilizando una terminal como la gnome-terminal, antes de ejecutar BitchX es recomendable haber maximizado la ventana y no abrir ningun tabulador o la combinación de teclas alt+1,2,3... no funcionará en BitchX. La letra recomendada para la terminal es "Andale Mono" tamaño 12. - Instalación REQUISITOS: play -- Para la reproduccion de waves mpg123, perl, tclsh -- Para la reproduccion de MP3 Para instalar el script simplemente basta que con el usuario con el que desea utilizar BitchX y el script ejecute: ./install.sh y se copiaran todos los archivos necesarios a ~/luna/ (es necesario que sea ese directorio, cualquier otro no funcionara correctamente). Una vez instalado, ejecutaremos nuestro fantastico BitchX y cargaremos el script mediante: /load ~/luna/luna.bx Si queremos que se cargue automaticamente nada mas ejecutar BitchX, pondremos en "~/.bitchxrc" (si no existe el archivo, lo creamos o copiamos el ejemplo adjunto) la linea: /load ~/luna/luna.bx - Configuración La configuración se puede realizar o bien editando archivos o bien a través de comandos desde el propio BitchX. -- Configuración por comandos Comando: /luna Si ejecutamos simplemente '/luna' nos saldra un listado con todos los subcomandos y la explicacion de cada uno, con '/luna estado' veremos la configuracion actual. Para guardar o cargar la configuracion utilizaremos '/luna guardar' y '/luna cargar' respectivamente. ** RECUERDE guardar la configuracion cada vez que modifique algun parámetro ** Una vez estemos conectados a alguna red de irc, si el script incorpora algun addon para dicha red (no el DeFauLT) podremos configurar la auto-identificacion mediante los comandos: '/addnick' '/delnick' '/listnicks' Para anadir un nick a la base de datos de esa red haremos: /addnick nick password [#canal1 #canal2...] Los canales indicados son en los que tenemos registro y nos podemos dar OP mediante algun bot como CHaN, se pueden omitir si no estamos registrados en ninguno. Para borrar nick de la base de datos '/delnick nick' y para listarlos '/listnicks'. (Cada red tiene su propia base de datos). En el caso del irc-hispano, tienen un sistema de identificacion mediante nicks registrados y protegidos, esto significa que la autentificación del usuario no se realiza enviando mensajes a bots sino que: 1) Se debe especificar un password en el listado de servidores para nuestro nick. 2) Cuando queremos cambiar de nick a otro que tenemos registrado debemos hacerlo: '/nick MiNick:password' El addon de irc-hispano de Luna facilita este tipo de identificación, para esto se deben añadir los nicks que tengamos registrados en el hispano con los comandos '/addnick2' '/delnick2' '/listnicks2' de la misma forma que hemos usado '/addnick'.. De esta forma para cambiar a un nick ya registrado no hara falta poner '/nick Minick:password' sinó simplemente '/nick Minick' y LuNa añadira automaticamente el password antes de enviar el comando al servidor (no lo mostrará por pantalla para evitar que terceras personas lo vean). En caso de que no haya ningun addon para la red de irc que se conecta (se cargara DeFauLT al conectar), no sera posible habilitar la auto-identificacion. Si crease un addon para su red y nos la enviase, lo incluiremos gustosamente en el script ;-). Tiene ejemplos en el directorio 'addons/' de este script. -- Configuración editando ficheros Los ficheros que se pueden editar manualmente antes de ejecutar BitchX són: ~/luna/.favoritos ~/luna/.configuracion ~/addons/.irc-hispano ~/addons/.irc-hispano2 ~/addons/.freenode - Estado del script El script esta hecho a mi medida, y por lo tanto yo ya estoy habituado a el. Supongo que para el resto de usuarios quizas no sea facil acostumbrarse en un principio a la forma de manejar el script (o quizas estoy equivocado). Solo espero que con toda la explicacion de las caracteristicas se entienda por encima la forma de usar el script. - Uso y caracteristicas de LuNa Script * Division de la pantalla: la ventana superior es la principal, la central es el estado (nos informa de cambios y eventos) y la inferior es la ventana de privados. Cuando alguien te abra un privado te saldra en esa ultima ventana, de esta forma, estes donde estes, siempre lo veras. Para continuar hablando con esta persona puedes utilizar el Tabulador o bien ir mediante Alt+1, Alt+2... a una ventana libre y escribir /q nick para hablar ahi. Como ya habras observado, la ventana superior o principal en realidad consta de 10 ventanas que puedes acceder, como hemos dicho antes, mediante Alt+1, ... Alt+0. Asi podras entrar en canales y tenerlos cada uno en una ventana diferente e igualmente para los privados. Si por cualquier motivo deseas acceder a la ventana central o inferior, puedes trasladarte entre ellas con Alt+r. * Configuracion desde BitchX: el script se puede configurar completamente desde el propio cliente a traves del comando /luna. * Accesos directos: - Mediante Alt+s podemos ver quien hay en el canal (como si hiciesemos un /scan): Saldra ordenado, primero los operadores @, despues los que tengan voz + y finalmente el resto de usuarios. Los ircops salen de color azul flojo y nuestro nick de color verde. - Mediantle Alt+, vamos al principio de la frase que estamos escribiendo. - Mediante Alt+. vamos al final de la frase que estamos escribiendo. * Sistema de sonidos: luna nos avisa mediante sonidos de los eventos mas importantes: cuando te nombran en un canal, te expulsan, banean... En todo momento es posible activar/desactivar el sistema mediante el comando /luna sonido on /luna sonido off Te avisan cuando te llaman por tu diminutivo: /luna diminutivo nick_diminutivo * Away: el sistema de away de luna te permite cambiar tu nick por otro de away automaticamente, /away [razon] /back [razon] /luna nick_away nick /luna razon_away razon.... /luna razon_volver razon... * Canales Favoritos: normalmente todo internauta tiene sus canales favoritos, ahora es posible entrar en ellos simplemente pulsando Ctrl+Y. Cada uno se asociara a una ventana diferente accesibles mediante Alt+1, Alt+2, Alt+3... Configurable con: /addchan #canal /delchan #canal /listchans Ejemplo: /addchan #network 2 Añadimos el canal #network a favoritos y lo asociamos a la ventana 2, de forma que al pulsar Ctrl+Y entraremos en ese canal en la ventana indicada. Para ir a esa ventana Alt+2. ** Puede añadir tantos canales como desee y ligarlos a las ventanas que quiera libremente (pueden haber 2 canales en 1 ventana, para cambiar entre ellos pulse Ctrl+x) * Sistema de reproduccion MP3: luna nos permite reproducir facilmente nuestros MP3. Para usarlo deberemos inicialmente indicar los directorios donde tenemos almacenados nuestros mp3s mediante: /luna mp3dir /directorio1/ /luna mp3dir /directorio2/ Una vez realizada esta operacion ya podremos reproducir nuestros MP3 y mostrarlo en cualquier canal o privado, simplemente escribiendo: /mp3 nombre de la cancion (no es necesario que sea exacta, se auto-completa) /rmp3 -- Reproducira un MP3 aleatorio /mp3s -- Para la reproduccion /luna mp3list -- Lista de todos nuestro MP3s Si en el futuro anadimos nuevos MP3s a nuestros directorios, sera necesario ejecutar: /luna mp3cache O si lo que deseamos es volver a definir los directorios haremos: /luna mp3olvidar y volveremos a configurarlo como hemos explicado. Con los comandos /mp3 y /rmp3 podemos especificar que se envie un CTCP al canal o privado donde lo ejecutamos, esto es automatico dependiendo de si esta activado o no. Para activar/desactivar ejecutaremos: /luna ctcp_mp3 on/off o pulsaremos la combinacion de teclas Alt+m * Mensaje de bienvenida automatico: podemos hacer que cada vez que entre alguien en uno de los canales en los que estamos, se le envie un /notice con un mensaje de bienvenida. Para configurarlo: /luna texto_mensaje mensaje Dentro del mensaje podemos incluir las variables $NICKSPAM y $CHANSPAM que corresponden al nick al que se envia el mensaje y el canal al que ha entrado. Para activar/desactivar: /luna mensaje on/off o mediante la combinacion de teclas Alt+j * Anti-idle: el idle es el tiempo que pasa sin que envies texto a un privado o canal, ademas, este es visible para cualquier persona (mediante /whoisx nick podras ver el whois+idle de los demas). Si no deseas que la gente vea que tu idle es significativamente grande y por tanto que no estas hablando, tienes la posibilidad de activar el anti-idle que enviara texto cada X segundos. Para activar/desactivar: /luna antidle on/off o mediante la combinacion de teclas Alt+i. Para especificar el numero de segundos: /luna idle 60 (o cualquier otro numero) ATENCION: no activar y desactivar consecutivamente porque puede dar lugar a errores. * Sistema de logs: Se puede especificar el directorio donde guardar los logs (asegurarse de que existe) mediante /luna log_dir /dir/ Ademas podemos indicar que no se loggeen ciertos canales o nicks mediante /luna no_log_canales #canal1 #canal2... /luna no_log_nicks nick1 nick2 No es necesario incluir aqui los bots, esto ya es automatico. Otro Comando relacionado: /log * Ignores: ahora los ignores pueden incluir mensaje para que la persona a la que ignoras, se entere de ello. Activar/desactivar: /luna ignore_mensaje on/off o mediante la combinacion de teclas Alt+y Para definir el mensaje que quieres que envie /luna ignore_texto mensaje... La lista de personas ignoradas sera guardada cada vez que ejecutemos /luna guardar Para visualizar la lista /ignore -list * Notify: Puede listar los usuarios que tiene incluidos en el notify mediante /notify -list Si añadimos (/notify nick) o eliminamos (/notify -nick) algun nick del notify y queremos que se mantengan los cambios, deberemos guardarlo mediante /luna guardar * Nick completion por tab y rotacion de /msg mejorada: Si un nick es [Rocket], ponemos rocket y presionamos tabulador, se auto completa. Anteriormente debiamos indicar siempre el principio del nick, por ejemplo: [Roc y entonces se completaba. * Deteccion de clones: al entrar en un canal se realiza un scan de clones automatico, y cada vez que entre alguien se comprobara si es un clon de alguien. Para desactivar/activar: /luna scannear_clones on/off o mediante la combinacion de teclas Alt+c * Tipos de letras: podemos selecionar diferentes tipos de letra mediante la combinacion de teclas Alt+l. Ademas podremos enviar texto gigante a los canales o privados mediante: /gg texto Este texto gigante, al igual que el normal, podemos cambiarlo de color pulsando Ctrl+c y escribiendo un numero (cada numero corresponde a un color). * Dibujos ascii: tambien tenemos diversos dibujos los cuales podemos enviar. Para ver una lista: /dibujo -list Para enviar uno al canal o privado: /dibujo nombre_del_dibujo * Emulacion de otros clientes de irc: para responder a los ctcps versions que nos hagan, haciendo ver que estamos utilizando otro cliente, utilizaremos: /cloak ircap/sphere/mirc/pirch/ircle/xircon/off * Copiar/pegar: si queremos copiar un texto que contiene "/" y no queremos que sea interpretado por BitchX, podemos pulsar Ctrl+e para desactivar/activar la interpretacion del caracter /, asi podremos copiar sin problemas. Debemos recordar volver a desactivarlo porque sino BitchX no interpretara nuestros comandos (como por ejemplo /join #canal). * Extras: /me -- detecta si estas en un canal o en un privado /mme -- /me en todos los canales que estes /whoisx -- hace un whois+idle /kick razon -- no es necesario especificar canal, toma el actual por defecto /kb -- kick y ban /kbi -- kick, ban e ignore /chops -- envia un notice a todos los operadores del canal * Caidas falsas: podemos simular que nos caemos de la red con /caida, por defecto hace un "Connection reset by peer" pero se pueden selecionar diferentes tipos: /caida -list /caida -tipo #num * Gestor de temas: en luna se pueden definir varios colores al gusto del usuarios. Este gestor tiene ayuda propia mediante el comando: /ahelp, /ahelp showtheme... Todos los comandos disponibles son: /showtheme /loadtheme /themeset /savetheme Para ver la lista de temas: /loadtheme -list Para ajustar el tema acutal: /themeset variable color Colores: %K - Dark Gray %k - black %G - bold green %g - dark green %Y - yellow %y - brown %C - bold cyan %c - cyan %B - bold blue %b - blue %P and %M - bold purple/magenta %p and %m - and purple/magenta %R - bold red %r - red %n - null color (will nullify colors before it) %0 %1 %2 %3 %4 %5 %6 %7 %8 %9 - background colors %F flashing foreground %U underline text. * Mensajes masivos: podemos enviar mensajes masivos a todo un canal, o a todos los usuarios que coincidan con una mascara. Estos mensajes pueden ser privados, notices o invites a un canal. Los comandos son: /mmsg /mnot /minv * Textos aleatorios: luna posee una amplia coleccion de textos: chistes, refranes... que pueden ser mostrados de forma aleatoria a cualquier canal o privado. Para ver la lista disponible: /textos * Topics predefinidos: luna lleva consigo definidos unos topics de colores, para que estos sean mucho mas vistosos y llamativos. Para ver una lista: /topic -list Para elegir un topic: /topic -tipo #num texto (si omitimos -tipo #num, se nos preguntara despues). El numero 0 es el tipo de topic normal, no se le anaden colores. Para ver el topic actual del canal: /topic (Aunque tambien aparece en la parte superior de la pantalla). * AntiSpam: evita alugnos mensajes molestos de publicdad de otros scripts. Se puede activar/desactivar con /luna antispam on/off Para que tenga efecto es necesario reiniciar el cliente. * Autoidentificacion de nicks: esta caracteristica esta limitada a ciertas redes. En el directorio ~/luna/addons/ se encuentra la lista de archivos con el nombre de la red a la que definen. Estos addons se cargan automaticamente al ejecutar /server servidor o /server #num Para configurar la autoidentificacion, haga uso de los comandos: /addnick nick password [#canal1 #canal2...] -- Incluye el nick/pass a la base de datos, junto a los canales donde tenemos registro y nos podemos dar op por algun bot como CHaN. /delnick nick -- Borra el nick de la base de datos. /listnicks -- Lista todos los nicks de la base de datos. Cada red tiene su propia base de datos con los nicks/pass/canales. *** Si fallase la autoidentificacion por netsplit o cualquier otro motivo reintentar con el comando: /idnick * Autoidentificacion de nicks registrados y protegidos: Esta caracteristica solo es valida para la red irc-hispano. Se carga automaticamente con el addon y se encarga de añadir el password del nick cada vez que nos lo cambiamos (/nick nick_nuevo) automaticamente (lo busca en la base de datos). Para configurarlo: /addnick2 nick password [#canal1 #canal2...] -- Incluye el nick/pass a la base de datos, junto a los canales donde tenemos registro y nos podemos dar op por algun bot como CHaN. /delnick2 nick -- Borra el nick de la base de datos. /listnicks2 -- Lista todos los nicks de la base de datos. * Auto-op/Auto-unban: esta caracteristica esta limitada a ciertas redes. Idem que la caracteristica anterior. El auto-op vigila que tengamos siempre op en los canales que estamos registrados, y el auto-unban nos quita el ban que alguien no haya puesto en un canal que estemos registrados. Para activar/desactivar el auto-op: /luna chanop on/off o mediante la combinacion de teclas Alt+o Para activar/desactivar el auto-unban: /luna autounban on/off o mediante la combinacion de teclas Alt+u --> Debido a que muchas redes actuales utilizan IPs Virtuales, para detectar correctamente los bans que nos ponen, el script debe averiguar que IP Virtual tenemos asignada. Para obtener dicha informacion nada mas conectar con el irc, luna se hace un whois a si mismo para capturar la IP Virtual. Es la unica forma que he encontrado para conseguir esa informacion.