Visual IRC ( ViRC ) es un cliente de Internet Relay Chat de código abierto para el sistema operativo Windows . A diferencia de muchos otros clientes de IRC , casi toda la funcionalidad de ViRC se basa en el script de IRC incluido , lo que permite ampliar o modificar el comportamiento del programa sin alterar el código fuente .
Historia
- Visual IRC (16 bits): lanzado en 1995 para Windows 3.x, escrito por MeGALiTH ( Adrian Cable ). Este programa tenía muchas funciones integradas, pero también era programable con VPL ( ViRC Programming Language ), el predecesor de ViRCScript y Versus .
- Visual IRC '96 (y posteriormente Visual IRC '97 y Visual IRC '98) – Lanzado en 1996, fue escrito por MeGALiTH. Esta fue la primera versión de 32 bits de ViRC, escrita para Windows 9x/NT. Muchas de las funciones integradas en ViRC de 16 bits se gestionaban mediante el script predeterminado de ViRC '96. ViRC '98 incluía código aportado por Tara McGrew , en particular mejoras al motor ViRCScript. El lenguaje de scripting era incompatible con la versión anterior. En versiones posteriores, se añadieron funciones de chat de voz y videoconferencia.
- El desarrollo de la segunda versión se ralentizó y, para el año 2000, Visual IRC parecía estar muerto. El autor original, MeGALiTH (Adrian Cable), le pasó el código fuente a una usuaria, Tara McGrew, quien ya había contribuido con código y que, en secreto, estaba desarrollando un clon llamado Bisual IRC (BIRC). En lugar de reiniciar el desarrollo del código base de ViRC '98, integró algunas de las características de ViRC '98 en BIRC y lo lanzó como Visual IRC 2.
- Visual IRC 2 – Lanzado originalmente por Tara McGrew en 2001, el lenguaje de scripting Versus de esta versión se basa en ViRCScript, pero internamente ha sido reescrito casi por completo. De hecho, ViRC 2 solo comparte unos pocos cientos de líneas de código con ViRC '98. Las funciones de videoconferencia y audioconferencia se eliminaron en esta versión porque las bibliotecas utilizadas para implementarlas ya no contaban con soporte.
Gran parte del código fuente de BIRC, ViRC 2 y las utilidades relacionadas se ha publicado bajo la licencia GPL a través del sitio web del proyecto y SourceForge .
Versus
Versus es un lenguaje de scripting desarrollado originalmente para el cliente IRC Bisual IRC y que actualmente se utiliza con Visual IRC. Es similar en muchos aspectos a los lenguajes de scripting utilizados por ircII y mIRC , así como a Tcl y C.
El nombre "Versus" se eligió porque podía abreviarse como "VS", una abreviatura común de ViRCScript , el lenguaje utilizado por Visual IRC entre 1996 y 1998. Versus mantuvo una gran compatibilidad con versiones anteriores de ViRCScript, por lo que la documentación y los comentarios existentes que mencionaban "VS" seguían siendo en su mayoría precisos al aplicarse a Versus. El nombre también aludía a los orígenes de BIRC como reemplazo de ViRC.
Object Versus , u OVS, hace referencia a las características orientadas a objetos de Versus. Los scripts pueden definir clases y trabajar con objetos y métodos en lugar de datos textuales y alias ; sin embargo, en la práctica, OVS se utiliza principalmente para manipular los objetos VCL que componen la interfaz de ViRC.
Almacenamiento de scripts
Los scripts se almacenan en archivos, generalmente con la extensión .vsc , aunque a veces se utiliza la extensión .lib. Un archivo de script de Versus simplemente contiene instrucciones que se interpretarán al cargar el script; cualquier bloque definido en un script (véase más abajo) reemplazará los bloques definidos con el mismo nombre por scripts anteriores.
Bloques que se pueden definir en un script
- Los alias son subrutinas . Se pueden llamar desde la línea de comandos de cualquier ventana o desde otras partes del script. Los alias que devuelven un valor se denominan funciones; un alias puede determinar si debe devolver un valor y, en ese caso, actuar como una función o un comando según corresponda.
- Las clases se utilizan en la programación orientada a objetos (OVS). Cada clase puede contener propiedades , métodos , un constructor y un destructor .
- Los eventos se utilizan para gestionar los mensajes del servidor IRC , así como ciertas sucesos a nivel de sistema o de cliente, como completar una transferencia de archivos o abrir una nueva ventana.
- Los eventos del servidor utilizan expresiones regulares o caracteres comodín propios de Versus para hacer coincidir los mensajes del servidor. Si varios eventos del servidor coinciden con un mensaje en particular, solo se ejecutará el que tenga la prioridad más alta (calculada a partir de la longitud del patrón y el "valor" relativo de los caracteres comodín que contiene).
- Los eventos del cliente se identifican por su nombre: por ejemplo, <OnCreateWindow_foo> y <OnCreateWindow_bar> se ejecutarán cuando se abra una nueva ventana. También pueden incluir patrones que limitan las situaciones específicas que pueden activar dicho evento (por ejemplo, que solo se ejecute cuando se cree una nueva ventana de canal ).
- Los árboles de menú y los elementos de menú definen los menús contextuales que pueden aparecer para diversos elementos de la interfaz del cliente, así como el menú principal, que siempre está visible. Los bloques del árbol de menú definen la disposición del menú y establecen los títulos para cada elemento; los bloques de elementos de menú definen el código del script que se ejecutará al hacer clic en un elemento.
- Las barras de herramientas y sus elementos son similares a los bloques de menú y de árbol de menú, pero definen las barras de herramientas asociadas a cada ventana. Se pueden añadir nuevas barras de herramientas a la interfaz simplemente eligiendo un nombre único.
Los alias, los métodos (incluidos los constructores y destructores), los eventos, los elementos de menú y los elementos de la barra de herramientas se denominan rutinas o bloques de código.
Almacenamiento de datos
Archivos
- Los scripts pueden acceder a los archivos con las funciones $RandomRead() y $ReadLine(), y los comandos CreateFile y AppendText.
- Los scripts también pueden usar la clase VCL TStringList para leer un archivo de texto completo en la memoria, manipularlo y guardarlo.
Variables
- Todas las variables pueden contener hasta 4 GiB de datos.
- Los nombres de las variables comienzan con un signo de dólar ($) y una letra mayúscula, una letra minúscula o un guion bajo.
- Las variables pueden contener cualquier carácter, aunque normalmente se utilizan para texto imprimible.
- Las variables locales se definen con el
@Lcomando y solo existen en el contexto de la rutina que las creó. Se eliminan cuando finaliza la rutina. Algunas variables locales están predefinidas, como $C para el nombre del canal actual. - Las variables globales se definen con el
@comando y se puede acceder a ellas desde cualquier rutina. Se eliminan cuando el cliente finaliza. Los alias pueden devolver un valor al establecer la variable global $fresult. - Las variables almacenadas se configuran con el
@Scomando y, al igual que las variables globales, se puede acceder a ellas desde cualquier lugar. Sus valores se guardan inmediatamente en el almacenamiento persistente y se restauran la próxima vez que se inicie el cliente.
Matrices asociativas
- Los arrays asociativos asignan claves a valores.
- Las claves y los valores pueden contener hasta 4 GiB de datos, sin límites en cuanto a los caracteres permitidos.
- Los valores de matrices locales, globales y almacenadas se pueden establecer mediante los comandos
@L,@y@S, y se comportan igual que las variables correspondientes. Cuando se establece un valor en una matriz almacenada, se guarda toda la matriz. - Esta sintaxis
$arrayname[key]se utiliza para establecer o recuperar el valor de una clave específica. - La sintaxis
$arraynamepor sí sola trata una matriz como una lista de pares clave-valor, lo que permite que un script establezca todo el contenido de una matriz a la vez, o itere a través de las claves que ya están presentes.
Pseudovariables
- Las pseudovariables (o pvars) tienen una sintaxis similar a la de las variables, pero sus valores no se pueden modificar.
- Las variables pvars $0 a $9 contienen los parámetros que se pasaron a la rutina actual, en orden. $0 contiene el nombre de la rutina, $1 contiene la primera palabra de la cadena de parámetros, y así sucesivamente.
- Las variables pvars $0- a $9- contienen los parámetros que se pasaron a la rutina actual, además de todos los parámetros subsiguientes. $0- contiene el nombre de la rutina y la cadena completa de parámetros, $1- contiene todos los parámetros, $2- contiene todos los parámetros posteriores al primero, y así sucesivamente.
- Esta secuencia especial
$?="PROMPT STRING"hace que aparezca un cuadro de diálogo que solicita al usuario que introduzca un valor.
Ejemplos de código
Aquí tenéis un ejemplo de código de "Hola Mundo" :
Alias HOLA TextOut > $C clBlack ¡Hola, mundo! Fin de alias
Aquí tienes un ejemplo para contar hasta diez:
Alias TEN para (@l $i = 1; $i <= 10; $i++) TextOut > $C clBlack $i fin para Fin de alias
Aquí tienes un ejemplo para convertir a todos los usuarios del canal actual en operadores :
Alias MASSOP para cada ($a,$b,$c,$d; $nicklist($C)) Modo $C +oooo $a $b $c $d finparacada Fin de alias
Referencias
- ↑ https://sourceforge.net/projects/visualirc/files/ViRC/2.0pl2/
Lecturas adicionales
- Charalabidis, Alex (1999). «Clientes IRC para Windows: IRC visual» . El libro de IRC: La guía definitiva para el chat de retransmisión por Internet . No Starch Press . págs. 37-38 . ISBN 1-886411-29-8.
- Forrest Stroud (8 de abril de 2004) Visual IRC , Reseñas de software de WinPlanet
Enlaces externos
- Página principal de Visual IRC
- Sitio web de reseñas
- Lista de características y capturas de pantalla
- Página del proyecto en SourceForge
- Colección de scripts de ViRC
- ViRC DocCenter (referencia versus idioma)
- Clientes IRC para Windows: lista de 60 aplicaciones, lista elaborada por ircreviews.org
- Clientes IRC gratuitos
- Clientes de IRC
- Lenguajes de scripting
- Clientes IRC de Windows