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 en ViRC es impulsada por el script de IRC incluido , con el resultado de que el comportamiento del programa se puede extender o cambiar sin alterar el código fuente .
Desarrollador (es) | Adrian Cable y Jesse McGrew |
---|---|
Lanzamiento estable | 2.0pl2 (30 de diciembre de 2007 [±] [1] | )
Sistema operativo | Ventanas |
Licencia | GPL |
Sitio web | visualirc |
Historia
- Visual IRC (16 bits): lanzado en 1995 para Windows 3.x, escrito por MeGALiTH. Este programa tenía muchas características integradas, pero también se podía programar con VPL ( Lenguaje de programación ViRC ), el predecesor de ViRCScript y Versus .
- Visual IRC '96 (y más tarde Visual IRC '97, Visual IRC '98) - Publicado en 1996, escrito por MeGALiTH. Esta fue la primera versión de 32 bits de ViRC, escrita para Windows 9x / NT. Muchas de las funciones que se integraron en ViRC de 16 bits fueron manejadas por el script predeterminado en ViRC '96. ViRC '98 contenía código aportado por Jesse McGrew, también conocido como "Mr2001", en particular mejoras al motor ViRCScript. El lenguaje de secuencias de comandos era incompatible con la versión anterior. En versiones posteriores, se agregaron funciones de chat de voz y videoconferencia.
- El desarrollo de la segunda encarnación se ralentizó y en 2000, Visual IRC parecía estar muerto. El autor original MeGALiTH (Adrian Cable) pasó el código fuente a un usuario, Mr2001 (Jesse McGrew), que había contribuido previamente con un código y que había estado desarrollando en secreto un clon llamado Bisual IRC (BIRC). En lugar de reiniciar el desarrollo del código base de ViRC '98, fusionó algunas de las características de ViRC '98 en BIRC y lo lanzó como Visual IRC 2.
- Visual IRC 2: lanzado por primera vez por Mr2001, casualmente en 2001, el lenguaje de scripting Versus de esta versión se basa en ViRCScript, pero internamente se ha reescrito casi por completo. De hecho, ViRC 2 solo comparte algunos cientos de líneas de código con ViRC '98. Las funciones de videoconferencia y voz se eliminaron en esta versión porque las bibliotecas utilizadas para implementarlas ya no eran compatibles.
Gran parte del código fuente de BIRC, ViRC 2 y las utilidades relacionadas se ha publicado bajo la GPL a través del sitio web del proyecto y SourceForge .
Versus
Versus es un lenguaje de scripting desarrollado originalmente para el cliente de IRC Bisual IRC , y actualmente se usa con Visual IRC. Es similar en muchos aspectos a los lenguajes de programación utilizados por ircII y mIRC , así como Tcl y C .
Se eligió el nombre "Versus" porque podría acortarse a "VS", que era una abreviatura común de ViRCScript , el lenguaje utilizado por Visual IRC '96 a '98. Versus se mantuvo en su mayoría compatible con versiones anteriores de ViRCScript, por lo que la documentación y los comentarios existentes que mencionaban "VS" se mantuvieron en su mayoría precisos cuando se aplicaron a Versus. El nombre también aludía a los orígenes de BIRC como reemplazo de ViRC.
Object Versus , u OVS, se refiere 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 una extensión de archivo .vsc , aunque a veces se usa la extensión .lib. Un archivo de secuencia de comandos Versus simplemente contiene declaraciones que se interpretarán cuando se cargue la secuencia de comandos; cualquier bloque definido en una secuencia de comandos (ver más abajo) reemplazará los bloques definidos con el mismo nombre por secuencias de comandos anteriores.
Bloques que se pueden definir en un script
- Los alias son subrutinas . Se pueden llamar desde la línea de entrada 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 se espera que devuelva un valor y luego actúe como una función o un comando de manera apropiada.
- Las clases se utilizan en secuencias de comandos orientadas a objetos (OVS). Cada clase puede contener propiedades , métodos , un constructor y un destructor .
- Los eventos se utilizan para manejar mensajes desde el servidor de IRC , así como también ciertas ocurrencias a nivel del sistema o del cliente, como completar una transferencia de archivo o abrir una nueva ventana.
- Los eventos del servidor utilizan expresiones regulares o los propios caracteres comodín 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 comodines que contiene).
- Los eventos del cliente se identifican por nombre: por ejemplo,
y También pueden incluir patrones, que limitan las ocurrencias particulares que pueden desencadenar ese evento (por ejemplo, para que solo se ejecute cuando se crea una nueva ventana de canal ).se ejecutarán cuando se abra una nueva ventana.
- Los árboles de menú y los elementos de menú definen los menús contextuales que pueden aparecer para varios elementos de la interfaz del cliente, así como el menú principal que siempre está visible. Los bloques de árbol de menú definen el diseño del menú y establecen títulos para cada elemento; Los bloques de elementos de menú definen el código de secuencia de comandos que se ejecutará cuando se haga clic en un elemento.
- Las barras de herramientas y los elementos de la barra de herramientas son similares al árbol de menú y a los bloques de elementos de menú, pero definen las barras de herramientas asociadas con cada ventana. Se pueden agregar nuevas barras de herramientas a la interfaz simplemente eligiendo un nombre único.
Los alias, métodos (incluidos constructores y destructores), eventos, elementos de menú y elementos de la barra de herramientas se denominan rutinas o bloques de código.
Almacenamiento de datos
Archivos
- Los scripts pueden acceder a archivos con las funciones $ RandomRead () y $ ReadLine (), y los comandos CreateFile y AppendText.
- Los scripts también pueden usar la clase TStringList VCL 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, minúscula o subrayado.
- Las variables pueden contener cualquier carácter, aunque normalmente se utilizan para texto imprimible.
- Las variables locales se establecen con el
@L
comando 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 establecen con el
@
comando y se puede acceder a ellas desde cualquier rutina. Se eliminan cuando el cliente sale. Los alias pueden devolver un valor estableciendo la variable global $ fresult. - Las variables almacenadas se configuran con el
@S
comando y, al igual que las variables globales, se puede acceder a ellas desde cualquier lugar. Sus valores se guardan inmediatamente en un almacenamiento persistente y se restauran la próxima vez que se inicia el cliente.
Matrices asociativas
- Las matrices asociativas asignan claves a valores.
- Las claves y los valores pueden contener hasta 4 GiB de datos sin límites en los caracteres permitidos.
- Array valores locales, globales y almacenados se pueden ajustar mediante las
@L
,@
y@S
los comandos, y se comportan igual que las variables correspondientes. Cuando se establece un valor de matriz almacenado, se guarda toda la matriz. - La sintaxis
$arrayname[key]
se utiliza para establecer o recuperar el valor de una clave en particular. - La sintaxis por
$arrayname
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 recorra en iteración las claves que ya están presentes.
Pseudovariables
- Las pseudovariables (o pvars) son similares en sintaxis a las variables, pero sus valores no se pueden cambiar.
- Los 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.
- Los pvars $ 0- a $ 9- contienen los parámetros que se pasaron a la rutina actual, más todos los parámetros siguientes. $ 0- contiene el nombre de la rutina y la cadena de parámetros completa, $ 1- contiene todos los parámetros, $ 2- contiene todos los parámetros después del primero, y así sucesivamente.
- La secuencia especial
$?="PROMPT STRING"
hace que aparezca un cuadro de diálogo que solicita al usuario que ingrese un valor.
Ejemplos de código
Aquí está el ejemplo de código de Hello World :
Alias HOLA TextOut> $ C clBlack ¡Hola, mundo!EndAlias
Aquí hay un ejemplo para contar hasta diez:
Alias DIEZ para (@l $ i = 1; $ i <= 10; $ i ++) TextOut> $ C clNegro $ i fin deEndAlias
A continuación, se muestra un ejemplo para convertir a todos en el canal actual en operadores :
Alias MASSOP foreach ($ a, $ b, $ c, $ d; $ nicklist ($ C)) Modo $ C + oooo $ a $ b $ c $ d endforeachEndAlias
Referencias
- ^ https://sourceforge.net/projects/visualirc/files/ViRC/2.0pl2/
Otras lecturas
- Charalabidis, Alex (1999). "Clientes de IRC de Windows: IRC visual" . El libro de IRC: la guía definitiva para el chat de retransmisión por Internet . Sin prensa de almidón . págs. 37–38 . ISBN 1-886411-29-8.
- Forrest Stroud (8 de abril de 2004) Visual IRC , revisiones de software de WinPlanet
enlaces externos
- Página de inicio de Visual IRC
- Lista de características y capturas de pantalla
- Página del proyecto de SourceForge
- Colección de guiones ViRC
- ViRC DocCenter (Versus referencia de idioma)
- Clientes IRC para Windows: lista de 60 aplicaciones, lista preparada por ircreviews.org