Визуальный IRC
![]() | В этой статье есть несколько проблем. Пожалуйста, помогите улучшить его или обсудите эти проблемы на странице обсуждения . ( Узнайте, как и когда удалять эти шаблонные сообщения )
|
![]() Визуальный IRC 2 | |
Разработчик(и) | Адриан Кейбл и Тара МакГрю |
---|---|
Стабильная версия | 2.0pl2 (30 декабря 2007 г [±] [1] | )
Операционная система | Окна |
Лицензия | лицензия GPL |
Веб-сайт | визуальный |
Visual IRC ( ViRC ) — это с открытым исходным кодом клиент Internet Relay Chat для операционной системы Windows . В отличие от многих других клиентов IRC , почти все функции ViRC управляются включенным в него сценарием IRC , в результате чего поведение программы можно расширять или изменять без изменения исходного кода .
История
[ редактировать ]- Visual IRC (16-бит) — выпущен в 1995 году для Windows 3.x, написан MeGALiTH. Эта программа имела множество встроенных функций, но ее также можно было писать с помощью VPL ( язык программирования ViRC ), предшественника ViRCScript и Versus .
- Visual IRC '96 (а позже Visual IRC '97, Visual IRC '98) — выпущен в 1996 году, написан MeGALiTH. Это была первая 32-битная версия ViRC, написанная для Windows 9x/NT. Многие функции, встроенные в 16-битную версию ViRC, в ViRC '96 обрабатывались сценарием по умолчанию. ViRC '98 содержал некоторый код, предоставленный Тарой МакГрю, также известной как «Mr2001», в частности улучшения движка ViRCScript. Язык сценариев был несовместим с более ранней версией. В более поздних версиях были добавлены функции голосового чата и видеоконференций.
- Разработка второй версии замедлилась, и к 2000 году Visual IRC оказался мертвым. Первоначальный автор MeGALiTH (Адриан Кейбл) передал исходный код пользователю Mr2001 (Тара МакГрю), который ранее предоставил некоторый код и тайно разрабатывал клон под названием Bisual IRC (BIRC). Вместо того, чтобы возобновить разработку кодовой базы ViRC '98, он объединил некоторые функции ViRC '98 с BIRC и выпустил ее как Visual IRC 2.
- этой версии Visual IRC 2 — впервые выпущенный Mr2001, по совпадению в 2001 году, язык сценариев Versus основан на ViRCScript, но внутренне он был почти полностью переписан. Фактически, ViRC 2 разделяет с ViRC '98 всего несколько сотен строк кода. Функции голосовой и видеоконференций были удалены в этой версии, поскольку библиотеки, используемые для их реализации, больше не поддерживались.
Большая часть исходного кода BIRC, ViRC 2 и связанных с ними утилит была выпущена под лицензией GPL через веб-сайт проекта и SourceForge .
Против
[ редактировать ]Versus — это язык сценариев, первоначально разработанный для IRC-клиента Bisual IRC и в настоящее время используемый с Visual IRC. Он во многом похож на языки сценариев, используемые и mIRC , а также Tcl и C. ircII
Название «Versus» было выбрано потому, что его можно было сократить до «VS», которое было обычным сокращением ViRCScript , языка, используемого Visual IRC с 96 по 98 годы. Versus оставался в основном обратно совместимым с ViRCScript, поэтому существующая документация и комментарии, в которых упоминалось «VS», оставались в основном точными применительно к Versus. Название также намекает на то, что BIRC возник как замена ViRC.
Object Versus , или OVS, относится к объектно-ориентированным функциям Versus. Скрипты могут определять классы и работать с объектами и методами вместо текстовых данных и псевдонимов ; однако на практике OVS в основном используется для управления объектами VCL , составляющими интерфейс ViRC.
Хранение скриптов
[ редактировать ]Сценарии хранятся в файлах, обычно с расширением .vsc , хотя иногда используется расширение .lib. Файл сценария Versus просто содержит инструкции , которые необходимо интерпретировать при загрузке сценария; любые блоки, определенные в сценарии (см. ниже), заменят блоки, определенные с тем же именем в предыдущих сценариях.
Блоки, которые можно определить в скрипте
[ редактировать ]- Псевдонимы — это подпрограммы . Их можно вызвать из командной строки любого окна или из других частей скрипта. Псевдонимы, возвращающие значение, называются функциями; псевдоним может определить, будет ли он возвращать значение, а затем действовать как функция или команда соответствующим образом.
- Классы используются в объектно-ориентированных сценариях (OVS). Каждый класс может содержать свойства , методы , конструктор и деструктор .
- События используются для обработки сообщений от IRC- сервера , а также определенных событий на уровне системы или клиента, таких как завершение передачи файла или открытие нового окна.
- В событиях сервера используются регулярные выражения Versus или собственные подстановочные знаки для сопоставления сообщений с сервера. Если несколько событий сервера соответствуют определенному сообщению, будет выполнено только событие с наивысшим приоритетом (рассчитанным на основе длины шаблона и относительного «значения» подстановочных знаков в нем).
- Клиентские события идентифицируются по имени: например, <OnCreateWindow_foo> и <OnCreateWindow_bar> будут запускаться при открытии нового окна. Они также могут включать шаблоны, которые ограничивают конкретные случаи, которые могут вызвать это событие (например, запускаться только при канала ). создании нового окна
- Деревья меню и пункты меню определяют контекстные меню , которые могут появляться для различных элементов интерфейса клиента, а также главное меню, которое всегда отображается. Блоки дерева меню определяют макет меню и устанавливают заголовки для каждого элемента; Блоки пунктов меню определяют код сценария, который будет выполняться при нажатии на элемент.
- Панели инструментов и их элементы аналогичны дереву меню и блокам элементов меню, но они определяют панели инструментов, связанные с каждым окном. Новые панели инструментов можно добавить в интерфейс, просто выбрав уникальное имя.
Псевдонимы, методы (включая конструкторы и деструкторы), события, пункты меню и элементы панели инструментов называются подпрограммами или блоками кода.
Хранение данных
[ редактировать ]Файлы
[ редактировать ]- Скрипты могут получать доступ к файлам с помощью функций $RandomRead() и $ReadLine(), а также команд CreateFile и AppendText.
- TStringList Сценарии также могут использовать класс VCL для чтения всего текстового файла в память, манипулирования им и сохранения.
Переменные
[ редактировать ]- Все переменные могут содержать до 4 ГиБ данных.
- Имена переменных начинаются со знака доллара ($) и прописной или строчной буквы или подчеркивания.
- Переменные могут содержать любые символы, хотя обычно они используются для печатаемого текста.
- Локальные переменные задаются с помощью
@L
команды и существуют только в контексте процедуры, которая их создала. Они удаляются по завершении процедуры. Некоторые локальные переменные предопределены, например, $C для имени текущего канала. - Глобальные переменные задаются с помощью
@
команда, доступ к которой возможен из любой процедуры. Они удаляются при выходе клиента. Псевдонимы могут возвращать значение, устанавливая глобальную переменную $fresult. - Сохраненные переменные устанавливаются с помощью
@S
команда и, как и глобальные переменные, доступны где угодно. Их значения немедленно сохраняются в постоянном хранилище и восстанавливаются при следующем запуске клиента.
Ассоциативные массивы
[ редактировать ]- Ассоциативные массивы сопоставляют ключи со значениями.
- Ключи и значения могут содержать до 4 ГиБ данных без ограничений на разрешенное количество символов.
- Локальные, глобальные и сохраненные значения массива можно установить с помощью
@L
,@
, и@S
команды, и они ведут себя так же, как соответствующие переменные. Когда задано сохраненное значение массива, сохраняется весь массив. - Синтаксис
$arrayname[key]
используется для установки или получения значения для определенного ключа. - Синтаксис
$arrayname
сам по себе обрабатывает массив как список пар ключ-значение, позволяя сценарию одновременно устанавливать все содержимое массива или перебирать уже существующие ключи.
Псевдопеременные
[ редактировать ]- Псевдопеременные (или pvars) по синтаксису аналогичны переменным, но их значения не могут быть изменены.
- Pvars от $0 до $9 содержат параметры, которые были переданы в текущую процедуру по порядку. $0 содержит имя подпрограммы, $1 содержит первое слово строки параметра и т. д.
- Pvars от $0 до $9 содержат параметры, которые были переданы в текущую процедуру, а также все последующие параметры. $0- содержит имя подпрограммы и всю строку параметров, $1- содержит все параметры, $2- содержит все параметры после первого и т. д.
- Особая последовательность
$?="PROMPT STRING"
вызывает появление диалогового окна, предлагающего пользователю ввести значение.
Примеры кода
[ редактировать ]Вот пример кода Hello World :
Alias HELLO TextOut > $C clBlack Hello, world! EndAlias
Вот пример счета до десяти:
Alias TEN for (@l $i = 1; $i <= 10; $i++) TextOut > $C clBlack $i endfor EndAlias
Вот пример того, как сделать всех участников текущего канала операторами :
Alias MASSOP foreach ($a,$b,$c,$d; $nicklist($C)) Mode $C +oooo $a $b $c $d endforeach EndAlias
Ссылки
[ редактировать ]Дальнейшее чтение
[ редактировать ]- Харалабидис, Алекс (1999). «Клиенты Windows IRC: Visual IRC» . Книга IRC: Полное руководство по интернет-реле-чату . Пресс без крахмала . стр. 37–38 . ISBN 1-886411-29-8 .
- Форрест Страуд (8 апреля 2004 г.) Visual IRC , WinPlanet обзоры программного обеспечения